🔑
securite

OAuth 2.0

Protocole d'autorisation standard pour acceder a des ressources protegees.

Definition

OAuth 2.0 est un protocole d'autorisation standard qui permet a une application tierce d'acceder a des ressources protegees au nom d'un utilisateur, sans que l'utilisateur ait a partager ses identifiants.

C'est le protocole derriere le "Se connecter avec Google/GitHub/Facebook" que vous voyez partout sur le web.

Concepts cles

  • Resource Owner : l'utilisateur qui possede les donnees
  • Client : l'application qui veut acceder aux donnees
  • Authorization Server : le serveur qui delivre les tokens (Google, Auth0, Keycloak)
  • Resource Server : l'API qui protege les donnees
  • Access Token : jeton temporaire qui autorise l'acces
  • Refresh Token : jeton pour renouveler l'access token sans re-authentification
  • Scopes : permissions specifiques demandees (email, profile, repos)

Les principaux flows

Authorization Code (le plus courant et securise)

Pour les applications web server-side :

  1. L'utilisateur clique "Se connecter avec Google"
  2. Redirection vers Google avec le client_id et les scopes
  3. L'utilisateur autorise l'acces
  4. Google redirige avec un code temporaire
  5. Le serveur echange le code contre un access_token (backend-to-backend)
  6. Le serveur utilise l'access_token pour acceder a l'API Google

Authorization Code + PKCE

Pour les SPA et apps mobiles (pas de secret cote client) :

  • Meme flow mais avec un code_verifier et code_challenge pour securiser l'echange

Client Credentials

Pour les communications machine-to-machine (pas d'utilisateur) :

  • Le client s'authentifie directement avec client_id + client_secret

Device Code

Pour les appareils sans navigateur (CLI, TV, IoT) :

  • L'appareil affiche un code, l'utilisateur le saisit sur un autre appareil

OAuth 2.0 vs OpenID Connect

  • OAuth 2.0 : autorisation (acces aux ressources)
  • OpenID Connect (OIDC) : authentification (identite de l'utilisateur), construit au-dessus d'OAuth 2.0

OIDC ajoute un id_token (JWT) qui contient les informations d'identite de l'utilisateur.

Fournisseurs d'identite populaires

Provider Type Prix
Auth0 SaaS Gratuit jusqu'a 7500 MAU
Keycloak Open source Gratuit (self-hosted)
Firebase Auth SaaS Gratuit jusqu'a 50k MAU
Clerk SaaS Gratuit jusqu'a 10k MAU
AWS Cognito SaaS Gratuit jusqu'a 50k MAU

Besoin d'aide technique ?

Decrivez votre projet pour des conseils personnalises par nos experts.

Recevoir des conseils

Questions frequentes

OAuth 2.0 est-il securise ?
Oui, quand il est correctement implemente. Les bonnes pratiques incluent : PKCE pour les SPA/mobiles, tokens a courte duree de vie, validation stricte des redirect URIs, et stockage securise des tokens.
Quelle est la difference entre OAuth et JWT ?
OAuth est un protocole d'autorisation (comment obtenir l'acces). JWT est un format de token (comment representer l'acces). OAuth utilise souvent des JWT comme access tokens, mais ce sont deux concepts differents.
Faut-il implementer OAuth soi-meme ?
Non, utilisez un fournisseur d'identite (Auth0, Keycloak, Clerk). Implementer OAuth correctement est complexe et une erreur de securite peut avoir des consequences graves.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.