Authentifier un utilisateur et demander des claims standard
-
Lancez le flux d’authentification en envoyant l’utilisateur à l’URL d’autorisation :
Notez que, dans cet exemple :
-
Le paramètre
response_typecomprend une valeur :code: comme nous utilisons le flux d’application Web régulière, notre requête initiale vise à obtenir un authorization code; lorsque nous demanderons nos jetons à l’aide de ce code, nous recevrons le ID token dont nous avons besoin pour l’authentification.
-
Le paramètre
scopecomprend trois valeurs; les portées OIDC demandées :openid: pour indiquer que l’application a l’intention d’utiliser OIDC pour vérifier l’identité de l’utilisateur.profile: pour obtenirname,nicknameetpicture.email: pour obteniremailetemail_verified.
-
Le paramètre
- Une fois que l’utilisateur a donné son consentement (au besoin) et qu’Auth0 l’a redirigé vers votre application, demandez des jetons.
- Extrayez le ID token de la réponse et décodez-le. Vous devriez voir les claims suivants : Votre application peut maintenant récupérer les attributs de l’utilisateur et les utiliser pour personnaliser votre interface utilisateur.
Demander un accès à une API personnalisée
-
Lancez le flux d’autorisation en envoyant l’utilisateur vers l’URL d’autorisation :
Remarquez que, dans cet exemple :
-
Le paramètre
response_typecomprend toujours une valeur :code: puisque nous utilisons le flux d’application web régulière, notre demande initiale vise à obtenir un code d’autorisation; lorsque nous demanderons nos jetons à l’aide de ce code, nous recevrons le jeton d’accès que nous pourrons utiliser pour faire une requête à notre API.
-
le paramètre
scopecomprend une valeur, soit la portée d’API demandée :read:appointments: pour nous permettre de lire les rendez-vous de l’utilisateur à partir de l’API.
-
Le paramètre
audienceest nouveau et comprend une valeur :- L’identifiant unique de l’API à partir de laquelle nous voulons lire les rendez-vous de l’utilisateur.
-
Le paramètre
- Comme dans l’exemple précédent, une fois que l’utilisateur a donné son consentement (au besoin) et qu’Auth0 a redirigé l’utilisateur vers votre application, demandez des jetons.
- Extrayez le jeton d’accès de la réponse et faites une requête à l’API en utilisant le jeton d’accès comme informations d’authentification.
Authentifier un utilisateur et demander des claims standards ainsi qu’un accès à une API personnalisée
-
Un ID token qui contient :
- Le nom de l’utilisateur
- Le pseudonyme
- La photo de profil
- Les renseignements sur le courriel
- Un jeton d’accès qui contient la portée appropriée pour lire les rendez-vous à partir de l’API. Notez que la demande d’un jeton d’accès ne dépend pas de la demande d’un ID token.
-
Lancez le flux d’authentification en envoyant l’utilisateur vers l’URL d’autorisation :
Notez que, dans cet exemple :
-
Le paramètre
response_typecomprend toujours une valeur :code: puisque nous utilisons le flux d’application Web régulière, notre requête initiale vise un code d’autorisation; lorsque nous demanderons nos jetons à l’aide de ce code, nous recevrons à la fois l’ID token dont nous avons besoin pour l’authentification et le jeton d’accès que nous pourrons utiliser pour effectuer une requête vers notre API.
-
Le paramètre
scopeest utilisé à la fois pour les portées OIDC et les portées d’API; il comprend donc maintenant quatre valeurs :openid: pour indiquer que l’application a l’intention d’utiliser OIDC pour vérifier l’identité de l’utilisateur.profile: pour obtenirname,nicknameetpicture.email: pour obteniremailetemail_verified.read:appointments: pour nous permettre de lire les rendez-vous de l’utilisateur à partir de l’API.
-
le paramètre
audiencecomprend une valeur :- L’identificateur unique de l’API à partir de laquelle nous voulons lire les rendez-vous de l’utilisateur
-
Le paramètre
- Comme dans les exemples précédents, après que l’utilisateur a donné son consentement (au besoin) et qu’Auth0 a redirigé l’utilisateur vers votre application, demandez les jetons.
- Extrayez l’ID token de la réponse, décodez-le, récupérez les attributs de l’utilisateur et utilisez-les pour personnaliser votre UI.
- Extrayez le jeton d’accès de la réponse et effectuez une requête vers l’API en utilisant le jeton d’accès comme informations d’identification.
Ajouter des claims personnalisés à un jeton
/userinfo (bien que l’Action ne s’exécute que pendant le processus d’authentification).
Auth0 prend en charge les claims avec et sans espace de noms, mais certaines restrictions s’appliquent (consultez Restrictions générales). Pour éviter les collisions de noms, nous recommandons d’utiliser des claims avec espace de noms. En cas de collision, la transaction n’échouera pas, mais votre claim personnalisé ne sera pas ajouté à vos jetons.
- À un certain moment, l’utilisateur a sélectionné
emailcomme méthodepreferred_contactetredcomme valeur defavorite_color, et que nous l’avons enregistré dans leuser_metadatade l’utilisateur. - Nous avons utilisé la Management API ou le Dashboard pour définir des renseignements propres à l’application pour cet utilisateur.
- Le claim
subcontient la valeur de la propriétéuser_id. - Ni les propriétés
favorite_colorniuser_metadatane sont présentes, car Connect (OIDC) ne définit pas de claims standard pour représenterfavorite_colorouuser_metadata.
- Accédez à Auth0 Dashboard > Actions > Library, puis sélectionnez Build Custom.
-
Saisissez un Name descriptif pour votre Action (par exemple,
Add user metadata to tokens), sélectionnez le triggerLogin / Post Loginpuisque vous ajouterez l’Action au Login flow, puis sélectionnez Create. -
Repérez le Actions Code Editor, copiez-y le code Javascript suivant, puis sélectionnez Save Draft pour enregistrer vos modifications :
- Dans la barre latérale du Actions Code Editor, sélectionnez Test (icône de lecture), puis sélectionnez Run pour tester votre code.
- Lorsque vous êtes prêt à mettre l’Action en service, sélectionnez Deploy.
favorite_color et preferred_contact dans le ID Token :
api.idToken.setCustomClaims. Pour ajouter ces claims à un jeton d’accès, utilisez la méthode api.accessToken.setCustomClaim.
Pour en savoir plus sur l’objet Event associé au trigger, consultez Actions Triggers: post-login - Event Object. Pour en savoir plus sur les jetons, consultez Tokens.