Skip to main content
L’échange de jeton personnalisé permet aux applications d’échanger un jeton de sécurité existant — appelé subject_token — contre des jetons d’accès, d’ID et d’actualisation Auth0 en appelant le point de terminaison /oauth/token, conformément à la RFC 8693.

Fonctionnement

Le flux échange de jeton personnalisé est régi par une seule Action échange de jeton personnalisé, sélectionnée de façon unique en fonction du paramètre subject_token_type entrant, tel qu’il est configuré dans un profil échange de jeton personnalisé.
Comme préalable au flux, vous devez définir un profil échange de jeton personnalisé qui associe un subject_token_type précis à l’Action qui traitera les requêtes. Lorsque le flux échange de jeton personnalisé est déclenché :
  1. L’application envoie une requête POST au point de terminaison /oauth/token avec le jeton de sécurité à échanger (le subject_token) et le subject_token_type correspondant. La requête peut aussi inclure un actor_token et un actor_token_type pour identifier une entité agissant au nom de l’utilisateur.
  2. Auth0 valide la requête du client et les informations d’identification.
  3. L’Action échange de jeton personnalisé associée est exécutée. Votre code personnalisé doit décoder et valider le subject_token, appliquer toutes les politiques d’autorisation nécessaires et définir l’utilisateur pour la transaction afin d’approuver l’échange. L’Action peut aussi définir un acteur pour la transaction au moyen de api.authentication.setActor(), ce qui produit une revendication act dans les jetons émis qui identifie qui agit au nom de l’utilisateur.
  4. Le reste du pipeline Auth0 standard s’exécute ensuite pour générer un jeton d’accès Auth0 et, au besoin, un jeton d’ID et un jeton d’actualisation pour l’utilisateur défini.
  5. L’application demandeuse peut ensuite utiliser ces nouveaux jetons émis pour effectuer en toute sécurité des requêtes à des API au nom de l’utilisateur défini dans l’Action.
L’utilisation de audience défini sur urn:YOUR_AUTH0_TENANT_DOMAIN:session_transfer renvoie un jeton de transfert de session au lieu d’un jeton d’accès, que votre application peut échanger afin d’établir une session Web en tant qu’un autre utilisateur. Pour en savoir plus, consultez la délégation de session.

Pour commencer

Pour utiliser échange de jeton personnalisé, vous devez créer un profil Custom Token Exchange. Le processus général comprend trois grandes étapes de configuration, suivies de votre appel d’API :
  1. Créer et déployer une Action qui contiendra la logique permettant de contrôler l’échange de token. Dans cette Action, écrivez le code personnalisé nécessaire pour :
    • Décoder et valider de façon sécurisée le subject_token reçu.
    • Effectuer toutes les étapes d’autorisation requises pour la transaction.
    • Définir l’utilisateur correspondant pour la transaction à l’aide des méthodes disponibles dans le Custom Token Exchange Actions API Object.
  2. Créer le profil Custom Token Exchange dans votre tenant. Le profil établit une correspondance un à un entre un subject_token_type précis que vous utiliserez dans vos requêtes et l’Action que vous venez de créer.
  3. Activer échange de jeton personnalisé pour votre application.
Une fois le profil Custom Token Exchange créé, vous êtes prêt à :
  1. Effectuer un appel à votre API : vous pouvez maintenant envoyer une requête POST au point de terminaison /oauth/token avec les paramètres nécessaires, y compris le subject_token et le subject_token_type correspondant à votre profil configuré. Pour en savoir plus, consultez Appeler votre API à l’aide de échange de jeton personnalisé.

En savoir plus