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 personnalisé de jetons est régi par une seule Action Échange personnalisé de jetons, 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 personnalisé de jetons.
Comme préalable au flux, vous devez définir un profil Échange personnalisé de jetons qui associe un subject_token_type précis à l’Action qui traitera les requêtes. Lorsque le flux Échange personnalisé de jetons 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 personnalisé de jetons 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 l’Échange personnalisé de jetons, vous devez créer un profil Échange personnalisé de jetons. 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 jeton. 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 Échange personnalisé de jetons Actions API Object.
  2. Créer le profil Échange personnalisé de jetons 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 l’Échange personnalisé de jetons pour votre application.
Une fois le profil Échange personnalisé de jetons 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 l’Échange personnalisé de jetons.

En savoir plus