Aperçu
Concepts clés
- Auth0 prend en charge le protocole OAuth 2.0 élaboré par l’Internet Engineering Task Force (IETF).
- Consultez la spécification OAuth 2.0 pour en savoir plus sur les rôles, les types d’octroi (ou workflows) et les points de terminaison.
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 voulez accéder.
- Client : 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 nécessaire. Dans ce cas-ci, il s’agit d’Auth0.
Types d’octroi
- Flux du code d’autorisation : utilisé par les applications Web exécutées sur un serveur. Ce flux est aussi utilisé par les applications mobiles au moyen de la technique de clé de preuve pour l’échange de code (PKCE).
- Flux implicite avec Form Post : utilisé par les applications axées sur JavaScript (applications monopage) qui s’exécutent dans le navigateur de l’utilisateur.
- Flux de mot de passe du propriétaire de la ressource : utilisé par les applications hautement fiables.
- Flux des informations d’identification du client : utilisé pour la communication machine à machine.
Endpoints
/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 voulez vous connecter à un service avec 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 demandera d’autoriser le service à accéder à certaines de vos données (ressources protégées), par exemple votre adresse 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 la requête initiale vers le 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éfixés par ext- apparaissent automatiquement dans le contexte du modèle de page.
Ce point de terminaison est utilisé par les types de grant Authorization Code et Implicit. Le serveur d’autorisation doit savoir quel type de grant l’application veut utiliser, puisque cela influe sur le type d’identifiant qu’il émettra :
- Pour le grant Authorization Code, il émettra un code d’autorisation (qui pourra ensuite être échangé contre un jeton d’accès au point de terminaison
/oauth/token). - Pour le grant Implicit, il émettra un jeton d’accès, qui est une chaîne opaque (ou un dans une mise en œuvre Auth0) qui indique quelle application a été autorisée à quelles permissions (scopes), et par qui.
response_type est utilisé comme suit :
- Pour le grant Authorization Code, utilisez
response_type=codepour inclure le code d’autorisation. - Pour le grant Implicit, utilisez
response_type=tokenpour inclure un jeton d’accès. Une autre possibilité est d’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, car 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 du point de terminaison d’autorisation contre un jeton d’accès.
- Dans le flux des informations d’identification du client et l’échange d’octroi des informations d’identification par mot de passe du propriétaire de la ressource, l’application s’authentifie au moyen d’un ensemble d’informations d’identification, puis obtient un jeton d’accès.
Paramètres d’état
state qui vous permet de rétablir l’état antérieur de votre application. Le paramètre state conserve l’objet d’état défini par le client dans la requête d’autorisation et le rend accessible au client dans la réponse. La principale raison d’utiliser le paramètre state est de réduire les risques d’attaques CSRF. Consultez Utiliser les paramètres d’état d’OAuth 2.0 pour en savoir plus.