Qu’est-ce qu’OAuth ?

OAuth est un protocole utilisé pour échanger des informations d’autorisation, permettant à plusieurs services en ligne d’interagir avec l’autorisation de l’utilisateur. « OAuth 1.0 » a été publié sous la forme de la RFC 5849 en avril 2010, puis « OAuth 2.0 » sous la forme de la RFC 6749 en octobre 2012.

Imaginez que vous souhaitiez publier une photo sur Instagram et la partager automatiquement sur Twitter. Accéder manuellement aux deux services pour publier le même contenu peut être fastidieux. Instagram propose donc une fonctionnalité appelée publication croisée, qui permet de partager automatiquement vos publications Instagram sur d’autres réseaux sociaux, tels que Twitter, à l’aide de leurs API. Ce processus est facilité par OAuth.

Pour publier sur Twitter, l’authentification classique nécessite un identifiant utilisateur et un mot de passe : c’est ce que l’on appelle l’authentification basique. Cependant, communiquer ces identifiants sensibles à un autre service présente des risques. OAuth résout ce problème en échangeant des informations d’autorisation plutôt que des identifiants d’authentification, et en accordant uniquement les autorisations nécessaires à cette tâche.

Dans la terminologie OAuth :

  • Le service qui reçoit l’autorisation (par exemple, Instagram) est appelé le client OAuth.
  • Le service qui accorde l’autorisation (par exemple, Twitter) est appelé le serveur OAuth.
  • L’utilisateur est désigné comme le propriétaire de la ressource.

Pour lancer le processus, le client OAuth doit d’abord s’enregistrer auprès du serveur OAuth en fournissant des informations telles que le nom et le domaine de son application. Si le serveur OAuth estime que le client est digne de confiance, il lui attribue un identifiant client.

Lorsque l’utilisateur (propriétaire de la ressource) donne son autorisation, le client OAuth le redirige vers le serveur OAuth. Le serveur OAuth authentifie l’utilisateur et lui demande s’il souhaite accorder les autorisations indiquées au client OAuth. Après approbation de l’utilisateur, le serveur le redirige vers le client OAuth et lui délivre un jeton d’accès. Ce jeton fait office de preuve d’autorisation et permet au client OAuth d’accéder à l’API du serveur OAuth. Il reste valide jusqu’à son expiration ou sa révocation explicite.