🔑
securite

OAuth 2.0

Protocole d'autorisation standard pour accéder à des ressources protégées.

Définition

OAuth 2.0 est un protocole d'autorisation standard qui permet à une application tierce d'accéder à des ressources protégées au nom d'un utilisateur, sans que l'utilisateur ait à partager ses identifiants.

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

Concepts clés

  • Resource Owner : l'utilisateur qui possède les données
  • Client : l'application qui veut accéder aux données
  • Authorization Server : le serveur qui délivré les tokens (Google, Auth0, Keycloak)
  • Resource Server : l'API qui protege les données
  • Access Token : jeton temporaire qui autorise l'accès
  • Refresh Token : jeton pour renouveler l'access token sans re-authentification
  • Scopes : permissions spécifiques demandées (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'accès
  4. Google redirige avec un code temporaire
  5. Le serveur échange le code contre un access_token (backend-to-backend)
  6. Le serveur utilise l'access_token pour accéder à l'API Google

Authorization Code + PKCE

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

  • Même flow mais avec un code_verifier et code_challenge pour sécuriser l'échange

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 (accès aux ressources)
  • OpenID Connect (OIDC) : authentification (identité de l'utilisateur), construit au-dessus d'OAuth 2.0

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

Fournisseurs d'identité populaires

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

Besoin d'aide technique ?

Decrivez votre projet pour des conseils personnalises par nos experts.

Recevoir des conseils

Questions fréquentes

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 liées

Chaque semaine, le meilleur de la tech française

Tendances, salaires, outils et opportunités — directement dans votre boîte mail.

Gratuit. Desabonnement en un clic. Pas de spam.