Comparatifs

OAuth 2.0 ou OpenID Connect : quelle différence ?

OAuth 2.0 sert à autoriser, OpenID Connect à authentifier. OIDC est une couche ajoutée par-dessus OAuth 2.0.

En bref

OAuth 2.0 répond à « cette application a-t-elle le droit d'accéder à telle ressource ? » et délivre un jeton d'accès. OpenID Connect répond à « qui est la personne connectée ? » et ajoute un jeton d'identité (ID token) et le scope openid.

OAuth 2.0OpenID Connect
QuestionQu'a-t-on le droit de faire ?Qui est connecté ?
Jeton principalJeton d'accès (opaque ou JWT)ID token (JWT signé)
Destinataire du jetonL'API (ressource)L'application (client)
Scope cléPropres à l'API (lecture, écriture…)openid, profile, email
Informations sur la personneNon standardiséesClaims standard, endpoint userinfo
Erreur classiqueUtiliser un jeton d'accès pour identifier quelqu'unOublier de vérifier nonce, audience et signature

À retenir

  • Se connecter à une application : utilisez OIDC.
  • Appeler une API au nom de quelqu'un : utilisez un jeton d'accès OAuth 2.0.
  • Un jeton d'accès ne prouve pas l'identité : ne l'utilisez pas pour connecter quelqu'un.