119
No existe una forma conveniente de averiguar si la autenticación multifactor está habilitada para un usuario en particular y qué métodos de MFA están configurados en la interfaz web del Centro de administración de Microsoft 365. En este artículo, le mostraremos cómo obtener el estado de MFA de los usuarios de Microsoft 365 mediante PowerShell.
Anteriormente, podía utilizar el Get-MsolUser cmdlet desde el módulo MsOnline o el Get-AzureADUser cmdlet del módulo AzureAD para obtener el estado de MFA de los usuarios de Microsoft 365. Sin embargo, después del 30 de junio de 2023, los módulos heredados de Azure AD y MSOL (que usan la API de Azure AD) quedarán obsoletos. Entonces, ahora debes usar el Microsoft Graph PowerShell módulo para obtener el estado de MFA del usuario en su arrendatario de Azure.
Instale el módulo de PowerShell Microsoft Graph para todos los usuarios en su computadora:
Install-Module Microsoft.Graph -Scope AllUsers –force
Puede verificar si su computadora tiene Microsoft Graph instalado:
Find-Module Microsoft.Graph
Luego conéctese a su arrendatario usando el módulo de Microsoft Graph:
Connect-MgGraph -Scopes "User.Read.All,UserAuthenticationMethod.Read.All"
Autentique y otorgue permisos a las herramientas de línea de comandos de Microsoft Graph para leer todas las propiedades de usuario y métodos de autenticación de Azure.
Si se ha autenticado correctamente en Azure a través de PowerShell, debería ver el mensaje «¡Bienvenido a Microsoft Graph!
Ejecute el siguiente comando para obtener el estado de MFA para un solo usuario:
Get-MGUserAuthenticationMethod -userid kirill@theitbros.onmicrosoft.com | fl
Pista. Se produce un error si no ha otorgado acceso a UserAuthenticationMethod.Read scope:
Get-MgUserAuthenticationMethod_List1: Request Authorization failed
Solo microsoft.graph.passwordAuthenticationMethod está habilitado para el usuario en este ejemplo. Esto significa que MFA no está configurado.
Si el usuario tiene otros métodos MFA configurados, el cmdlet Get-MGUserAuthenticationMethod los enumera.
Por ejemplo, mi cuenta está configurada para autenticarse mediante la aplicación Microsoft Authenticator en un dispositivo móvil (#microsoft.graph.microsoftAuthenticatorAuthenticationMethod).
Se pueden configurar para el usuario otros métodos sólidos de autenticación MFA, incluidos datos biométricos, aplicaciones de autenticación, claves de seguridad de hardware, etc.
Si se configuran varios métodos MFA para un usuario, la salida del comando puede ser difícil de entender qué métodos están habilitados.
Por lo tanto, puede usar este sencillo script de PowerShell para verificar el estado de MFA para un solo usuario. El script comprueba si hay algún método de autenticación fuerte que no sea ‘Autenticación de contraseña’ configurado para el usuario.
$AzureUserUPN='adm2@theitbros.onmicrosoft.com' $MFAUserData=Get-MgUserAuthenticationMethod -UserId $AzureUserUPN $AzureUserObject = [PSCustomObject]@{ "User" = 'n/a' "MFA status" = "Disabled" "Email authentication" = "False" "FIDO2 authentication" = "False" "Microsoft Authenticator" = "False" "Password authentication" = "False" "Phone authentication" = "False" "Software Oath" = "False" "Temporary Access Pass" = "False" "Windows Hello for Business" = "False" "Passwordless Authenticator" = "False" } $AzureUserObject.user = $AzureUserUPN foreach ($method in $MFAUserData) { Switch ($method.AdditionalProperties["@odata.type"]) { "#microsoft.graph.microsoftAuthenticatorAuthenticationMethod" { $AzureUserObject."Microsoft Authenticator" = $true $AzureUserObject."MFA status" = "Enabled" } "#microsoft.graph.emailAuthenticationMethod" { $AzureUserObject."Email authentication" = $true $AzureUserObject."MFA status" = "Enabled" } "#microsoft.graph.passwordAuthenticationMethod" { $AzureUserObject."Password authentication" = $true if ($AzureUserObject."MFA status" -ne "Enabled") { $AzureUserObject."MFA status" = "Disabled" } } "#microsoft.graph.fido2AuthenticationMethod" { $AzureUserObject."FIDO2 authentication" = $true $AzureUserObject."MFA status" = "Enabled" } "#microsoft.graph.phoneAuthenticationMethod" { $AzureUserObject."Phone authentication" = $true $AzureUserObject."MFA status" = "Enabled" } "#microsoft.graph.softwareOathAuthenticationMethod" { $AzureUserObject."Software Oath" = $true $AzureUserObject."MFA status" = "Enabled" } "#microsoft.graph.temporaryAccessPassAuthenticationMethod" { $AzureUserObject."Temporary Access Pass" = $true $AzureUserObject."MFA status" = "Enabled" } "#microsoft.graph.windowsHelloForBusinessAuthenticationMethod" { $AzureUserObject."Windows Hello for Business" = $true $AzureUserObject."MFA status" = "Enabled" } } } $AzureUserObject
El guión volverá Estado de MFA: Deshabilitado si el usuario está configurado para usar solo la autenticación de contraseña.
Si se configuran uno o más métodos de autenticación seguros además de la autenticación de contraseña, esto significa que MFA está habilitado para el usuario.