Passer au contenu principal
Lorsque vous authentifiez avec succès un utilisateur auprès d’un fournisseur d’identité externe (), tel que Facebook ou GitHub, l’IdP inclut souvent un jeton d’accès dans le profil utilisateur qu’il renvoie à Auth0. Vous pouvez récupérer et utiliser ce jeton pour appeler l’API de l’IdP.
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.
La procédure à suivre diffère selon que votre code s’exécute dans le système dorsal ou dans le système du côté client.
  • 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.
  1. Obtenez un jeton d’accès qui vous permet d’appeler la Management API d’Auth0.
  2. 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.
  3. 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 :
  1. Naviguez vers Auth0 Dashboard > Applications > API, et sélectionnez Auth0 Management API.
  2. Sélectionnez la vue Explorateur d’API et cliquez sur Créer et autoriser une application d’essai.
Cela créera une nouvelle application et accordera toutes les permissions de Management API, ce qui signifie que les jetons générés pour cette application pourront accéder à tous les points de terminaison du Management API.

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 :
  1. Naviguez vers Auth0 Dashboard > Applications > Applications, et sélectionnez Créer une application.
  2. Sélectionnez Applications machine-machine, puis Créer.
  3. Dans le menu déroulant Sélectionner une API, sélectionnez Auth0 Management API.
  4. Autorisez les permissions requises, puis sélectionnez Authorize (Autoriser).
  5. 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.
Pour accorder ou supprimer des permissions de Management API d’Auth0 enregistrée, sélectionnez la vueMachine to Machine Applications (Applications de communication entre machines) :
Modifier les permissions accordées à l'application

Obtenir le jeton de Management API

Vous avez maintenant terminé la configuration et êtes prêt à obtenir votre jeton de Management API :
  1. À partir de la Management API d’Auth0 enregistrée , sélectionnez la vueEssai.
  2. Choisissez votre application dans le menu déroulant Application pour pré-remplir les extraits prêts à l’emploi avec des variables personnalisées.
  3. Choisissez le langage de votre choix pour l’extrait, puis copiez-le et exécutez-le.
  4. 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 :
  1. Naviguez vers Auth0 Dashboard > Applications > API, et sélectionnez Auth0 Management API.
  2. 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.
Le prochain jeton que vous générerez utilisera le délai d’expiration mis à jour.
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.
curl --request GET \
  --url 'https://{yourDomain}/api/v2/users/%7BuserId%7D' \
  --header 'authorization: Bearer {yourAccessToken}'
Remplacer ces valeurs :
  • {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?

É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 tableau identities 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.
Dans la plupart des cas, l’utilisateur n’aura qu’une seule identité, mais si l’utilisateur s’est connecté plusieurs fois via différentes connexions et que vous avez utilisé l’association de comptes, il peut y en avoir plusieurs. Dans cet exemple de réponse, nous voyons que notre utilisateur n’a qu’une seule identité : google-oauth2.
{
  "email": "john.doe@test.com",
  "email_verified": true,
  "name": "John Doe",
  "given_name": "John",
  "family_name": "Doe",
  "picture": "https://myavatar/photo.jpg",
  "gender": "male",
  "locale": "en",
  "updated_at": "2017-03-15T07:14:32.451Z",
  "user_id": "google-oauth2|111199914890750704174",
  "nickname": "john.doe",
  "identities": [
    {
      "provider": "google-oauth2",
      "access_token": "ya29.GlsPBCS6ahokDlgCYnVLnDKNE71HBXPEzNhAPoKJLAGKDSe1De3_xclahNcdZXoU-26hCpa8h6240TV86dtaEQ4ZWoeeZduHDq_yeu9QyQqUr--S9B2CR9YJrLTD",
      "expires_in": 3599,
      "user_id": "111199914890750704174",
      "connection": "google-oauth2",
      "isSocial": true
    }
  ],
  "created_at": "2017-03-15T07:13:41.134Z",
  "last_ip": "127.0.0.1",
  "last_login": "2017-03-15T07:14:32.451Z",
  "logins_count": 99
}
Vous êtes maintenant prêt à appeler l’API de l’IdP. Veuillez vous référer à la documentation de l’IdP pour plus de détails sur la façon de procéder.
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).
I