Accueil🇫🇷Chercher

OAuth

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
Logiciel
Logo d'OAuth
Informations
Fonction Autorisation
Date de création 2007
RFC

2010 : 5849

2012 : 6749, 6750

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 .

Histoire

OAuth a commencé en , alors que Blaine Cook implémentait OpenID pour Twitter. Avec Chris Messina, ils rencontrèrent David Recordon et Larry Halff pour discuter de la possibilité d'utiliser OpenID et l'API de Twitter pour déléguer l'authentification. Ils conclurent qu'il n'y avait pas de standard ouvert pour la délégation d'accès par API.

Un groupe de travail a Ă©tĂ© crĂ©Ă© en pour rĂ©diger un premier jet de proposition pour un protocole ouvert. DeWitt Clinton de Google fut informĂ© du projet OAuth et affirma sa volontĂ© de soutenir le standard. En , l'Ă©quipe rĂ©digea les premières spĂ©cifications Ă  l'Ă©tat de draft (brouillon). Le , la version OAuth Core 1.0 Ă©tait publiĂ©e.

Le , la version OAuth Core 1.0a venait corriger une faille de sĂ©curitĂ©.

En , la RFC 5849 standardise OAuth 1.0a.

En , les RFC 6749 et RFC 6750 standardisent OAuth 2.0.

Mode de fonctionnement

OAuth dans sa version 2.0[1] 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].

Lorsque l'application cliente souhaite demander une ressource à l'utilisateur, il envoie une requête au serveur d’autorisation composé à la fois d'une adresse URI de retour et d'un scope. Le scope définit le type et le périmètre des ressources demandées. Sur cette base, le serveur d’autorisation authentifie l'utilisateur et recueille son consentement pour la transmission de la ressource. Le serveur d’autorisation va envoyer un authorization code au client en paramètre de l'adresse URI de retour. Lorsque l'utilisateur se connecte à cette URI complétée de l’authorization code, le client renvoie l'authorization code au serveur d’autorisation pour se voir fournir un access token (jeton d'accès). Finalement, le client envoie le jeton d'accès au resource server pour obtenir les ressources de l'utilisateur.

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 », sur oauth.net (consulté le )
  2. « Sécurisez l’accès à vos APIs avec OAuth2 », sur Nexworld, (consulté le )
  3. (en) Nilasini Thirunavukkarasu, « Id token Vs access token », sur Medium, (consulté le )
  4. (en) « TeskaLabs Blog· Understanding the Importance and Value of Backend Security », sur TeskaLabs Blog (consulté le )
  5. (en) Dick Hardt, « The OAuth 2.0 Authorization Framework », sur tools.ietf.org (consulté le )

Voir aussi

Articles connexes

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.