Overview
Concepts clés
- Auth0 prend en charge le protocole OAuth 2.0 rédigé par l’Internet Engineering Task Force (IETF).
- Découvrez les rôles, les types d’octroi (ou flux) et les points de terminaison de la spécification OAuth 2.0.
Rôles
- Propriétaire de la ressource : Entité pouvant accorder l’accès à une ressource protégée. Il s’agit généralement de l’utilisateur final.
- Serveur de ressources : Serveur qui héberge les ressources protégées. Il s’agit de l’API à laquelle vous souhaitez accéder.
- Application : Application qui demande l’accès à une ressource protégée au nom du propriétaire de la ressource.
- Serveur d’autorisation : Serveur qui authentifie le propriétaire de la ressource et émet des jetons d’accès après avoir obtenu l’autorisation appropriée. Dans ce cas, il s’agit d’Auth0.
Types d’octroi
- Flux du code d’autorisation : utilisé par les applications Web exécutées sur un serveur. Il est également utilisé par les applications mobiles au moyen de la technique Proof Key for Code Exchange (PKCE).
- Flux implicite avec envoi de formulaire : utilisé par les applications axées sur JavaScript (applications monopages) exécutées dans le navigateur de l’utilisateur.
- Flux avec mot de passe du propriétaire de la ressource : utilisé par les applications hautement fiables.
- Flux des informations d’identification de l’application : utilisé pour les communications de machine à machine.
Points de terminaison
/authorize et /oauth/token.
Le point de terminaison /authorize sert à interagir avec le propriétaire de la ressource et à obtenir l’autorisation d’accéder à la ressource protégée. Pour mieux comprendre, imaginez que vous souhaitez vous connecter à un service à l’aide de votre compte Google. D’abord, le service vous redirige vers Google afin de vous authentifier (si vous n’êtes pas déjà connecté), puis un écran de consentement s’affiche, où l’on vous demande d’autoriser le service à accéder à certaines de vos données (ressources protégées) ; par exemple, votre adresse de courriel et votre liste de contacts.
Les paramètres de requête du point de terminaison /authorize sont les suivants :
Vous pouvez configurer des paramètres de requête personnalisés lorsque votre application effectue l’appel initial au point de terminaison
/authorize pour authentifier un utilisateur. Vous pouvez utiliser des paramètres de requête personnalisés pour fournir un contexte supplémentaire au modèle de page de l’expérience .
Vous devez activer ID First pour utiliser le paramètre connection. Pour en savoir plus sur le paramètre connection et l’expérience Universal Login, consultez Passwordless for Universal Login.
Les paramètres de requête précédés de ext- apparaissent automatiquement dans le contexte du modèle de page.
Ce point de terminaison est utilisé par les types d’octroi de code d’autorisation et implicite. Le serveur d’autorisation doit savoir quel type d’octroi l’application veut utiliser, puisque cela influe sur le type de justificatif qu’il émettra :
- Pour l’octroi de code d’autorisation, il émettra un code d’autorisation (qui pourra ensuite être échangé contre un jeton d’accès au point de terminaison
/oauth/token). - Pour l’octroi implicite, il émettra un jeton d’accès, qui est une chaîne opaque (ou un dans une implémentation Auth0) qui indique qui a autorisé quelles permissions (scopes) à quelle application.
response_type est utilisé comme suit :
- Pour l’octroi de code d’autorisation, utilisez
response_type=codepour inclure le code d’autorisation. - Pour l’octroi implicite, utilisez
response_type=tokenpour inclure un jeton d’accès. Une autre possibilité consiste à utiliserresponse_type=id_token tokenpour inclure à la fois un jeton d’accès et un .
response_mode. Il est facultatif et peut prendre les valeurs suivantes :
Point de terminaison de jeton
/oauth/token est utilisé par l’application pour obtenir un jeton d’accès ou un . Il est utilisé dans tous les flux, sauf le flux implicite, puisque dans ce cas, un jeton d’accès est émis directement.
- Dans le flux de code d’autorisation, l’application échange le code d’autorisation obtenu auprès du point de terminaison d’autorisation contre un jeton d’accès.
- Dans le flux d’identifiants du client et l’échange de subvention avec identifiants du mot de passe du propriétaire de la ressource, l’application s’authentifie à l’aide d’un ensemble d’identifiants, puis obtient un jeton d’accès.
Paramètres state
state qui vous permet de restaurer l’état précédent de votre application. Le paramètre state conserve un objet d’état défini par l’application dans la requête d’autorisation et le rend accessible à l’application dans la réponse. La principale raison d’utiliser le paramètre state est d’atténuer les attaques CSRF. Consultez Utiliser les paramètres state d’OAuth 2.0 pour en savoir plus.