Outils pour utilisateurs

Ceci est une ancienne révision du document !


Flow Authorization Code

Objectif

Le flow Authorization Code est le mode d’intégration principal de L’Identité Numérique La Poste.

Il permet :

  • d’authentifier un utilisateur
  • de récupérer ses données d’identité
  • de garantir un haut niveau de sécurité

Principe

Le flow repose sur un échange en plusieurs étapes :

  1. Redirection utilisateur vers LINLP
  2. Authentification (mobile)
  3. Retour avec un code temporaire
  4. Échange du code contre des tokens
  5. Récupération des données utilisateur

👉 Ce flow est conforme au standard OpenID Connect.


Étape 1 : appel /authorize

Le partenaire redirige l’utilisateur vers LINLP.

GET /authorize

Paramètres principaux :

  • client_id
  • redirect_uri
  • response_type=code
  • scope
  • state (recommandé)
  • login_hint (optionnel)

Exemple :

https://authent.pprod.lidentitenumerique.laposte.fr/auth/realms/partenaire/protocol/openid-connect/auth
?client_id=XXX
&response_type=code
&redirect_uri=https://monservice.fr/callback
&scope=openid+profile+email
&state=abc123

💡 `login_hint` permet de pré-remplir le téléphone utilisateur.


Étape 2 : authentification utilisateur

L’utilisateur :

  • est redirigé vers LINLP
  • reçoit une notification sur son mobile
  • valide via PIN ou biométrie

Étape 3 : redirection avec code

Après succès :

https://monservice.fr/callback?code=ABC123&state=abc123

⚠️ Le code :

  • est temporaire
  • est à usage unique

Étape 4 : échange du code (/token)

Le backend appelle :

POST /token

Exemple :

grant_type=authorization_code
code=ABC123
redirect_uri=https://monservice.fr/callback

👉 Authentification requise via :

  • client_id
  • client_secret

Étape 5 : récupération des tokens

Réponse :

  • access_token
  • id_token (JWT)
  • expires_in

Étape 6 : récupération des données (/userinfo)

GET /userinfo
Authorization: Bearer access_token

👉 Retour :

  • données utilisateur
  • informations de contexte

Cas d’erreur

Erreurs côté /authorize

Cas Comportement
Scope invalide Redirection avec error=invalid_scope
client_id incorrect Erreur 400
redirect_uri incorrect Erreur 400

Erreurs côté utilisateur

Cas Comportement
Refus utilisateur Retour page login
Timeout validation Retour page login
Utilisateur inconnu Timeout

Erreurs côté /token

Cas Description
Code invalide invalid_grant
Code expiré invalid_grant
Mauvais client_secret unauthorized_client

Erreurs côté /userinfo

Cas Description
Token invalide invalid_token
Token expiré accès refusé

Bonnes pratiques

⚠️ Toujours utiliser un backend Ne jamais appeler `/token` depuis le frontend.

⚠️ Vérifier le paramètre state Permet d’éviter les attaques CSRF.

⚠️ Gérer les expirations Les codes et tokens expirent rapidement.

⚠️ Journaliser les erreurs Indispensable pour le support et debug.


Points d’attention

⚠️ redirect_uri doit être strictement identique Sinon rejet automatique.

⚠️ Les scopes doivent être déclarés en amont Impossible d’en ajouter dynamiquement.

⚠️ Le flow est synchrone côté utilisateur Prévoir une UX adaptée (chargement, attente).


Résumé

  • Flow standard OpenID Connect
  • Basé sur redirection + échange sécurisé
  • Recommandé pour tous les cas d’usage web et mobile

Étape suivante

👉 Pour des cas avancés :

Flow CIBA

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