> ## Documentation Index
> Fetch the complete documentation index at: https://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.

<Warning>
  L’échange de jetons personnalisé (CTE) est actuellement offert en accès anticipé à tous les clients Auth0 B2C Professional, B2B Professional et Enterprise. En utilisant cette fonctionnalité, vous acceptez les conditions applicables de l’essai gratuit de l’[accord-cadre d’abonnement d’Okta](https://www.okta.com/legal/). Pour en savoir plus sur le cycle de publication des produits d’Auth0, consultez les [étapes de publication des produits](/docs/fr-ca/troubleshoot/product-lifecycle/product-release-stages). Pour en savoir plus sur les types d’abonnement, consultez la page de [tarification](https://auth0.com/pricing) d’Auth0.
</Warning>

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/translations/xwVvTWJUElMm5YAK/docs/images/custom-token-exchange/cte_trigger_flow.png?fit=max&auto=format&n=xwVvTWJUElMm5YAK&q=85&s=b26e9774ad908f5af5dfbb85331324cd" 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.

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

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’accès anticipé à l’Échange de jetons personnalisé ne prend pas en charge `api.authentication.challengeWith()` ni `api.authentication.enrollWith()`. Si vous utilisez ces méthodes avec vos Actions post-connexion, la transaction échouera et générera une erreur irrécupérable. Veillez à ne pas utiliser ces deux méthodes lorsque `event.transaction.protocol === 'oauth2-token-exchange'`, selon la valeur de `subject_token_type`.
</Callout>

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

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).

<div id="references">
  ## Références
</div>

* [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.

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

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).
