OAuth
OAuth 2.0 est un cadre d'autorisation permettant à des applications tierces d'accéder aux ressources de l'utilisateur avec son consentement, sans partager de mots de passe, au moyen de jetons.
Objectif
Il met en œuvre l'autorisation déléguée : une application peut accéder aux ressources de l'utilisateur sur un autre service sans jamais voir le mot de passe.
Mécanisme
Flux : le client demande l'autorisation au serveur d'autorisation → l'utilisateur l'accorde → le client reçoit un code d'autorisation → l'échange contre un access_token → utilise le jeton auprès du serveur de ressources. Types de permission : authorization_code, implicit, password, client_credentials et refresh_token.
Cas d’usage
- Connexion tierce (Google)
- Accès autorisé aux API
- SSO inter-services
- Autorisation mobile
Exemples
- entrée
authorization code → access_tokenOutputCall the API with the tokenThe authorization code flow
Erreurs courantes
- The implicit flow exposes the token to the browser
- Use authorization_code with PKCE
Termes associés
OpenID Connect
OpenID Connect (OIDC) est une couche d'identité au-dessus d'OAuth 2.0 qui fournit l'authentification de l'utilisateur et des informations d'identité, et constitue le standard de facto du SSO. GLOSSAIRE
JWT
JWT (JSON Web Token) est un jeton compact et autonome qui transmet de façon sûre des affirmations en objet JSON, largement utilisé pour l'authentification sans état et l'échange d'informations. GLOSSAIRE
Bearer Token
Un jeton Bearer est un type de jeton qui fonctionne uniquement par possession : il est envoyé dans l'en-tête Authorization: Bearer <token>, de sorte que quiconque le détient peut l'utiliser, sans identifiants supplémentaires. GLOSSAIRE
Cookie
Un cookie est un couple clé-valeur défini par le serveur et stocké par le navigateur, envoyé automatiquement avec les requêtes de même origine pour la gestion de session et d'état. GLOSSAIRE