Qu'est-ce que OAuth ?

Mécanisme qui permet à un utilisateur d'accorder à une autre application (le client) un accès limité à ses ressources, sans lui confier son mot de passe (délégation d'autorisation). La version OAuth 2.0 est très répandue. Il fait intervenir quatre rôles : le propriétaire de la ressource (l'utilisateur), le client, le serveur d'autorisation, qui émet un jeton d'accès avec la permission de l'utilisateur, et le serveur de ressources, qui vérifie le jeton et renvoie les ressources. OAuth lui-même est un mécanisme d'autorisation ; pour s'en servir pour la connexion (authentification), on utilise OpenID Connect, qui y ajoute un jeton d'identité.

Nom japonais: OAuth

« OAuth » apparaît dans 2 questions d'entraînement réparties sur 1 thèmes, dont Bases des technologies web.

Domaine: Bases des technologies web

S'entraîner : questions sur OAuth

Une application de tirage de photos lit, avec la permission de l'utilisateur, ses photos stockées sur le service de stockage de photos d'une autre entreprise. Dans OAuth 2.0, quel rôle présente à l'utilisateur l'écran qui lui demande sa permission et, s'il l'accorde, émet un jeton d'accès à l'application ?

  1. ALe serveur de ressources
  2. BLe serveur d'autorisation
  3. CLe client
Afficher la réponse et l'explication

Réponse : B. Le serveur d'autorisation

OAuth 2.0 définit quatre rôles : le propriétaire de la ressource (l'utilisateur), le client (l'application de tirage), le serveur d'autorisation et le serveur de ressources (l'API qui renvoie les photos). Le serveur d'autorisation vérifie l'identité de l'utilisateur et obtient son consentement, puis émet au client un jeton d'accès limité en portée (scope) et en durée. Le client appelle l'API du serveur de ressources avec le jeton, et le serveur de ressources vérifie le jeton avant de renvoyer les photos. L'utilisateur n'a pas à confier à l'application le mot de passe du service de stockage, et il peut aussi révoquer la permission plus tard.

Quelle description de la relation entre OAuth 2.0 et OpenID Connect est correcte ?

  1. AOAuth 2.0 est un mécanisme de délégation de l'autorisation d'accès aux ressources, et OpenID Connect y ajoute un jeton d'identité (ID token) qui transmet le résultat de l'authentification, ce qui permet de l'utiliser pour la connexion
  2. BOAuth 2.0 est un mécanisme qui transmet le résultat de l'authentification de l'utilisateur, et OpenID Connect, sans l'utiliser, envoie directement le mot de passe de l'utilisateur à chaque service lié pour le vérifier
  3. COpenID Connect est un protocole de chiffrement des communications HTTP, utilisé à la place de TLS pour envoyer les écrans de connexion
Afficher la réponse et l'explication

Réponse : A. OAuth 2.0 est un mécanisme de délégation de l'autorisation d'accès aux ressources, et OpenID Connect y ajoute un jeton d'identité (ID token) qui transmet le résultat de l'authentification, ce qui permet de l'utiliser pour la connexion

Un jeton d'accès OAuth 2.0 représente une permission, au sens de « tu peux utiliser les ressources de cette portée » ; il n'est pas conçu pour vérifier qui s'est connecté. OpenID Connect ajoute au flux d'OAuth 2.0 un jeton d'identité sous la forme d'un JWT signé. Le jeton d'identité contient l'émetteur, l'identifiant de l'utilisateur, le client destinataire, la date d'expiration, etc., et le client en vérifie la signature et le contenu pour savoir qui est l'utilisateur. Ce mécanisme sert aux fonctions de connexion avec le compte d'un autre service et à l'authentification unique (SSO).

« OAuth » dans les explications

Questions mentionnant « OAuth » (2)

  1. Une application de tirage de photos lit, avec la permission de l'utilisateur, ses photos stockées sur le service de stockage de photos d'une autre entreprise. Dans OAuth 2.0, quel rôle présente à l'utilisateur l'écran qui lui demande sa permission et, s'il l'accorde, émet un jeton d'accès à l'application ?
  2. Quelle description de la relation entre OAuth 2.0 et OpenID Connect est correcte ?

Termes associés

JWT (JSON Web Token) API REST Boucle d'événements (event loop) Code d'état HTTP Cookie (cookie HTTP) CORS (partage des ressources entre origines) DOM (Document Object Model) HTTP (Hypertext Transfer Protocol) JSON (JavaScript Object Notation) Méthode HTTP

Retour au glossaire