OpenID Connect (OIDC) est une couche d'identité bâtie sur OAuth 2.0. Là où OAuth 2.0 délègue une autorisation, OIDC répond à la question « qui est cet utilisateur ? » en ajoutant un jeton d'identité (ID Token) au format JWT, signé par le fournisseur d'identité et destiné à un client déterminé.
Ce que le jeton d'identité apporte
Le JWT contient des claims normalisés : émetteur (iss), sujet (sub), destinataire (aud),
date d'émission et d'expiration, et un nonce qui protège du rejeu. Deux claims intéressent
directement la sécurité :
amr(authentication methods references) : les méthodes réellement employées ;acr(authentication context class reference) : le niveau de garantie atteint.
Une application peut ainsi exiger un niveau supérieur avant une opération sensible et déclencher une
authentification renforcée (step-up) si le jeton présenté ne le porte pas. Le point de terminaison
userinfo complète le dispositif pour obtenir des attributs supplémentaires.
OIDC ou SAML
| OpenID Connect | SAML 2.0 | |
|---|---|---|
| Format | JSON / JWT | XML |
| Fondation | OAuth 2.0 | Spécification OASIS autonome |
| Terrain de prédilection | Applications mobiles, API, SPA | Applications web d'entreprise |
Les deux protocoles remplissent le même office de fédération ; ils diffèrent par le format et l'écosystème. Beaucoup d'organisations exploitent les deux en parallèle. Dans les deux cas, une fois le jeton émis, sa protection contre le vol devient le sujet principal.
Aller plus loin : définition d'OAuth 2.0 · définition de SAML · step-up authentication · l'authentification cognitive