OpenID Connect
OAuth 2.0 donne l’accès à une ressource. OpenID Connect y ajoute l’identité : qui est la personne qui se connecte.
OAuth 2.0 répond à « cette application a-t-elle le droit d’accéder à ces données ? » Il produit un jeton d’accès. Il ne dit rien de la personne.
OpenID Connect (OIDC) est une couche d’identité au-dessus d’OAuth 2.0. Il ajoute un jeton d’identité (ID token), un point d’accès userinfo et des scopes standard (openid, profile, email). Si vous demandez le scope openid, vous faites de l’OIDC ; sinon, de l’OAuth pur.
sub), par qui (iss), pour qui (aud = votre client_id), quand (iat, exp) et rejoue votre nonce. Il est destiné à l’application, jamais à l’API./.well-known/openid-configuration | La découverte : un JSON qui liste tous les autres points d’accès et les capacités du fournisseur. Un client sérieux n’a besoin que de l’adresse de l’issuer. |
|---|---|
jwks_uri | Les clés publiques qui servent à vérifier la signature des jetons (rotation possible). |
authorization_endpoint | Là où le navigateur envoie la personne s’authentifier. |
token_endpoint | Là où l’application échange un code (ou autre) contre des jetons, de serveur à serveur. |
userinfo_endpoint | Les informations de la personne, avec un access token. |
introspection, revocation | Vérifier si un jeton est encore actif (RFC 7662) ; l’invalider (RFC 7009). |
end_session_endpoint | Déconnexion demandée par l’application (RP-initiated logout). |
device_authorization_endpoint | Démarrer un flow « appareil » (RFC 8628). |
Sur un ID token : signature (clés du jwks_uri), iss exact, aud contient son client_id, exp non dépassé, nonce identique à celui envoyé, at_hash/c_hash quand ils sont présents. Sur la réponse : state identique, et PKCE (code_verifier) avec le flow code.
Envie de voir ça en vrai ? ID-Kit déroule chaque flow et vous montre les jetons.