Point de terminaison
POST /oauth/token
L’échange de jetons personnalisé (CTE) fournit un mécanisme permettant aux applications d’échanger des jetons d’identité existants contre des jetons Auth0 en appelant le point de terminaison /oauth/token, conformément aux spécifications de la RFC 8693. Cette fonctionnalité est particulièrement utile pour répondre à des besoins d’intégration avancés, par exemple pour échanger des jetons Auth0 existants afin d’accéder à une autre audience au nom du même utilisateur, faciliter l’intégration de fournisseurs d’identité externes ou permettre une migration fluide des utilisateurs vers la plateforme Auth0. Le processus d’échange peut être entièrement contrôlé, puisque les développeurs peuvent en définir les détails à l’aide de leur logique personnalisée exécutée dans une Action Auth0 dédiée au cas d’utilisation concerné.
Custom Token Exchange est actuellement offert en Accès anticipé. En utilisant cette fonctionnalité, vous acceptez les conditions applicables de l’essai gratuit prévues dans le Contrat-cadre d’abonnement d’Okta. Il vous incombe de valider en toute sécurité le
subject_token de l’utilisateur. Consultez le guide d’utilisation pour en savoir plus.Remarques
-
Les scopes accordés à l’application peuvent différer des scopes demandés. Dans ce cas, un paramètre
scopesera inclus dans la réponse JSON. Les scopes sont filtrés comme expliqué dans Politiques d’accès aux API pour les applications -
Le
subject_token_typedoit correspondre à un profil de Custom Token Exchange existant et à une Action associée. -
Pour les applications non confidentielles qui ne peuvent pas protéger le Secret client (par exemple, les applications natives), le point de terminaison permet de ne pas fournir de Secret client, mais l’application elle-même doit avoir la propriété
tokenEndpointAuthMethoddéfinie surnone. Vous pouvez le faire soit dans l’interface utilisateur (Auth0 Dashboard > Applications > Paramètres de l’application), soit à l’aide de la Management API. - Vous devez activer Custom Token Exchange pour votre application. Pour en savoir plus, consultez la documentation sur Custom Token Exchange.
-
actor_tokenetactor_token_typedoivent soit être tous deux présents, soit être tous deux absents. Si un seul est fourni, une erreur400avec le codeinvalid_requestest renvoyée. -
Lorsque
actor_tokenest présent, aucun Jeton d’actualisation n’est émis. Le scopeoffline_accessest exclu de la réponse. -
MFA n’est pas compatible avec les transactions dans lesquelles un acteur est défini au moyen de
setActor(). Si MFA est requis et que l’Action Custom Token Exchange définit un acteur, la requête renvoie une erreur400:MFA is not supported using actor_token with the requested token exchange profile. -
Lorsque l’Action appelle
setActor(), les jetons d’accès et les ID tokens émis incluent une revendicationactreprésentant la chaîne de délégation. La revendicationactest également incluse dans la réponse userinfo.
En-têtes
Une preuve DPoP pour la requête. Ce paramètre est facultatif et n’est requis que si votre application utilise Demonstrating Proof-of-Possession.
L’adresse IP de l’utilisateur final, sous forme de chaîne de caractères. Définissez ce paramètre si vous souhaitez que la protection Suspicious IP Throttling fonctionne dans les scénarios côté serveur.
Paramètres du corps
Indique le flux que vous utilisez. Pour Custom Token Exchange, utilisez
urn:ietf:params:oauth:grant-type:token-exchange.Valeurs autorisées : urn:ietf:params:oauth:grant-type:token-exchangeLe type du jeton du sujet. Pour Custom Token Exchange, il peut s’agir de n’importe quel URI relevant d’un espace qui vous appartient, comme
http://acme.com/legacy-token ou urn:acme:legacy-token. Les espaces de noms suivants sont réservés et ne peuvent pas être utilisés : http://auth0.com, https://auth0.com, http://okta.com, https://okta.com, urn:ietf, urn:auth0, urn:okta.Le jeton du sujet, que votre Action doit valider et utiliser pour identifier l’utilisateur.
L’ID client de votre application. Comme pour les autres types d’octroi, vous pouvez aussi transmettre l’ID client dans l’en-tête Authorization à l’aide de HTTP Basic Auth.
(Facultatif) Le Secret client de votre application. Comme pour les autres types d’octroi, vous pouvez aussi transmettre le secret client dans l’en-tête Authorization à l’aide de HTTP Basic Auth. D’autres options sont aussi offertes, comme l’explique la documentation de référence de l’Authentication API d’Auth0. Comme Custom Token Exchange peut être utilisé par des applications publiques, consultez Attack Protection pour mettre en place des mesures de sécurité supplémentaires.
(Facultatif) L’identifiant unique de l’API cible à laquelle vous voulez accéder. L’audience par défaut du locataire sera utilisée si ce paramètre n’est pas fourni, comme configuré dans Paramètres du locataire.
(Facultatif) L’identifiant de l’API cible (serveur de ressources) à laquelle vous voulez accéder. Il doit correspondre à un identifiant d’API enregistré dans votre locataire Auth0. Il est utilisé comme solution de rechange à
audience lorsque le profil de compatibilité du paramètre Resource du locataire est défini sur compatibility.(Facultatif) Le paramètre OAuth2
scope.(Facultatif) L’organisation ou l’identifiant auquel vous voulez associer la requête. Vous pouvez aussi préciser un nom d’organisation si Utiliser des noms d’organisation dans l’Authentication API est activé.
(Facultatif) Un jeton qui identifie l’acteur effectuant une délégation au nom de l’utilisateur sujet. Il doit être fourni avec
actor_token_type. Lorsqu’il est présent, des Jetons d’actualisation ne seront pas émis.(Facultatif) Le type du jeton de l’acteur. Il doit être fourni avec
actor_token. Pour les ID Tokens Auth0, utilisez urn:ietf:params:oauth:token-type:id_token afin d’activer la validation automatique côté serveur (signature, expiration, émetteur, recherche de l’utilisateur). Pour les autres valeurs, respectez les mêmes restrictions d’espace de noms que pour subject_token_type.