> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging.auth0-mintlify.app/llms.txt
> Use this file to discover all available pages before exploring further.

> Découvrez comment utiliser l’authentification multifacteur (MFA) avec Custom Token Exchange.

# Authentification multifacteur (MFA) avec Custom Token Exchange

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  MFA n’est pas compatible avec les transactions d’échange de jetons personnalisé où un acteur est défini au moyen de `api.authentication.setActor()`. Si MFA est requis (par une politique ou une Action post-login) et que l’Action d’échange de jetons personnalisé définit un acteur, la transaction échoue avec une erreur `400` : `MFA is not supported using actor_token with the requested token exchange profile.`
</Callout>

Pour ajouter une protection contre le vol de jetons ou d’autres risques de sécurité, vous pouvez ajouter l’authentification multifacteur à une requête d’échange de jetons personnalisé à l’aide de l’une des méthodes suivantes :

* [Activez et configurez votre politique MFA ](/docs/fr-ca/secure/multi-factor-authentication/enable-mfa) pour votre tenant
* Utilisez `api.multifactor.enable()` dans une Action post-login

Lorsque vous ajoutez MFA, le serveur d’autorisation Auth0 rejette la requête initiale d’échange de jetons personnalisé vers le endpoint `/token` avec une erreur `mfa_required`. Vous pouvez utiliser cette erreur dans l’[API MFA Auth0](/docs/fr-ca/secure/multi-factor-authentication/multi-factor-authentication-developer-resources/mfa-api) pour lancer une demande de vérification, puis vérifier un facteur afin d’obtenir les jetons d’accès, d’ID et d’actualisation Auth0 demandés.

<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-login, assurez-vous de ne pas les utiliser lorsque `event.transaction.protocol==oauth2-token-exchange`, selon la valeur de `subject_token_type`.
</Callout>

Lorsqu’une transaction d’échange de jetons personnalisé est associée à une organisation, `api.multifactor.enable()` et les politiques MFA ne sont pas pris en charge non plus.

Pour en savoir plus sur l’utilisation du grant MFA, consultez [S’authentifier à l’aide du flux Resource Owner Password avec MFA](/docs/fr-ca/secure/multi-factor-authentication/authenticate-using-ropg-flow-with-mfa), car l’échange de jetons personnalisé suit le même modèle. Vous pouvez aussi consulter un exemple détaillé dans [Cas d’utilisation : effectuer MFA pendant l’échange de jetons personnalisé](/docs/fr-ca/authenticate/custom-token-exchange/cte-example-use-cases#use-case%3A-perform-mfa-during-custom-token-exchange).
