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

# Personnaliser les inscriptions à MFA pour la connexion universelle

> Personnalisez les flux MFA en utilisant des actions post-connexion pour inviter les utilisateurs à s’inscrire à des facteurs spécifiques.

Auth0 prend en charge une variété de facteurs pour sécuriser l’accès des utilisateurs avec l’[authentification multifacteur (MFA)](/docs/fr-ca/secure/multi-factor-authentication/multi-factor-authentication-factors). Grâce aux actions `post-login`, vous pouvez personnaliser vos flux de <Tooltip href="/docs/fr-ca/glossary?term=multifactor-authentication" tip="Authentification multifacteur (MFA)
Processus d’authentification de l’utilisateur qui utilise un facteur en plus du nom d’utilisateur et du mot de passe, tel qu’un code par SMS." cta="Voir le glossaire">MFA</Tooltip> et inviter les utilisateurs à s’inscrire à des facteurs particuliers. Une fois qu’un utilisateur est inscrit à un facteur, il peut utiliser celui-ci comme méthode secondaire d’authentification lors des connexions futures.

Vous pouvez également utiliser des informations contextuelles pour personnaliser davantage vos flux d’inscription à MFA. Par exemple, vous pouvez demander aux utilisateurs de s’inscrire aux SMS pour une application, tout en les invitant à s’inscrire aux notifications poussées ou à WebAuthN pour une autre application.

Cette fonctionnalité vous permet de personnaliser les flux d’inscription à la MFA. Si vous souhaitez personnaliser les flux de MFA pour les utilisateurs déjà inscrits, consultez [Personnaliser la sélection MFA pour la connexion universelle](/docs/fr-ca/secure/multi-factor-authentication/customize-mfa/customize-mfa-selection-universal-login).

## Fonctionnement

Vous pouvez utiliser [Actions](/docs/fr-ca/customize/actions) pour personnaliser vos flux d’inscription à MFA. Plus particulièrement, vous pouvez modifier le déclencheur `post-connexion` du [Flux de connexion](/docs/fr-ca/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger) à l’aide des méthodes d’Authentication API suivantes :

* `enrollWith`: Cette section spécifie le facteur par défaut présenté aux utilisateurs lors de l’inscription. Facultativement, vous pouvez fournir une liste alternative de facteurs parmi lesquels les utilisateurs peuvent choisir. Si elle est fournie, un lien « Essayer une autre méthode » s’affiche sur l’invite d’inscription.
* `enrollWithAny`: Cette section spécifie un ensemble de facteurs parmi lesquels les utilisateurs peuvent choisir lors de l’inscription. Par défaut, cette méthode présente une invite de sélection qui permet aux utilisateurs de choisir leur facteur souhaité. Dans certains cas, l’expérience utilisateur peut varier :

  * Si deux facteurs ou plus ont été spécifiés, l’invite de sélection s’affiche à l’utilisateur.
  * Si l’utilisateur s’est déjà inscrit à tous les facteurs spécifiés sauf un, l’invite de sélection est ignorée, et l’utilisateur est invité à s’inscrire au facteur restant.
  * Si l’utilisateur est déjà inscrit dans tous les facteurs spécifiés, la commande échoue et la séquence de connexion se poursuit.

Vous pouvez utiliser une combinaison de ces méthodes pour personnaliser vos flux d’inscription à MFA. Vous pouvez également intégrer des métadonnées utilisateur, telles que les rôles ou la date de la dernière connexion, pour créer des expériences plus personnalisées.

Les flux d’inscription personnalisés prennent en charge les facteurs suivants :

* `otp`
* `recovery-code`
* `push-notification`
* `téléphone`

  * `méthode préférée : voix`
  * `méthode préférée : sms`
  * `méthode préférée : les deux`
* `webauthn-platform`
* `webauthn-roaming`

Après qu’un utilisateur s’est inscrit à un facteur, sa valeur est ajoutée à `enrolledFactors`. Cette propriété représente la liste des facteurs actifs associés à leur compte utilisateur.

Le tableau `event.authentication.methods` inclut un champ `type` lorsque le nom de la méthode est défini sur `mfa`. Ce champ contient des valeurs de facteur (chaîne) qui correspondent à celles utilisées par le champ `type` dans `enrolledFactors`.

Lorsqu’une inscription à MFA se produit, `methods` contient l’objet de `name:mfa` et le `type` défini sur le facteur utilisé pour cet événement. `methods` et `enrolledFactors` ne sont mis à jour que lorsqu’une action commence pour la première fois. Vous pouvez accéder aux résultats d’un événement d’inscription dans l’action suivante du flux.

Pour en apprendre davantage, examinez les ressources suivantes :

* [Déclencheurs d’actions : post-connexion – Objet d’événement](/docs/fr-ca/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/post-login-event-object)
* [Déclencheurs d’actions : post-connexion – Objet API](/docs/fr-ca/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/post-login-api-object)

### Flux séquencés et contextuels

Avec les commandes `enrollWith` ou `enrollWithAny` vous pouvez utiliser des informations contextuelles pour déterminer la meilleure inscription ou la série d’inscriptions à présenter aux utilisateurs.

* La commande `enrollWith`  prend en charge un facteur initial ou par défaut, ainsi qu’une liste d’alternatives. Les utilisateurs ne peuvent s’inscrire qu’à un seul facteur par commande.
* La commande `enrollWithAny` prend en charge une liste de facteurs. L’ordre spécifié des facteurs détermine comment la liste s’affiche aux utilisateurs. Les utilisateurs ne peuvent s’inscrire qu’à un seul facteur par commande.

Grâce à ces commandes, vous pouvez tirer parti des éléments suivants :

* **Flux séquencés** : Inscrivez les utilisateurs avec une série de facteurs dans un ordre spécifique.
* **Flux contextuels** : Déterminez quel facteur proposer à l’utilisateur en fonction des métadonnées ou des commandes précédentes dans le flux.

Pour illustrer ces flux, considérons l’exemple suivant :

```javascript lines expandable theme={null}
// Action 1

exports.onExecutePostLogin = async (event, api) => {
  if (event.user.enrolledFactors.length) {
    // already enrolled, challenge
    api.authentication.challengeWithAny(event.user.enrolledFactors.map(m => ({type: m.type})));
    if (event.user.app_metadata.isAdmin &&
        !event.user.enrolledFactors.some(m => m.type === 'webauthn-roaming')) {
          // if is admin and doesn't have a security key, meaning a different factor was used, enroll now
          api.authentication.enrollWith({type: 'webauthn-roaming'})
        }
  }
  else {
    // not enrolled; choose a factor to enroll now
    api.authentication.enrollWithAny([{type: 'webauthn-roaming'}, {type: 'otp'}]);
    if (event.user.app_metadata.isAdmin) {
      // one more factor for admins
      api.authentication.enrollWithAny([{type: 'webauthn-roaming'}, {type: 'otp'}]);
    }
  }
};

// Action 2

exports.onExecutePostLogin = async (event, api) => {
  function performed(type) {
    return event.authentication.methods.some(m => m.name === 'mfa' &&
           m.type === type &&
           Date.now() - new Date(m.timestamp).getTime() < 5000)
  }
  if (event.user.app_metadata.isAdmin) {
      // enforce both factors are used by challenging the one that has not been used yet
      if (!performed('webauthn-roaming')) {
        api.authentication.challengeWith({type: 'webauthn-roaming'})
      }
      else if (!performed('otp')) {
        api.authentication.challengeWith({type: 'otp'})
      }
  }
};
```

Ces deux actions fusionnent pour créer un scénario où les utilisateurs **sans** le rôle d’administrateur sont tenus de s’inscrire soit avec un mot de passe à usage unique (OTP), soit avec une clé de sécurité. À l’inverse, les utilisateurs **ayant** le rôle d’administrateur doivent s’inscrire dans les deux facteurs.

L’Action 1 examine les `app_metadata` pour déterminer si l’utilisateur est un administrateur, puis l’invite à s’inscrire dans des facteurs spécifiques. Si un utilisateur administrateur ne s’est inscrit qu’à l’OTP, il est d’abord confronté à l’OTP pour terminer son authentification. Ils sont ensuite invités à s’inscrire avec des clés de sécurité (`webauthn-roaming`).

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Afin de protéger les comptes d’utilisateurs, ces derniers doivent effectuer une vérification MFA à l’aide de leur enrolledFactors existants avant de pouvoir s’inscrire à des facteurs supplémentaires. Cette condition vous permet de mettre en œuvre de façon sécurisée une politique d’inscription MFA personnalisée après l’utilisation d’une application comportant différents facteurs et configurations.
</Callout>

Le flux fait une pause après l’exécution de l’Action 1, et `event.user.enrolledFactors` et `event.authentication.methods` seront mises à jour lorsque l’Action 2 s’exécutera. Cela permet au code de l’Action de prendre des décisions en fonction des données réelles de l’utilisateur lorsque les utilisateurs ont le choix de se confronter à ou de s’inscrire dans différents facteurs.

**Remarque** : Cette méthode d’exécution des actions s’applique uniquement à celles contenant les commandes `challengeWith` ou `challengeWithAny`. Les actions servant à d’autres fins ne sont pas affectées.

## Avant de commencer

Avant de pouvoir personnaliser vos flux MFA, vous devez configurer MFA dans votre locataire et activer l’option Personnaliser les facteurs MFA à l’aide du paramètre Actions. Vous pouvez activer un ou plusieurs facteurs et définir vos politiques MFA sur votre <Tooltip href="/docs/fr-ca/glossary?term=auth0-dashboard" tip="Auth0 Dashboard
Principal produit d’Auth0 pour configurer vos services." cta="Voir le glossaire">Auth0 Dashboard</Tooltip> dans [Security (Sécurité) > Multi-factor Auth (Authentification multifacteur)](https://manage.auth0.com/#/security/mfa).

* Pour en apprendre davantage sur le processus de configuration, consultez [Activer l’authentification multifacteur (MFA)](/docs/fr-ca/secure/multi-factor-authentication/enable-mfa).
* Pour plus d’information à propos de la configuration de facteurs particuliers, consultez [Facteurs d’authentification multifacteur (MFA)](/docs/fr-ca/secure/multi-factor-authentication/multi-factor-authentication-factors).

Pour personnaliser vos flux, vous devez activer Personnaliser les facteurs MFA à l’aide du commutateur d’actions situé dans la section Paramètres additionnels. Vos flux personnalisés ne fonctionneront pas correctement si ce paramètre n’est pas activé.

<Frame>
  <img src="https://mintcdn.com/docs-dev-eval-flywheel-swift-quickstart/Z-bTzrlmPiIQSccB/docs/images/fr-ca/cdy7uua7fh8z/2hv0ELTkkka3t230SXfxw/1a926ebd33f62b00448f62a1f069db7d/MFA_-_Actions_toggle_-_French.png?fit=max&auto=format&n=Z-bTzrlmPiIQSccB&q=85&s=42d67ca6435e93e5dc28c1271052dcca" alt="Auth0 Dashboard > Sécurité > Authentification multifacteur > paramètres additionnels" data-og-width="941" width="941" data-og-height="332" height="332" data-path="docs/images/fr-ca/cdy7uua7fh8z/2hv0ELTkkka3t230SXfxw/1a926ebd33f62b00448f62a1f069db7d/MFA_-_Actions_toggle_-_French.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-eval-flywheel-swift-quickstart/Z-bTzrlmPiIQSccB/docs/images/fr-ca/cdy7uua7fh8z/2hv0ELTkkka3t230SXfxw/1a926ebd33f62b00448f62a1f069db7d/MFA_-_Actions_toggle_-_French.png?w=280&fit=max&auto=format&n=Z-bTzrlmPiIQSccB&q=85&s=e9af4af2644ccb802aa1005d1ed9daaf 280w, https://mintcdn.com/docs-dev-eval-flywheel-swift-quickstart/Z-bTzrlmPiIQSccB/docs/images/fr-ca/cdy7uua7fh8z/2hv0ELTkkka3t230SXfxw/1a926ebd33f62b00448f62a1f069db7d/MFA_-_Actions_toggle_-_French.png?w=560&fit=max&auto=format&n=Z-bTzrlmPiIQSccB&q=85&s=146c872c937685b0d53c0533befc4f1c 560w, https://mintcdn.com/docs-dev-eval-flywheel-swift-quickstart/Z-bTzrlmPiIQSccB/docs/images/fr-ca/cdy7uua7fh8z/2hv0ELTkkka3t230SXfxw/1a926ebd33f62b00448f62a1f069db7d/MFA_-_Actions_toggle_-_French.png?w=840&fit=max&auto=format&n=Z-bTzrlmPiIQSccB&q=85&s=a5a49cbef5e09e25adfb5a2f60fc01bb 840w, https://mintcdn.com/docs-dev-eval-flywheel-swift-quickstart/Z-bTzrlmPiIQSccB/docs/images/fr-ca/cdy7uua7fh8z/2hv0ELTkkka3t230SXfxw/1a926ebd33f62b00448f62a1f069db7d/MFA_-_Actions_toggle_-_French.png?w=1100&fit=max&auto=format&n=Z-bTzrlmPiIQSccB&q=85&s=ba3bb701b943e41a08f7cdac760bd5e1 1100w, https://mintcdn.com/docs-dev-eval-flywheel-swift-quickstart/Z-bTzrlmPiIQSccB/docs/images/fr-ca/cdy7uua7fh8z/2hv0ELTkkka3t230SXfxw/1a926ebd33f62b00448f62a1f069db7d/MFA_-_Actions_toggle_-_French.png?w=1650&fit=max&auto=format&n=Z-bTzrlmPiIQSccB&q=85&s=488e57ef4fa378f3993777d9d24b3e4e 1650w, https://mintcdn.com/docs-dev-eval-flywheel-swift-quickstart/Z-bTzrlmPiIQSccB/docs/images/fr-ca/cdy7uua7fh8z/2hv0ELTkkka3t230SXfxw/1a926ebd33f62b00448f62a1f069db7d/MFA_-_Actions_toggle_-_French.png?w=2500&fit=max&auto=format&n=Z-bTzrlmPiIQSccB&q=85&s=562b5c2a5b576cbffd28317b267cbd00 2500w" />
</Frame>

**Remarque** : Les Actions avec les commandes `enrollWith` ou `enrollWithAny` remplacent toutes les politiques ou règles existantes qui activent ou désactivent la MFA dans un locataire.

## Personnaliser les flux d’inscription à MFA

Après avoir configuré la MFA pour votre locataire, vous pouvez créer des Actions `post-login` pour personnaliser vos flux d’inscription à MFA.

<Warning>
  Les actions (ou séries d’actions) dans un locataire ne peuvent exécuter que **quatre** des commandes suivantes par flux utilisateur :

  * `enrollWith`
  * `enrollWithAny`
  * `challengeWith`
  * `challengeWithAny`

  Si cette limite est dépassée (c’est-à-dire qu’une cinquième commande de ce type tente de s’exécuter), une erreur d’authentification se produira.
</Warning>

### Créer votre action post-connexion

Vous pouvez créer des actions via Auth0 Dashboard :

1. Accédez à [Actions > Flows (Flux)](https://manage.auth0.com/#/actions/flows) et sélectionnez **Login (Connexion)**.
2. Dans le panneau Add Action (Ajouter une action), sélectionnez l’icône **plus sign (+)** et choisissez **Build from scratch (Construire à partir de zéro)**.
3. Sur la fenêtre contextuelle Créer une action :

   * Saisissez un nom pour votre action.
   * Sélectionnez **Login / Post-Login (Connexion/ Post-connexion)** comme déclencheur.
   * Utilisez **Node 18 (Nœud 18) (Recommandé)** comme temps de fonctionnement.
4. Révisez la fenêtre contextuelle pour garantir son exactitude. Ensuite, sélectionnez **Create (Créer)**.
5. Dans l’éditeur de code, ajoutez votre code personnalisé à la commande `onPostExecute`.
6. Une fois votre commande prête, sélectionnez **Deploy (Déployer)**.
7. Sélectionnez **Add to Flow (Ajouter au flux)** sur la notification de déploiement réussi.

   * **Remarque** : Si la notification se ferme, choisissez **Back to Flow (Retour au flux)** situé au-dessus de l’éditeur de code.
8. Faites glisser et déposez votre nouvelle commande à partir du panneau Add Action (Ajouter une action) jusqu’à votre flux de connexion. Ensuite, sélectionnez **Appliquer**.

Pour réaliser d’autres modifications après avoir effectué un enregistrement, naviguez vers [Actions > Library (Bibliothèque) > Custom (Personnaliser)](https://manage.auth0.com/#/actions/library) et sélectionnez votre action. Vous pouvez ensuite mettre à jour et redéployer votre code selon vos besoins.

### Tester votre action post-connexion

Pour être certain que vos commandes fonctionnent correctement, vous pouvez mettre votre action à l’essai via le Tableau de bord Auth0 :

1. Naviguez vers [Authentication (Authentification)> Authentication Profile (Profil d’authentification)](https://manage.auth0.com/#/authentication-profiles).
2. Sélectionnez **Try (Essayer)** pour ouvrir une invite de connexion modèle dans un nouvel onglet.
3. Entrez vos informations et mettez votre nouveau flux MFA à l’épreuve.

Si le flux réussit, un écran de confirmation s’affiche. Si vous rencontrez des problèmes, vous pouvez mettre votre code à jour en naviguant vers [Actions > Library (Bibliothèque) > Custom (Personnaliser)](https://manage.auth0.com/#/actions/library)

## Exemples de cas d’utilisation

Les exemples ci-dessous décrivent un cas d’utilisation courant pour personnaliser les flux d’inscription à MFA.

### Proposez aux utilisateurs des options MFA pour l’inscription

L’exemple suivant met les utilisateurs au défi en mettant par défaut un mot de passe à usage unique. S’ils le souhaitent, ces derniers peuvent accéder au lien Essayer une autre méthode pour s’authentifier par courriel.

## Dépannage

Si vous rencontrez des erreurs ou obtenez des résultats inattendus avec vos inscriptions personnalisées à MFA, vous pouvez utiliser les renseignements ci-dessous pour vous aider à identifier et à résoudre ces problèmes.

### Journaux de locataires

Vous pouvez surveiller vos inscriptions personnalisées à la MFA grâce aux [journaux des locataires](/docs/fr-ca/deploy-monitor/logs).

Les journaux des locataires sont disponibles dans Auth0 Dashboard sous [Monitoring (Surveillance) > Logs (Journaux)](https://manage.auth0.com/#/logs). Vous pouvez également récupérer les journaux à l’aide de [Management API](/docs/fr-ca/api/management/v2/introduction).

Si vous ou vos utilisateurs remarquez un comportement inattendu, consultez les journaux des locataires pour les codes d’événement suivants afin d’en savoir plus :

| Scénario                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Événement | Message d’erreur                                                                                                                                                                                                                                                 |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Un utilisateur est invité à s’inscrire avec un facteur particulier. Cependant, le facteur demandé répond à l’une des conditions suivantes :<br /><ul><li>Le facteur n’est pas activé dans votre locataire.</li><li>Le facteur n’est pas pris en charge par le navigateur de l’utilisateur.</li><li>L’utilisateur s’est déjà inscrit au facteur demandé.</li></ul>Dans ce scénario, l’utilisateur peut compléter le flux si des facteurs de remplacement sont possibles. | w         | Une inscription MFA est utilisée dans une action post-connexion, mais le facteur demandé `${factor.name}` n’est pas correctement configuré. Activer le facteur demandé et s’assurer que l’utilisateur n’est pas déjà inscrit avec ce facteur.                    |
| Un utilisateur est invité à s’inscrire avec un ou plusieurs facteurs, mais les facteurs fournis ne peuvent pas être utilisés pour l’inscription. Dans ce cas, l’utilisateur ne peut pas terminer le flux.                                                                                                                                                                                                                                                               | mfar      | Une inscription MFA est utilisée dans une action post-connexion mais les facteurs demandés ne sont pas correctement configurés. Pour effectuer la MFA, activez les facteurs demandés et assurez-vous que l’utilisateur n’est pas déjà inscrit avec ces facteurs. |
| Un utilisateur tente de s’inscrire dans un nouveau facteur sans avoir effectué au moins un défi-réponse avec une inscription existante.                                                                                                                                                                                                                                                                                                                                 | mfar      | Une inscription à la MFA a été demandée mais l’utilisateur est déjà inscrit à la MFA. Mettez au défi avec au moins un facteur existant avant d’enregistrer un nouveau facteur.                                                                                   |

### Liste de vérification de dépannage

La liste de vérification suivante fournit des suggestions supplémentaires pour identifier et résoudre les problèmes courants liés aux flux MFA personnalisés.

1. Le commutateur **Customize MFA factors with Actions (Personnaliser des facteurs MFA avec des actions)** doit être activé.

   * Naviguez vers [Tableau de bord Auth0 > Security (Sécurité) > Multi-factor Auth (Authentification multifacteur)](https://manage.auth0.com/#/security/mfa) et assurez-vous que le commutateur est activé dans la section Paramètre additionnel.
2. Les facteurs référencés dans vos actions doivent être activés dans votre locataire.

   * **Révisez votre code** : Naviguez vers [Tableau de bord Auth0 > Actions > Library (Bibliothèque) > Custom (Personnaliser)](https://manage.auth0.com/#/actions/library)  et révisez le code d’actions. Assurez-vous que tous les facteurs référencés sont applicables à vos cas d’utilisation.
   * **Examinez vos facteurs** : Naviguez vers [Tableau de bord Auth0 > Security (Sécurité) > Multi-factor Auth (Authentification multifacteur)](https://manage.auth0.com/#/security/mfa) et assurez-vous que tous les facteurs référencés dans vos actions sont activés.
3. Assurez-vous que vos actions ont été déployées et enregistrées dans votre pipeline.

   1. Naviguez vers [Auth0 Dashboard > Actions > Bibliothèque > Personnaliser](https://manage.auth0.com/#/actions/library). Localisez votre action dans la liste et assurez-vous que son statut est **Déployée**. Si un statut différent est répertorié, accédez à votre action, vérifiez le code et cliquez sur **Déployer** en haut à droite.
   2. Naviguez vers [Dashboard Auth0 > Actions > Bibliothèque > Flux](https://manage.auth0.com/#/actions/flows) et sélectionnez **Connexion**. Assurez-vous que votre action est répertoriée dans le flux. Si ce n’est pas le cas, accédez à l’**onglet Personnaliser** du panneau Ajouter une action et faites glisser et déposez votre action dans le flux de connexion. Ensuite, sélectionnez **Appliquer**.
4. Assurez-vous d’avoir la dernière version des actions `post-connexion`.

   * Naviguez vers [Tableau de bord Auth0 > Actions > Library (Bibliothèque) > Custom (Personnaliser)](https://manage.auth0.com/#/actions/library) et sélectionnez votre action. Si votre action est obsolète, une bannière jaune vous invitant à mettre à jour l’action s’affichera. Si la bannière s’affiche, sélectionnez **Update (Mettre à jour)**.
   * Vous pouvez également préciser la dernière version des actions `post-connexion` pour le déploiement en utilisant l’outil Deploy CLI. Pour en savoir plus, consultez [Configurer l’outil Deploy CLI](https://auth0.com/docs/deploy-monitor/deploy-cli-tool/configure-the-deploy-cli).
