Personnaliser les inscriptions à MFA pour la connexion universelle
Auth0 prend en charge une variété de facteurs pour sécuriser l’accès des utilisateurs avec l’authentification multifacteur (MFA). Grâce aux actions post-login
, vous pouvez personnaliser vos flux de MFA 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.
Fonctionnement
Vous pouvez utiliser Actions pour personnaliser vos flux d’inscription à MFA. Plus particulièrement, vous pouvez modifier le déclencheur post-connexion
du Flux de connexion à 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 :
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 :
// 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'})
}
}
};
Was this helpful?
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
).
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 Auth0 Dashboard dans Security (Sécurité) > Multi-factor Auth (Authentification multifacteur).
Pour en apprendre davantage sur le processus de configuration, consultez Activer l’authentification multifacteur (MFA).
Pour plus d’information à propos de la configuration de facteurs particuliers, consultez Facteurs d’authentification multifacteur (MFA).
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é.

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.
Créer votre action post-connexion
Vous pouvez créer des actions via Auth0 Dashboard :
Accédez à Actions > Flows (Flux) et sélectionnez Login (Connexion).
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).
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.
Révisez la fenêtre contextuelle pour garantir son exactitude. Ensuite, sélectionnez Create (Créer).
Dans l’éditeur de code, ajoutez votre code personnalisé à la commande
onPostExecute
.Une fois votre commande prête, sélectionnez Deploy (Déployer).
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.
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) 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 :
Naviguez vers Authentication (Authentification)> Authentication Profile (Profil d’authentification).
Sélectionnez Try (Essayer) pour ouvrir une invite de connexion modèle dans un nouvel onglet.
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)
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.
Les journaux des locataires sont disponibles dans Auth0 Dashboard sous Monitoring (Surveillance) > Logs (Journaux). Vous pouvez également récupérer les journaux à l’aide de Management API.
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 :
|
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.
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) et assurez-vous que le commutateur est activé dans la section Paramètre additionnel.
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) 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) et assurez-vous que tous les facteurs référencés dans vos actions sont activés.
Assurez-vous que vos actions ont été déployées et enregistrées dans votre pipeline.
Naviguez vers Auth0 Dashboard > Actions > Bibliothèque > Personnaliser. 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.
Naviguez vers Dashboard Auth0 > Actions > Bibliothèque > Flux 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.
Assurez-vous d’avoir la dernière version des actions
post-connexion
.Naviguez vers Tableau de bord Auth0 > Actions > Library (Bibliothèque) > Custom (Personnaliser) 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.