Table des matières

OpenID Connect

Objectif

L’Identité Numérique La Poste repose sur le protocole OpenID Connect (OIDC).

Ce standard permet à un service partenaire de :


Principe général

Le partenaire ne gère pas l’authentification directement.

👉 Il redirige l’utilisateur vers LINLP, qui :


Vue d’ensemble du flow

Le flow standard est le suivant :

  1. Appel du endpoint `/authorize`
  2. Authentification utilisateur (mobile)
  3. Redirection avec un code d’autorisation
  4. Appel du endpoint `/token`
  5. Récupération des tokens
  6. Appel du endpoint `/userinfo`
  7. Récupération des données utilisateur

Endpoints principaux

Endpoint Description
/authorize Authentification utilisateur
/token Récupération des tokens
/userinfo Récupération des données utilisateur

Étape 1 : /authorize

Le partenaire redirige l’utilisateur vers LINLP.

Paramètres principaux :

Exemple :

GET /authorize?response_type=code
&client_id=XXX
&redirect_uri=https://monservice.fr/callback
&scope=openid+profile+email

👉 L’utilisateur est alors authentifié via son application mobile.


Étape 2 : récupération du code

Après authentification :

Exemple :

https://monservice.fr/callback?code=ABC123

⚠️ Ce code est temporaire et à usage unique.


Étape 3 : /token

Le backend du partenaire échange le code contre des tokens.

POST /token

Paramètres :

👉 Cette étape doit être faite côté backend.


Étape 4 : tokens retournés

LINLP retourne :


Étape 5 : /userinfo

Le partenaire récupère les données utilisateur :

GET /userinfo
Authorization: Bearer access_token

👉 Les données retournées dépendent des scopes demandés.


Tokens

ID Token (JWT)

Le id_token contient :

👉 Il doit être vérifié avec la clé publique LINLP.


Access Token

Le access_token permet :


Bonnes pratiques

⚠️ Backend obligatoire Ne jamais exposer `client_secret` côté frontend.

⚠️ Pas d’iframe La page `/authorize` doit être appelée via redirection.

⚠️ Vérification des tokens Toujours vérifier la signature du JWT.

⚠️ Stockage sécurisé Les tokens doivent être stockés de manière sécurisée.


Environnements


À retenir


Étape suivante

👉 Implémenter le flow complet :

Flow Authorization Code