OIDC en bref (page générée par ChatGPT)
🔐 OpenID Connect (OIDC) est un protocole d’authentification construit sur OAuth 2.0.
- OAuth2 → autorise une appli à accéder à des ressources pour un utilisateur.
- OIDC → ajoute la vérification de l’identité de l’utilisateur.
👉 Il permet donc le Single Sign-On (SSO) et la délégation d’authentification (ex. “Se connecter avec Google”).
🎯 À quoi ça sert
OIDC permet à une application de :
- s’appuyer sur un fournisseur d’identité (IdP) (Google, Azure AD, Keycloak, etc.) ;
- authentifier l’utilisateur sans gérer les mots de passe ;
- récupérer des informations standardisées (nom, email, etc.) via des claims.
C’est la base moderne de l’authentification web, mobile et API.
⚙️ Fonctionnement simplifié
Trois acteurs :
- Relying Party (RP) → ton application
- OpenID Provider (OP) → le serveur d’identité
- User Agent → le navigateur ou app de l’utilisateur
🔄 Authorization Code Flow (le plus courant)
- L’utilisateur accède à l’application (RP).
- Celle-ci le redirige vers l’OP avec une requête (
scope=openid
). - L’utilisateur s’authentifie.
- L’OP renvoie un code d’autorisation à la RP.
- La RP échange ce code contre :
- un Access Token (pour les API),
- un ID Token (pour l’identité).
- La RP valide l’ID Token et authentifie l’utilisateur localement.
🧾 Le ID Token (JWT)
Un JWT signé contenant l’identité de l’utilisateur, ex. :
{
"iss": "https://accounts.google.com",
"sub": "248289761001",
"aud": "my-client-id",
"email": "alice@example.com",
"exp": 1697450183
}
iss
→ fournisseursub
→ identifiant unique de l’utilisateuraud
→ destinataire (ton appli)- divers claims (
email
,name
, etc.)
- divers claims (
🧱 Points clés
- OIDC = OAuth2 + identité
- Authentifie sans mot de passe local
- Fournit un ID Token (JWT) vérifiable
- Compatible SSO, MFA, et multi-applications
- Standard ouvert adopté par tous les grands fournisseurs
À retenir
- OAuth 2.0 = Framework d’autorisation (donner accès à des ressources)
- OIDC = Couche d’authentification construite sur OAuth 2.0 (identifier l’utilisateur)
Analogie simple
- OAuth2 : « Cette app peut accéder à tes photos » (autorisation)
- OIDC : « Tu es bien Jean Dupont » (authentification) + « Cette app peut accéder à tes photos »