Cet article suppose que vous avez déjà configuré la connexion avec l’IdP de votre choix. Si ce n’est pas le cas, accédez à Fournisseurs d’identités pris en charge par Auth0, sélectionnez le fournisseur d’identités de votre choix et suivez les étapes de configuration.
- Si votre code s’exécute dans le système dorsal, nous pouvons supposer que votre serveur est fiable pour stocker des secrets en toute sécurité (comme vous le verrez, nous utilisons un secret dans le scénario du système dorsal). Si c’est le cas, passez à la section système dorsal de cet article.
- Si votre code s’exécute dans le système du côté client (par exemple, il s’agit d’une application à page unique, d’une application native de bureau ou d’une application mobile), votre application ne peut pas conserver les informations d’identification de manière sécurisée et doit suivre une autre approche. Dans ce cas, passez à la section système du côté client de cet article.
Depuis le système dorsal
Lorsque vous authentifiez un utilisateur, l’IdP inclut souvent un jeton d’accès dans le profil utilisateur qu’il renvoie à Auth0. Pour des raisons de sécurité et de conformité, Auth0 n’envoie pas ce jeton à votre application dans le cadre du profil utilisateur. Pour l’obtenir, vous devez accéder à d’Auth0 et récupérer le profil complet de l’utilisateur.- Obtenez un jeton d’accès qui vous permet d’appeler la Management API d’Auth0.
- Appelez le point de terminaison Obtenir les utilisateurs selon leurs ID du Management API d’Auth0 à l’aide du jeton d’accès obtenu à la première étape. Ce point final renvoie le profil complet de l’utilisateur, qui contient le jeton d’accès à l’IdP.
- Extraire le jeton d’accès de l’IdP de la réponse et l’utiliser pour appeler l’API de l’IdP.
Étape 1 : Obtenir un jeton
Vous aurez besoin d’un jeton d’accès pour appeler la Management API.Créer une application d’essai pour Management API
Si c’est la première fois que vous demandez un Jeton Management APIv2, vous devrez créer et configurer une application qui peut être utilisée pour appeler Management API :- Naviguez vers Auth0 Dashboard > Applications > API, et sélectionnez Auth0 Management API.
- Sélectionnez la vue Explorateur d’API et cliquez sur Créer et autoriser une application d’essai.
Vous ne voyez pas le bouton?
Si vous ne voyez pas ce bouton, cela signifie que vous avez au moins une autre application autorisée pour Management API. Dans ce cas, vous pouvez soit mettre à jour les permissions de l’application existante et l’utiliser, ou en créer une en suivant ces étapes :
- Naviguez vers Auth0 Dashboard > Applications > Applications, et sélectionnez Créer une application.
- Sélectionnez Applications machine-machine, puis Créer.
- Dans le menu déroulant Sélectionner une API, sélectionnez
Auth0 Management API
. - Autorisez les permissions requises, puis sélectionnez Authorize (Autoriser).
- Sélectionnez l’affichage API, puis activez le bouton bascule Management API Auth0.
Pour des raisons de sécurité, nous vous conseillons de n’attribuer que les permissions nécessaires à votre application. Pour ce cas particulier, les permissions nécessaires sont :
read:users
, read:user_idp_tokens
. Les permissions nécessaires sont répertoriées pour chaque point de terminaison dans Explorateur de Management API.
Obtenir le jeton de Management API
Vous avez maintenant terminé la configuration et êtes prêt à obtenir votre jeton de Management API :- À partir de la Management API d’Auth0 enregistrée , sélectionnez la vueEssai.
- Choisissez votre application dans le menu déroulant Application pour pré-remplir les extraits prêts à l’emploi avec des variables personnalisées.
- Choisissez le langage de votre choix pour l’extrait, puis copiez-le et exécutez-le.
- Extrayez la propriété
access_token
de la réponse. C’est ce que vous utiliserez pour accéder à Management API.
À quoi servent les snippets?
Les snippets font une opération
POST
au point de terminaison /oauth/token de l’Auth0 Authentication API (API d’authentification Auth0) à l’aide de l’autorisation OAuth 2.0 Client Credentials (Authentifiants client OAuth 2.0). Il s’agit de l’autorisation que les processus machine-machine utilisent pour accéder à une API. Pour en savoir plus sur le flux, lisez Flux des identifiants client.Expiration du jeton
Par défaut, le jeton que vous avez reçu expire dans 24 heures (86 400 secondes). Pour changer cela :- Naviguez vers Auth0 Dashboard > Applications > API, et sélectionnez Auth0 Management API.
- Sélectionnez la vue Paramètres, localisez le champ Expiration du jeton (secondes), saisissez une nouvelle valeur et cliquez sur Enregistrer. La valeur maximale que vous pouvez définir est de 2 592 000 secondes (30 jours), mais nous vous recommandons de conserver la valeur par défaut.
Ces jetonsne peuvent pas être révoqués. Pour minimiser les risques, nous vous conseillons d’émettre des jetons de courte durée et d’octroyer uniquement les permissions nécessaires pour chaque application. Dans un environnement de production, vous pouvez configurer un simple interface de ligne de commande qui récupérera un nouveau jeton lorsque l’ancien expirera.
Étape 2 : Obtenir le profil utilisateur complet
Pour obtenir le profil d’un utilisateur, appelez le point de terminaison Obtenir un utilisateur du Management API en utilisant le jeton d’accès que vous avez extrait dans la section précédente.{userId}
: ID de l’utilisateur pour lequel vous souhaitez appeler l’API de l’IdP.{yourAccessToken}
: Jeton d’accès que vous avez extrait dans la section précédente.
Où puis-je trouver l’identifiant utilisateur?
- À des fins de test, vous pouvez trouver un ID utilisateur dans Auth0 Dashboard > Gestion des utilisateurs > Utilisateurs. Localisez un utilisateur, et copiez la valeur du champ user_id.
-
Pour votre implémentation, vous pouvez soit extraire l’ID utilisateur de la demande
sub
dans le jeton d’ID, soit appeler le point de terminaison /userinfo de l’Authentication API et l’extraire de la propriété de réponseuser_id
.
Étape 3 : Extraire le jeton d’accès de l’IdP
Vous pouvez trouver le jeton d’accès utilisé pour appeler l’API de l’IdP dans le tableauidentities
de l’utilisateur : user.identities[0].access_token
.
Pour certains fournisseurs d’identités, Auth0 stocke également un jeton d’actualisation, que vous pouvez utiliser pour obtenir un nouveau jeton d’accès pour l’IdP. Compatible avec : BitBucket, Google (OAuth 2.0), OAuth 2.0, SharePoint et Azure AD. Pour en savoir plus, consultez Jetons d’accès de fournisseur d’identités.
google-oauth2
.
N’exposez pas les jetons IdP à votre application du côté client! Si votre application est publique, consultez la section frontend de cet article.
Pour en savoir plus sur la manière de demander des permissions spécifiques pour un jeton d’accès de fournisseur d’identités, consultez Ajouter des permissions/autorisations pour appeler les API du fournisseur d’identité.
Depuis le côté client
Si vous travaillez avec une application publique (application à page unique, bureau natif ou application mobile), vous êtes au bon endroit. Lorsque vous travaillez avec une application du côté client, le processus d’appel des IdP API diffère du processus du système dorsal, car les applications du côté client sont des applications publiques qui ne peuvent pas conserver les informations d’identification en toute sécurité. Étant donné que le code d’une application à page unique peut être consulté et modifié, et que les applications natives/mobiles peuvent être décompilées et inspectées, on ne peut pas leur faire confiance pour conserver des informations sensibles telles que des clés secrètes ou des mots de passe. En particulier, elles ne peuvent pas contenir en toute sécurité le Secret du client pour l’application de communication entre machines, laquelle vous utilisez pour appeler/oauth/token
au cours de la première étape du processus dorsal.
Au lieu de cela, vous devez construire un proxy pour votre système dorsal et l’exposer à votre application en tant qu’API.
Construire un proxy
Tout d’abord, vous allez construire un processus dans votre programme dorsal qui mettra en œuvre les étapes incluses dans la section du système dorsal de cet article, et l’exposer à votre application en tant qu’API. Vous appellerez l’API de l’IdP à partir du même processus dorsal, de sorte que le jeton d’accès ne soit jamais exposé à votre application publique. Ensuite, vous appelerez l’API de votre proxy à partir de votre application publique en utilisant le Flux de code d’autorisation avec Proof Key for Code Exchange (PKCE).Montrez-moi comment
Si vous ne l’avez pas encore implémenté, vous pourriez trouver notre scénario d’architecture de Applications à page unique avec API utile. Il couvre un scénario différent, mais explique comment configurer Auth0, comment faire une requête à une API depuis une SPA et comment implémenter des validations API. Il inclut un exemple qui utilise Angular 2 et Node.js.Nous offrons également une variation avec Applications mobiles avec API (l’exemple utilise Android et Node.js).