Authentification multi-facteur
Préambule
Vous pouvez activer l'authentification à deux facteurs pour les connexions de type formulaire, c'est-à-dire login / password.
Lorsque cette option est activée, les utilisateurs doivent configurer puis utiliser une application de type Microsoft Authenticator pour générer un code d'accès après l'identification par login et mot de passe.
Deux modes sont possibles :
- activer le MFA pour tous les comptes de l'application ;
- activer le MFA uniquement pour les utilisateurs ayant un rôle défini.
Le code serveur Lagoon vérifie le MFA pour les identités dont AuthenticationMode vaut Forms. Les SSO doivent gérer leur propre MFA côté fournisseur d'identité.
Activer le MFA pour toute l'application
Dans le projet serveur, activez MultiFactorAuthenticationRequired dans la configuration de l'authentification.
protected override void OnConfigureAuthentification(AuthenticationOptions options)
{
// Active l'authentification formulaire et impose le MFA à tous les comptes.
options.AllowFormAuthentication = true;
options.MultiFactorAuthenticationRequired = true;
}
Activer le MFA sur certains comptes
Pour limiter le MFA à certains comptes, configurez MultiFactorAuthenticationRoleName. Tous les utilisateurs possédant ce rôle devront configurer et utiliser le MFA.
protected override void OnConfigureAuthentification(AuthenticationOptions options)
{
// Les utilisateurs qui possèdent ce rôle doivent utiliser le MFA.
options.AllowFormAuthentication = true;
options.MultiFactorAuthenticationRoleName = AppRole.MandatoryMfa;
}
Tous les utilisateurs qui possèdent le rôle défini, ici AppRole.MandatoryMfa, devront configurer puis se connecter via le MFA.
Prise en charge par l'application
Si vous activez cette option, prévoyez un écran d'administration pour réinitialiser le MFA d'un utilisateur, par exemple lorsqu'il a perdu son application d'authentification ou ne peut plus générer de code.
La réinitialisation se fait côté serveur avec UserManager.
// Désactive le MFA pour forcer une nouvelle configuration à la prochaine connexion.
await _userManager.SetTwoFactorEnabledAsync(user, false);
Lors de la prochaine connexion de l'utilisateur, l'application lui demandera de configurer à nouveau son MFA.
Parcours utilisateur
- L'utilisateur se connecte avec son login et son mot de passe.
- Si le MFA est requis et non configuré, l'application demande la configuration de l'application d'authentification.
- Si le MFA est configuré, l'application demande le code généré par l'application d'authentification.