Qu’est-ce que OAuth2 ?
OAuth2 est, vous l’aurez deviné, la version 2 du protocole (appelé aussi framework) OAuth.
Ce protocole permet à des applications tierces d’obtenir un accès limité à un service disponible via HTTP par le biais d’une autorisation préalable du détenteur des ressources. L’accès est demandé par ce qu’on appelle « un client », et qui peut être un site internet ou une application mobile par exemple. Si les ressources n’appartiennent pas au client, alors ce dernier doit obtenir l’autorisation de l’utilisateur final, sinon il peut directement obtenir l’accès en s’authentifiant avec ses propres identifiants.
La version 2 est censée simplifier la version précédente du protocole et à faciliter l’interopérabilité entre les différentes applications.
Les spécifications sont toujours en cours de rédaction et le protocole évolue sans cesse mais cela ne l’empêche pas d’être plébiscité et implémenté par de nombreux sites tels que Google ou Facebook.
Notions de base
Les rôles
OAuth2 définit 4 rôles bien distincts :
- Le détenteur des données (Resource Owner) : généralement vous-même.
- Le serveur de ressources (Resource Server) : serveur qui héberge les données dont l’accès est protégé (par exemple Google qui stocke les informations de votre profil).
- Le client (Client Application) : une application demandant des données au serveur de ressources (cela peut être votre application PHP côté serveur, une application Javascript côté client ou une application mobile par exemple).
- Le serveur d’autorisation (Authorization Server) : serveur qui délivre des tokens (ou jetons) au client. Ces tokens seront utilisés lors des requêtes du client vers le serveur de ressources. Ce serveur peut être le même que le serveur de ressources (physiquement et applicativement), et c’est souvent le cas.