OAuth est un cadre d'autorisation qui permet à une application d'obtenir un accès limité à un service HTTP, soit au nom d'un utilisateur, soit pour elle-même, sans que l'utilisateur ne remette un mot de passe. OAuth 2.0 est défini dans le RFC 6749. Lorsque vous collectez des données via une API officielle qui utilise OAuth, votre code envoie un jeton d'accès avec chaque requête au lieu des identifiants de connexion.

Sans OAuth, les utilisateurs devraient donner leurs mots de passe aux applications tierces. Cela expose le mot de passe, donne à l'application un accès trop large et rend difficile la révocation d'une application sans changer le mot de passe pour toutes. Un jeton d'accès porte plutôt un champ d'application spécifique, une durée de vie et d'autres attributs d'accès.

Les Quatre Rôles OAuth

  • Propriétaire de la ressource : La partie qui peut accorder l'accès à une ressource protégée. Lorsque cela concerne une personne, c'est l'utilisateur final.
  • Client : L'application qui demande les ressources protégées.
  • Serveur d'autorisation : Authentifie le propriétaire de la ressource, obtient l'approbation et émet des jetons d'accès au client.
  • Serveur de ressources : Héberge les ressources protégées et répond aux demandes qui portent des jetons d'accès.

Types de Grant OAuth

  • Code d'autorisation : Le client envoie l'utilisateur au serveur d'autorisation et échange le code retourné contre un jeton. Les identifiants de l'utilisateur n'atteignent jamais le client.
  • Identifiants du client : Le client s'authentifie en tant que lui-même pour obtenir un jeton, par exemple pour des ressources qu'il contrôle.
  • Grants implicites et par mot de passe : Les deux apparaissent dans le RFC 6749, mais oauth.net les étiquette maintenant comme des flux hérités.
  • Ce qui vient ensuite : OAuth 2.1 est un effort en cours pour consolider OAuth 2.0 et les extensions communes. OpenID Connect est un protocole d'identité distinct construit sur OAuth 2.0.

Autorisation, Pas Authentification

OAuth 2.0 n'est pas un protocole d'authentification. L'authentification indique à une application qui est l'utilisateur actuel et s'il est présent. Un jeton d'accès OAuth ne dit rien de tout cela au client. OpenID Connect ajoute cette couche : il est construit directement sur OAuth 2.0 et ajoute un jeton d'identité qui porte des informations d'authentification.

OAuth 1.0 vs. OAuth 2.0

  • Remplacement : Le RFC 6749 (OAuth 2.0) remplace et rend obsolète OAuth 1.0, qui a été défini dans le RFC 5849.
  • Non compatible : OAuth 2.0 n'est pas rétrocompatible avec OAuth 1.0. Les deux versions peuvent coexister, et un service peut prendre en charge les deux.
  • TLS requis : OAuth 2.0 nécessite TLS pour les requêtes vers le point de terminaison du jeton.

Termes Connexes