OAuth

Open AUTHorization : autorisation ouverte/libre.

Motivation

Autoriser un accès HTTP à ses ressources par une partie tierce, sans donner ses identifiants (credentials).

Analyse

OAuth vise à :

OAuth définit différents rôles côté client et côté serveur, selon la version 1 ou 2 du protocole.

Conception

Au-delà du modèle architectural client/serveur qui définit :

  1. une application cliente (front end ou consumer) qui n'est pas propriétaire de la resource mais peut agir au nom de ce dernier dès qu'il obtient un token d'autorisation ;
  2. un serveur (back end, service provider) hébergeant des ressources protégées

OAuth définit un 3ᵉ rôle :

  1. propriétaire de ressource (resource owner) ou "utilisateur final" (end user) vers qui on se tournera pour demander si un accès est autorisé, sans pour autant dévoiler son identité.

Il définit 2 processus :

Implémentation

OAuth est rarement implémenté manuellement, mais intégré via des bibliothèques (côté client et serveur) ou des fournisseurs (Auth0 par ex) dédiés. Ces implémentations seront évidemment différentes selon la version OAuth supportée (1 ou 2).

Debugger

Notes

Stabilisé en , revisé en (révision A).

OpenID Connect étend OAuth 2.x en ajoutant des fonctionnalités standards d'identification.