Outils pour utilisateurs

Ceci est une ancienne révision du document !


OpenID Connect

Objectif

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

Ce standard permet à un service partenaire de :

  • déléguer l’authentification utilisateur
  • récupérer des informations d’identité sécurisées
  • s’appuyer sur un mécanisme standard du marché

Principe général

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

👉 Il redirige l’utilisateur vers LINLP, qui :

  • authentifie l’utilisateur (2FA)
  • collecte son consentement
  • renvoie les informations demandées

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
/logout Déconnexion

Étape 1 : /authorize

Le partenaire redirige l’utilisateur vers LINLP.

Paramètres principaux :

  • client_id
  • redirect_uri
  • response_type=code
  • scope

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 :

  • LINLP redirige vers `redirect_uri`
  • un paramètre `code` est ajouté

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 :

  • grant_type=authorization_code
  • code
  • redirect_uri

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


Étape 4 : tokens retournés

LINLP retourne :

  • access_token → accès aux APIs
  • id_token → données utilisateur (JWT signé)

É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 :

  • les données d’identité
  • des informations de session
  • une signature garantissant l’intégrité

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


Access Token

Le access_token permet :

  • d’appeler l’API `/userinfo`
  • d’accéder aux données utilisateur

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

  • LINLP utilise OpenID Connect
  • Le flow principal est authorization_code
  • Toute l’authentification est externalisée
  • Les données sont récupérées via tokens sécurisés

Étape suivante

👉 Implémenter le flow complet :

Flow Authorization Code

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also, you acknowledge that you have read and understand our Privacy Policy. If you do not agree, please leave the website.

Plus d’informations