OAuth est un protocole libre qui permet d'autoriser un site web, un logiciel ou une application (dite « consommateur ») à utiliser l'API sécurisée d'un autre site web (dit « fournisseur ») pour le compte d'un utilisateur. OAuth n'est pas un protocole d'authentification, mais de « délégation d'autorisation ».
OAuth permet à l'utilisateur de donner, au site ou logiciel « consommateur », l'accès à ses informations personnelles qu'il a stockées sur le site « fournisseur » de service ou de données, ceci tout en protégeant le pseudonyme et le mot de passe des utilisateurs. Par exemple, un site de manipulation de vidéos pourra éditer les vidéos enregistrées sur Dailymotion d'un utilisateur des deux sites, à sa demande.
Le protocole est créé par Blaine Cook et Chris Messina (en) et sa partie principale, OAuth Core 1.0, est finalisée le 3 octobre 2007
...
rédiger un premier jet de proposition pour un protocole ouvert
...
Mode de fonctionnement
OAuth dans sa version 2.01 repose sur des échanges entre quatre acteurs. Le resource owner (utilisateur) est capable d’accorder l’accès à la ressource pour une application client. L’authorization server (serveur d’autorisation) occupe le rôle central au sein du protocole, il est chargé d’authentifier le resource owner et de délivrer son autorisation sous la forme d’un jeton appelé access token. Le resource server quant à lui correspond au serveur où sont stockées les ressources protégées 2.
...
Ce mécanisme 3 de va-et-vient avec l’authorization code et jeton d'accès a plusieurs avantages :
- il respecte une convention de type sécurité backend 4. La machine cliente est jugée peu sécurisée. En cas d'interception des requêtes sur cette dernière, l’authorization code ne permet pas de récupérer les ressources de l'utilisateur. L'échange du jeton d'accès se fait par un canal contrôlé par les deux services professionnels.
- oAuth permet ainsi aux développeurs, n'ayant pas de serveur avec certificat SSL proprement configuré, de faire appel à d'autres protocoles d'échange sécurisés que HTTPS pour l'échange du jeton d'accès.
- les jetons d'accès 5 (comme les JSON Web Token) peuvent être signés par le serveur d’autorisation. Ils peuvent également contenir une date de péremption.
Notes et références
1 « OAuth 2.0 — OAuth » [archive], sur oauth.net (consulté le 8 septembre 2020)
2 « Sécurisez l’accès à vos APIs avec OAuth2 » [archive], sur Nexworld, 12 juillet 2018 (consulté le 26 février 2020)
3 (en) Nilasini Thirunavukkarasu, « Id token Vs access token » [archive], sur Medium, 30 juin 2018 (consulté le 7 janvier 2021)
4 (en) « TeskaLabs Blog· Understanding the Importance and Value of Backend Security » [archive], sur TeskaLabs Blog (consulté le 7 janvier 2021)
5 (en) Dick Hardt dick.hardt@gmail.com, « The OAuth 2.0 Authorization Framework » [archive], sur tools.ietf.org (consulté le 7 janvier 2021)
Connu / https://tools.immae.eu/Shaarli/ind1ju?j4X-vw