L’autorisation OAuth (Open Authorization) est un protocole ouvert qui permet à des applications tierces d’obtenir un accès limité à un service HTTP :
- soit sur le compte de l’utilisateur
- soit par l’intermédiaire d’un service de partage de ressources
Comment ça marche ?
- L’utilisateur se connecte à une application tierce
- L’application tierce demande l’autorisation à l’utilisateur
- L’utilisateur autorise l’application tierce
- L’application tierce reçoit un jeton d’accès
- L’application tierce peut accéder aux ressources de l’utilisateur
Les acteurs et rôles de l’OAuth
Les acteurs
- Resource Owner : l’utilisateur
- Client : l’application tierce
- Authorization Server : le serveur d’autorisation
- Resource Server : le serveur de ressources
Les rôles
- Resource Owner : possède les ressources protégées
- Client : demande l’accès aux ressources protégées
- Authorization Server : vérifie l’identité du Resource Owner et autorise le Client
- Resource Server : héberge les ressources protégées
Les étapes
- Obtention de l’autorisation : le Client demande l’autorisation au Resource Owner
- Redirection vers l’Authorization Server : le Resource Owner est redirigé vers l’Authorization Server
- Autorisation de l’application : le Resource Owner autorise l’application
- Redirection vers le Client : le Resource Owner est redirigé vers le Client
- Demande de jeton d’accès : le Client demande un jeton d’accès à l’Authorization Server
- Réception du jeton d’accès : le Client reçoit un jeton d’accès
- Accès aux ressources : le Client accède aux ressources protégées
Les alternatives
- OpenID Connect : protocole d’authentification basé sur OAuth 2.0
- SAML : protocole d’authentification et d’autorisation
- JWT : protocole de transfert de jeton
Conclusion
OAuth est un protocole d’autorisation qui permet à des applications tierces d’obtenir un accès limité à un service HTTP. Il est utilisé pour sécuriser l’accès aux ressources protégées.
Comme pour l’authentification JWT, nous y reviendrons par la suite pour le mettre en place dans notre application.