Technique & développement

OAuth 2.0

Protocole standard d'autorisation déléguée qui permet à une application d'accéder à des ressources sur un autre service sans manipuler les identifiants de l'utilisateur.

Qu'est-ce qu'OAuth 2.0 ?

OAuth 2.0 est un protocole standard d'autorisation déléguée qui permet à une application d'accéder à des ressources hébergées sur un autre service, au nom de l'utilisateur, sans jamais manipuler son mot de passe. C'est le mécanisme derrière le célèbre bouton « Se connecter avec Google » ou « Continuer avec Microsoft ».

Concrètement, OAuth répond à une question simple : comment autoriser une application tierce à lire vos données (votre profil, votre agenda, vos fichiers) sans lui confier vos identifiants ? La réponse passe par un jeton d'accès (access token) à la portée limitée et révocable.

Autorisation, pas authentification

Il faut lever une confusion fréquente : OAuth 2.0 est un protocole d'autorisation, pas d'authentification. Il définit ce qu'une application a le droit de faire, pas qui est l'utilisateur. Pour gérer l'identité, on lui ajoute une surcouche : OpenID Connect (OIDC), qui s'appuie sur OAuth 2.0 pour fournir une vraie connexion utilisateur.

En pratique, les deux travaillent ensemble : OIDC vérifie l'identité, OAuth délègue l'accès aux ressources.

Comment fonctionne OAuth 2.0 ?

Le protocole fait intervenir quatre rôles :

Rôle Description
Resource Owner L'utilisateur, propriétaire des données
Client L'application qui demande l'accès
Authorization Server Le service qui authentifie et délivre les jetons
Resource Server L'API qui héberge les données protégées

Le déroulé typique (Authorization Code Flow) :

  1. L'application redirige l'utilisateur vers le serveur d'autorisation (Google, par exemple).
  2. L'utilisateur se connecte et consent aux accès demandés (scopes).
  3. Le serveur renvoie un code d'autorisation à l'application.
  4. L'application échange ce code contre un jeton d'accès côté serveur.
  5. Ce jeton est présenté à l'API pour chaque requête, le temps de sa validité.

Les scopes sont essentiels : ils limitent précisément ce que le jeton autorise (lecture seule du profil, accès au calendrier, etc.), selon le principe du moindre privilège.

Pourquoi utiliser OAuth 2.0 ?

  • Sécurité : l'application ne stocke jamais le mot de passe de l'utilisateur.
  • Révocabilité : un jeton peut être invalidé à tout moment sans changer de mot de passe.
  • Granularité : on n'accorde que les accès strictement nécessaires.
  • Standardisation : adopté par tous les grands fournisseurs, il facilite les intégrations.

C'est aussi la brique qui rend possible le SSO (connexion unique) et les écosystèmes connectés, où plusieurs services se font confiance via des jetons plutôt que des mots de passe partagés.

OAuth 2.0 et le sur-mesure

Dans un logiciel sur-mesure, OAuth 2.0 sert deux usages. D'abord, permettre à vos utilisateurs de se connecter via leurs comptes existants (Google, Microsoft, votre annuaire d'entreprise) sans créer un énième mot de passe. Ensuite, sécuriser vos propres API : quand votre backend expose des données à une application mobile ou à un partenaire, OAuth encadre ces accès avec des jetons traçables et révocables.

Bien implémenté, le protocole se combine avec la MFA pour les accès sensibles et s'intègre naturellement à une architecture orientée API. Mal implémenté, il devient une faille : la subtilité réside dans le choix du bon flow et la gestion rigoureuse des jetons.

Questions fréquentes

Quelle différence entre OAuth 2.0 et OpenID Connect ? OAuth 2.0 gère l'autorisation (l'accès aux ressources), OpenID Connect ajoute l'authentification (l'identité de l'utilisateur). OIDC est une couche bâtie sur OAuth : on les utilise presque toujours ensemble pour une connexion complète.

OAuth remplace-t-il les mots de passe ? Pas exactement. OAuth évite à une application tierce de manipuler vos identifiants, mais l'utilisateur s'authentifie quand même auprès du fournisseur (Google, etc.). Il déplace la responsabilité du mot de passe vers un acteur de confiance.

OAuth est-il adapté à un logiciel interne ? Oui, notamment couplé à un SSO d'entreprise. Il permet à vos collaborateurs d'accéder à vos outils internes via leur compte professionnel, avec une gestion centralisée des droits.

On en discute ?

Présentez-nous votre fonctionnement réel, on vous dit honnêtement par quelle brique sur-mesure démarrer.