> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-feat-init-gt-translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Échange de jetons personnalisé

> Découvrez les Actions d’échange de jetons personnalisé, qui s’exécutent lorsque le serveur d’autorisation Auth0 reçoit une requête d’échange de jetons personnalisé pour authentifier un utilisateur.

<Card title="La disponibilité varie selon le forfait Auth0">
  Cette fonctionnalité est offerte avec les forfaits B2C Professional, B2B Professional et Enterprise. Pour en savoir plus, consultez la [tarification](https://auth0.com/pricing).
</Card>

Le déclencheur `custom-token-exchange` constitue la première étape du pipeline Auth0. Une fois que le serveur d’autorisation Auth0 a validé la requête d’échange de jetons personnalisé et établi qu’elle correspond à un [profil d’échange de jetons personnalisé](/docs/fr-ca/authenticate/custom-token-exchange/configure-custom-token-exchange#create-custom-token-exchange-profile) existant, le déclencheur exécute l’unique Action associée à ce profil. Si l’Action s’exécute avec succès et définit un utilisateur pour la transaction, les Actions `post-login` et le reste du pipeline Auth0 s’exécutent alors pour cet utilisateur authentifié.

<Frame>
  <img src="https://mintcdn.com/docs-dev-feat-init-gt-translations/4n7yQNDlmu-4xlCI/docs/images/custom-token-exchange/cte_trigger_flow.png?fit=max&auto=format&n=4n7yQNDlmu-4xlCI&q=85&s=9de569f3da24c1cc2825c6449d3207af" alt="Diagramme illustrant le flux du déclencheur d’échange de jetons personnalisé des Actions." width="1358" height="538" data-path="docs/images/custom-token-exchange/cte_trigger_flow.png" />
</Frame>

Les Actions de ce flux sont bloquantes (synchrones) : elles s’exécutent dans le cadre du processus du déclencheur et empêchent le reste du pipeline Auth0 de s’exécuter tant que l’Action n’est pas terminée.

<h2 id="custom-token-exchange-vs-post-login-actions">
  Échange de jetons personnalisé et Actions post-connexion
</h2>

Le déclencheur des Actions post-connexion s’exécute après l’Action d’échange de jetons personnalisé pour l’utilisateur défini dans la transaction. Pour d’autres cas d’utilisation, par exemple pour ajouter des revendications personnalisées aux jetons d’accès, utilisez le [déclencheur d’Action post-connexion](/docs/fr-ca/customize/actions/explore-triggers/post-login).

L’Échange de jetons personnalisé utilise le type d’autorisation d’échange de jetons. Dans le déclencheur d’Action post-connexion, `event.transaction.protocol` est défini sur `oauth2-token-exchange`. L’Échange de jetons personnalisé et la connexion sociale native utilisent tous deux ce type d’autorisation. Pour les distinguer, utilisez la valeur de `subject_token_type`, qui doit correspondre à l’un de vos profils d’échange de jetons personnalisé.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  L’Échange de jetons personnalisé ne prend pas en charge `api.authentication.challengeWith()`, `api.authentication.enrollWith()`, `api.redirect.*` ni `api.prompt.*`. Si vous utilisez ces méthodes avec votre Action post-connexion, veillez à ne pas les utiliser lorsque `event.transaction.protocol === 'oauth2-token-exchange'`, selon la valeur de `subject_token_type`.
</Callout>

<h2 id="actor-support-for-delegation">
  Prise en charge de l’acteur pour la délégation
</h2>

Le déclencheur `custom-token-exchange` prend en charge les scénarios d’autorisation déléguée. L’Action peut appeler [`api.authentication.setActor()`](/docs/fr-ca/customize/actions/reference/custom-token-exchange/custom-token-exchange-api-object#api-authentication-setactor-actor) pour inclure une revendication `act` dans les jetons émis, afin d’identifier le principal agissant au nom de l’utilisateur concerné.

`setActor()` peut être appelé, que la requête contienne ou non un `actor_token`. Le paramètre `actor_token` permet à l’application appelante de transmettre des renseignements sur l’acteur à l’Action, mais l’identité de l’acteur peut également être intégrée au `subject_token` lui-même ou obtenue par d’autres moyens personnalisés dans le code de l’Action.

Lorsque la requête contient `actor_token` et `actor_token_type`, ces valeurs sont disponibles dans [`event.transaction`](/docs/fr-ca/customize/actions/reference/custom-token-exchange/custom-token-exchange-event-object#event-transaction). Si `actor_token_type` est `urn:ietf:params:oauth:token-type:id_token` et que le jeton est un jeton d’ID Auth0 valide provenant du même tenant, le serveur valide automatiquement le jeton et renseigne `event.transaction.actor_token_user` avec le profil utilisateur de l’acteur.

La revendication `act` définie au moyen de `setActor()` est également disponible dans les Actions post-connexion par l’entremise de [`event.transaction.actor`](/docs/fr-ca/customize/actions/reference/post-login/post-login-event-object#event-transaction).

Auth0 prend en charge l’émission d’un Session Transfer Token contenant l’acteur dans son contexte, afin d’établir une session Web déléguée pour un autre utilisateur. Pour en savoir plus, consultez [Délégation de session](/docs/fr-ca/authenticate/single-sign-on/session-delegation).

<h2 id="share-data-with-post-login-actions">
  Partager des données avec les Actions post-connexion
</h2>

Une Action d’échange de jetons personnalisée peut transmettre des données arbitraires aux Actions post-connexion de la même transaction grâce aux [Actions Transaction Metadata](/docs/fr-ca/customize/actions/transaction-metadata). Cela s'avère utile, par exemple, pour définir une revendication personnalisée dans les jetons d’accès ou les jetons d’ID au sein de l’Action post-connexion, à partir de renseignements déjà obtenus ou traités depuis le `subject_token` ou l'`actor_token`.

<h2 id="references">
  Références
</h2>

* [Objet Event](/docs/fr-ca/customize/actions/reference/custom-token-exchange/custom-token-exchange-event-object) : fournit des renseignements contextuels sur la requête d’échange de jetons, notamment le `subject_token`, l’adresse IP, le client et plus encore.
* [Objet API](/docs/fr-ca/customize/actions/reference/custom-token-exchange/custom-token-exchange-api-object) : fournit des méthodes à utiliser avec votre Action d’échange de jetons pour définir l’utilisateur, définir l’acteur pour la délégation, rejeter la transaction, définir les métadonnées utilisateur, accéder au cache Actions et plus encore.

<h2 id="common-use-cases">
  Cas d’utilisation courants
</h2>

Pour découvrir des cas d’utilisation courants de l’échange de jetons personnalisé, consultez [Exemples de cas d’utilisation](/docs/fr-ca/authenticate/custom-token-exchange/cte-example-use-cases).
