Eve Media

OAuth 2.0 : le standard de l’autorisation déléguée

OAuth 2.0 et OpenID Connect sont les standards qui permettent le « Se connecter avec Google/Facebook » que vous utilisez quotidiennement. Comprendre ces protocoles est essentiel pour implémenter une authentification sécurisée. Chez Eve Media, nous implémentons ces standards pour les applications de nos clients.

OAuth 2.0 : autorisation, pas authentification

OAuth 2.0 est un protocole d’autorisation qui permet à une application d’accéder à des ressources au nom d’un utilisateur. Le cas classique : permettre à une app de poster sur votre compte Twitter sans lui donner votre mot de passe.

OAuth définit des « scopes » (permissions) que l’utilisateur accorde. L’application reçoit un token d’accès limité à ces permissions.

OpenID Connect : l’identité par-dessus OAuth

OpenID Connect (OIDC) ajoute une couche d’authentification à OAuth. Il permet de vérifier l’identité de l’utilisateur et d’obtenir des informations de profil. C’est ce qui permet le « Sign in with Google ».

OIDC introduit l’ID Token (JWT) qui contient les informations d’identité de l’utilisateur.

Les flux OAuth

L’Authorization Code Flow est le plus sécurisé pour les applications web avec backend. L’utilisateur est redirigé vers le provider, autorise l’accès, et un code est échangé contre des tokens.

Le PKCE (Proof Key for Code Exchange) renforce la sécurité pour les applications mobiles et SPA qui ne peuvent pas garder un secret.

Les tokens

L’Access Token autorise l’accès aux ressources. Le Refresh Token permet d’obtenir de nouveaux access tokens sans réauthentification. L’ID Token (OIDC) contient l’identité de l’utilisateur.

Les tokens ont des durées de vie limitées : minutes pour l’access token, jours/semaines pour le refresh token.

Implémentation pratique

N’implémentez pas OAuth from scratch. Utilisez des bibliothèques éprouvées : NextAuth.js, Passport.js, Auth.js. Elles gèrent les complexités du protocole et les edge cases de sécurité.

Social login

Le login social (Google, Facebook, Apple, GitHub) améliore l’UX en éliminant la création de compte. Chaque provider a ses spécificités mais tous suivent OAuth/OIDC. Proposez plusieurs options pour maximiser les conversions.

Sécurité et bonnes pratiques

Validez toujours les tokens côté serveur. Utilisez HTTPS exclusivement. Stockez les refresh tokens de manière sécurisée. Implémentez la révocation des tokens. Limitez les scopes au strict nécessaire.

Single Sign-On (SSO)

OAuth/OIDC permettent le SSO entreprise : une seule authentification pour accéder à plusieurs applications. Les solutions comme Okta, Auth0 ou Keycloak fournissent cette fonctionnalité prête à l’emploi.

Machine-to-machine

Le Client Credentials Flow permet l’authentification entre services (API to API) sans utilisateur humain. C’est le flux approprié pour les microservices qui communiquent entre eux.

Les erreurs courantes

Ne stockez jamais les tokens dans le localStorage (vulnérable au XSS). Ne faites pas confiance au client pour valider les tokens. N’utilisez pas l’Implicit Flow (déprécié pour raisons de sécurité).

Conclusion

OAuth 2.0 et OpenID Connect sont des protocoles puissants mais complexes. Une implémentation correcte est essentielle pour la sécurité de votre application. Utilisez des solutions éprouvées plutôt que de réinventer la roue.

Chez Eve Media, nous implémentons des systèmes d’authentification sécurisés. Contactez-nous pour sécuriser votre application.