Quand personnaliser l’authentification multifacteur (MFA) adaptative
Vous ne devez envisager de personnaliser l’authentification multifacteur (MFA) adaptative que si vos utilisateurs sont inscrits à la MFA et doivent utiliser une adresse électronique comme identifiant.
Si vos utilisateurs ne sont pas inscrits à la MFA, vous devriez utiliser l’autorisation par défaut pour l’authentification multifacteur (MFA) adaptative. Si un utilisateur n’est pas inscrit à la MFA et que votre action évalue le risque comme étant élevé, vous avez très peu d’options pour arrêter un acteur menaçant.Avant de commencer à personnaliser l’authentification multifacteur (MFA) adaptative, posez-vous quelques questions :
À quel niveau de confiance souhaitez-vous déclencher la MFA?
Comment voulez-vous mesurer le risque?
Voulez-vous qu’Auth0 mesure la confiance ou souhaitez-vous une mesure personnalisée?
Comment allez-vous gérer les utilisateurs qui ne sont pas inscrits à la MFA?
L’authentification multifacteur (MFA) adaptative calcule un pointage total de la confiance basé sur l’analyse de trois évaluations. Chaque évaluation a son propre pointage de confiance. Pour en savoir plus, consultez Adaptive MFA.
Si vous souhaitez implémenter votre propre méthode pour évaluer le pointage de confiance total de différents scénarios, vous pouvez utiliser les données dises dans l’objet RiskAssessment.Consultez les exemples ci-dessous pour découvrir comment l’authentification multifacteur (MFA) adaptative évalue la confiance dans différents cas d’utilisation.
Chaque évaluation comprend un pointage de confiance, un code qui décrit le résultat de l’évaluation et des informations contextuelles supplémentaires.
Dans le cas improbable d’une défaillance du système dorsal d’évaluation, le code de l’évaluation sera assessment_not_available et la confiance associée sera low car Auth0 adopte par défaut un comportement sécurisé. Vous pouvez remplacer cette notation à l’aide d’Actions. Pour en savoir plus, lisez Gérer en toute sécurité les cas où Auth0 ne parvient pas à exécuter les évaluateurs.
La propriété du code d’évaluation NewDevice est égale à l’une des valeurs suivantes :
Valeur
Description
match
Les valeurs de propriété de l’objet details sont équivalentes.
partial_match
Les valeurs de propriété de l’objet details sont similaires.
no_match
Les valeurs de propriété de l’objet details sont différentes.
initial_login
L’utilisateur s’est connecté pour la première fois sur l’appareil.
unknown_device
Auth0 n’a pas pu obtenir les métadonnées de l’appareil.
no_device_history
Il n’y a pas d’historique de connexion associé à l’appareil.
assessment_not_available
Auth0 n’a pas pu effectuer une évaluation de l’appareil.
Objet de détails d’évaluation NewDevice
Si la valeur de la propriété du code équivaut à match, partial_match ou no_match, l’évaluation NewDevice contient l’objet details avec les propriétés suivantes :
L’évaluation ImpossibleTravel détermine si l’utilisateur se connecte à partir d’un emplacement qui pourrait indiquer un possible déplacement et contient les propriétés suivantes :
Propriété
Description
Type
Valeurs possibles
confidence
Score de confiance calculé par l’authentification multifacteur (MFA) adaptative.
L’évaluation UntrustedIP détermine si l’adresse IP de l’utilisateur est présente dans le référentiel d’adresses IP de faible réputation d’Auth0 (« liste de refus ») et contient les propriétés suivantes :
Propriété
Description
Type
Valeurs possibles
confidence
Score de confiance calculé par l’authentification multifacteur (MFA) adaptative.
Si la valeur de la propriété du code d’évaluation UntrustedIP est égale à found_on_deny_list, l’objet details est présent et contient les propriétés suivantes :
Property
Description
Type
Possible values
ip
Adresse IP de l’appareil.
string
Toute adresse IPv4 ou IPv6 valide.
matches
Masque de sous-réseau auquel appartient l’adresse IP.
string
Tout masque de sous-réseau IPv4 ou IPv6 valide.
source
Nom de la source de renseignements sur les menaces pour la liste de refus.
string
Tout texte valide.
category
Catégorie indiquant pourquoi l’adresse IP n’est pas fiable.
Propriété de catégorie d’objet détails d’évaluation UntrustedIP
La propriété de catégorie d’objet détails d’évaluation UntrustedIP décrit la raison générale pour laquelle l’authentification multifacteur (MFA) adaptative considère une adresse IP donnée comme étant non fiable et est égale à l’une des valeurs suivantes :
Valeur
Description
abuse
L’adresse IP a présenté des comportements abusifs ou a été identifiée comme étant membre de robots.
anonymizer
L’adresse IP appartient à des services d’anonymisation tels que les fournisseurs de VPN, les proxys ouverts et les nœuds de sortie TOR.
datacenter
L’adresse IP appartient aux fournisseurs d’hébergement en nuage et aux centres de données de colocation.
reputation
L’adresse IP a un mauvais score de réputation basé sur l’activité.
unroutable
L’adresse IP ne se trouve dans aucune plage allouée ou déléguée par un registre Internet autorisé ou autorisée pour un usage public.
Les actions qui déclenchent la MFA sont prioritaires sur le comportement par défaut de l’authentification multifacteur (MFA) adaptative.
Si l’une de vos actions déclenche la MFA en fonction du pointage de confiance, la stratégie Authentification multifacteur (MFA) adaptative par défaut déclenche la MFA lorsque le pointage de confiance est low.Le tableau suivant montre les résultats possibles en fonction de la combinaison d’actions et d’actions d’autorisations de l’authentification multifacteur (MFA) adaptative par défaut.
Ce modèle fournit un exemple et un point de départ sur la manière de créer un flux commercial personnalisé en utilisant des évaluations de risques individuelles.
Copy
Ask AI
/*** Handler that will be called during the execution of a PostLogin flow.** @param {Event} event - Details about the user and the context in which they are logging in.* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.*/exports.onExecutePostLogin = async (event, api) => { if (event.authentication && event.authentication.riskAssessment && event.authentication.riskAssessment.assessments.NewDevice) { // Example condition: prompt MFA only based on the NewDevice // confidence level, this will prompt for MFA when a user is logging in // from an unknown device. let shouldPromptMfa; switch (event.authentication.riskAssessment.assessments.NewDevice.confidence) { case 'low': case 'medium': shouldPromptMfa = true; break; case 'high': shouldPromptMfa = false; break; case 'neutral': // When this assessor has no useful information about the confidence, // do not prompt MFA. shouldPromptMfa = false; break; } // It only makes sense to prompt for MFA when the user has at least one // enrolled MFA factor. const canPromptMfa = event.user.multifactor && event.user.multifactor.length > 0; if (shouldPromptMfa && canPromptMfa) { api.multifactor.enable('any', { allowRememberBrowser: true }); } }};
Ce modèle montre comment vous pouvez appliquer l’inscription à la MFA lorsque vous utilisez une stratégie d’authentification multifacteur standard ou adaptative. Il utilise event.user.multifactor pour vérifier si l’utilisateur est inscrit à la MFA et, si ce n’est pas le cas, l’invite à le faire.
Copy
Ask AI
/*** Handler that will be called during the execution of a PostLogin flow.** @param {Event} event - Details about the user and the context in which they are logging in.* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.*/exports.onExecutePostLogin = async (event, api) => { if (!event.user.multifactor || event.user.multifactor.length == 0) { api.multifactor.enable('any', { allowRememberBrowser: true }); }};
Réaliser une action si le pointage de confiance est supérieur ou inférieur à X
Les pointages de confiance sont des valeurs discrètes (et non comprises dans une gamme); vous ne pouvez donc pas utiliser d’opérateurs de comparaison (tels que < ou >) pour évaluer plusieurs valeurs dans une seule condition.Utilisez plusieurs conditions pour combiner logiquement tous les pointages de confiance que vous souhaitez gérer. Par exemple, si vous souhaitez savoir quand le pointage de confiance est plus élevé que low, vérifiez s’il est égale à medium ou à high :
Obtenir des détails supplémentaires si le pointage de confiance total est X
L’objet riskAssessment est enregistré dans vos journaux de locataire. Vous pouvez afficher les entrées du journal pour voir le pointage d’évaluation des risques et les facteurs déterminants (raisons).Vous pouvez afficher l’objet riskAssessment et signaler les résultats à un autre endroit. Par exemple, vous pouvez envoyer un courriel ou sauvegarder un enregistrement dans une base de données externe.
Regroupez les évaluations pour obtenir un pointage de confiance total personnalisé.
Utilisez l’objet assessments pour accéder aux détails des évaluations individuelles, puis utilisez la propriété confidence, la propriété du code, ou les deux.Pour en savoir plus sur le pointage de confiance personnalisé, consultez Pointage de confiance personnalisé.
Bloquer la transaction en cours et renvoyer une erreur et un message si une évaluation donnée a un résultat donné
Utilisez l’objet assessments pour accéder aux détails des évaluations individuelles, y compris la propriété du code.Empêchez la transaction de connexion de se terminer en renvoyant la fonction de rappel avec un objet UnauthorizedError comme paramètre d’erreur. L’objet UnauthorizedError définit toujours error sur unauthorized, mais vous pouvez personnaliser leerror_message :
Gérer en toute sécurité les cas où Auth0 ne parvient pas à exécuter les évaluations
Auth0 attribue automatiquement un pointage de confiance low en cas d’échec de l’évaluation des risques.Pour mitiger ce scénario, utilisez l’objet assessments pour inspecter la propriété du code pour chaque évaluation individuelle et vérifier si la valeur est définie sur assessment_not_available.