Points de terminaison concernés
Point de terminaison | Cas d’utilisation |
---|---|
GET /api/v2/users/ | Récupérer les informations d’un utilisateur |
GET /api/v2/users//enrollments | Récupérer toutes les inscriptions Guardian MFA pour un utilisateur |
PATCH /api/v2/users/ | Mettre à jour les informations d’un utilisateur |
DELETE /api/v2/users//multifactor/ | Supprimer les paramètres du fournisseur multi-facteurs pour un utilisateur |
POST /api/v2/device-credentials | Créer une clé publique pour un appareil |
DELETE /api/v2/device-credentials/ | Supprimer les informations d’identification d’un appareil |
POST/api/v2/users//identities | Associer des comptes d’utilisateurs de différents fournisseurs d’identité |
DELETE /api/v2/users//identities// | Désassocier des comptes d’utilisateurs |
Actions
Modifications de permissions
Les actions que vous pouvez effectuer avec Management API dépendent des permissions que votre jeton d’accès contient. Avec cette migration, vous pouvez obtenir soit un jeton d’accès limité qui ne peut mettre à jour que les données de l’utilisateur connecté, soit un jeton d’accès qui peut mettre à jour les données de n’importe quel utilisateur. Dans la matrice suivante, vous pouvez voir les permissions que votre jeton doit avoir par cas et par point de terminaison. Par exemple, si vous obtenez un jeton d’accès qui contient la permissionread:users
, vous pouvez récupérer les données de n’importe quel utilisateur en utilisant le point de terminaison GET /api/v2/users/{id}
. Toutefois, si votre jeton contient la permission read:current_user
, vous ne pouvez récupérer que les informations de l’utilisateur actuellement connecté (celui pour lequel le jeton a été émis).
| Point de terminaison | Permission pour l’utilisateur actuel | Permission pour tout utilisateur | |-|-|-| | GET /api/v2/users/ | read:current_user
| read:users
| | GET /api/v2/users//enrollments | read:current_user
| read:users
| | POST/api/v2/users//identities | update:current_user_identities
| update:users
| | DELETE /api/v2/users//identities// | update:current_user_identities
| update:users
| | PATCH /api/v2/users/ | update:current_user_metadata
| update:users
| | PATCH /api/v2/users/ | create:current_user_metadata
| update:users
| | DELETE /api/v2/users//multifactor/ | delete:current_user_metadata
| update:users
| | POST /api/v2/device-credentials | create:current_user_device_credentials
| create:device_credentials
| | DELETE /api/v2/device-credentials/ | delete:current_user_device_credentials
| delete:device_credentials
|
Obtenir des jetons d’accès
Auth0 a modifié la façon dont vous obtenez un jeton pour les points de terminaison mentionnés ci-dessus. Il existe plusieurs variantes sur la manière d’authentifier un utilisateur et d’obtenir des jetons, en fonction de la technologie et du flux 2.0 que vous utilisez pour l’authentification :- SPA fonctionnant dans un navigateur : utilisez le point de terminaison d’autorisation.
- Application Web exécutée sur un serveur, application mobile, processus serveur ou application hautement fiable : utilisez le point de terminaison du jeton.
- Authentification croisée : utilisez Lock intégré ou auth0.js pour authentifier les utilisateurs lorsque les demandes proviennent de domaines différents.
Point de terminaison d’autorisation
Dans cette section, nous allons utiliser un exemple pour montrer les différences dans la façon dont vous obtenez un jeton avec le point de terminaison Authorization. Gardez à l’esprit que, quel que soit le point de terminaison que vous souhaitez migrer, les changements sont les mêmes, la seule chose qui diffère sont les permissions que vous spécifiez dans la requête. Dans l’exemple ci-dessous, vous utilisez le point de terminaisonGET User by ID (Obtenir l’utilisateur par identifiant)
pour récupérer les informations de profil complètes de l’utilisateur connecté. Pour ce faire, nous allons d’abord authentifier l’utilisateur à l’aide de l’octroi implicite et récupérer le(s) jeton(s). Vous pouvez voir ci-dessous une implémentation de l’ancienne approche qui obtient un jeton d’ID et l’utilise ensuite pour appeler le point de terminaison.
codeblockOld.header.login.logInButton codeblockOld.header.login.configureSnippet
- Définir
audience
àhttps://{yourDomain}/api/v2/
- Demander la permission
${scope}
- Définissez le
response_type
àid_token token
pour que Auth0 envoie à la fois un jeton d’ID et un jeton d’accès.
aud
est défini sur l’URI de l’API de votre locataire, scope
est défini sur ${scope}
, et sub
est défini sur l’identifiant de l’utilisateur connecté.
Une fois que vous avez le jeton d’accès, vous pouvez l’utiliser pour appeler le point de terminaison. Cette partie reste inchangée, rien d’autre ne change dans la demande, à l’exception de la valeur utilisée comme jeton Bearer
. La réponse reste également la même.
Point de terminaison du jeton
Dans cette section, nous allons utiliser un exemple pour montrer les différences dans la façon dont vous obtenez un jeton avec le point de terminaison du jeton. Gardez à l’esprit que, quel que soit le point d’accès que vous souhaitez migrer, les changements sont les mêmes, la seule chose qui diffère est les permissions que vous spécifiez dans la requête. Dans l’exemple ci-dessous, vous souhaitez utiliser le point de terminaisonGET User by ID
pour récupérer les informations de profil complètes de l’utilisateur connecté. Tout d’abord, authentifiez l’utilisateur à l’aide de l’octroi Password Exchange (Échange de mot passe), puis récupérez le(s) jeton(s). Vous pouvez voir ci-dessous une implémentation de l’ancienne approche qui obtient un jeton d’ID (et l’utilise ensuite pour appeler le point de terminaison).
codeblockOld.header.login.logInButton codeblockOld.header.login.configureSnippet
- Définir le
aud
àhttps://{yourDomain}/api/v2/
- Demandez la permission
read:current_user
Bearer
. La réponse reste également la même.
Lock intégré ou auth0.js
Si vous intégrez Lock ou auth0.js v9 dans votre application, vous utilisez l’authentification inter-origines. Celle-ci est utilisée pour authentifier les utilisateurs lorsque les demandes proviennent de domaines différents. Si vous utilisez auth0.js pour accéder à Management API et gérer vos utilisateurs, votre script devra être mis à jour. Dans l’exemple ci-dessous, vous pouvez voir l’ancienne approche. codeblockOld.header.login.logInButton codeblockOld.header.login.configureSnippet-
Demandez un jeton d’ID et un jeton d’accès dans la réponse
responseType: ’token id_token’
-
Définir Management API comme visée par le jeton
audience: ’https://YOUR_DOMAIN/api/v2/’
-
Demander la permission requise
scope: ’read:current_user’
- S’authentifier auprès de Management API à l’aide du jeton d’accès
Changements dans la liaison des comptes
Les modifications apportées à cette fonctionnalité sont les suivantes :-
Vous ne pouvez plus utiliser de jeton d’ID dans l’en-tête
Authorization
. -
Si vous utilisez un jeton d’accès dans l’en-tête
Authorization
, avecupdate:users
comme permission accordée, vous pouvez envoyer dans le corps de la requête soit leuser_id
, soit le jeton d’ID du compte secondaire. -
Si vous utilisez un jeton d’accès dans l’en-tête
Authorization
, avecupdate:current_user_metadata
comme permission accordée, vous ne pouvez envoyer que le jeton d’ID du compte secondaire dans le corps de la requête. Les conditions suivantes doivent être remplies :- Le jeton d’ID doit être signé à l’aide de
RS256
(vous pouvez définir cette valeur dans Dashboard > Applications > Paramètres de l’application > Paramètres avancés > OAuth). - La demande
aud
du jeton d’ID doit identifier l’application et avoir la même valeur que la demandeazp
du jeton d’accès.
- Le jeton d’ID doit être signé à l’aide de
Restrictions
Les jetons d’accès utilisés pour accéder à Management API ne doivent contenir qu’une seule valeur au niveau de la demandeaud
. Si votre jeton contient plus d’une valeur, votre demande au Management API sera rejetée.