Exportar el estado de MFA de los usuarios de Office 365 con PowerShell
Queremos obtener una lista de usuarios con estado MFA. Al verificar esto, estamos seguros de cuántos usuarios tienen MFA habilitado y qué método utilizaron. Si aún no ha habilitado MFA en su inquilino de Microsoft 365/Azure, ¡debe hacerlo de inmediato! En este artículo, aprenderá cómo exportar el estado MFA de los usuarios de Office 365 a un archivo CSV.
Verificar el estado de MFA en el centro de administración de Microsoft 365
Miremos Microsoft 365 y verifiquemos el estado del usuario de MFA. Inicie sesión en el centro de administración de Microsoft 365. Vaya a Usuarios > Usuarios activos > Autenticación multifactor.
Se abrirá una nueva página que mostrará todos los usuarios y su estado de autenticación multifactor. En nuestro ejemplo, tenemos un par de usuarios con MFA habilitado y MFA aplicado. La mayoría de los usuarios tienen MFA deshabilitado.
Por qué no le recomendamos que utilice la página web de autenticación multifactor para obtener información:
No se muestra si los usuarios finalizaron el proceso de MFA
No indica qué opción de autorización MFA habilitó el usuario
No hay posibilidad de exportar a un archivo CSV
Nota: Si ve que MFA está habilitado o aplicado, no significa que MFA esté configurado.
El script de PowerShell no puede identificar el estado de MFA si está habilitado con acceso condicional. Esto se debe a que Microsoft no proporcionó una manera de hacerlo.
¿Existe una mejor manera de tener una idea de MFA en lugar de la página de Microsoft 365? Sí, lo hay, y ahí es cuando PowerShell vendrá al rescate. En el siguiente paso, mostraremos cómo crear un informe MFA.
Estado de autenticación multifactor
Todos los usuarios comienzan Desactivados. Cuando inscribe usuarios en Azure AD Multi-Factor Authentication por usuario, su estado cambia a Habilitado. Cuando los usuarios habilitados inician sesión y completan el proceso de registro, su estado cambia a Aplicado. Los administradores pueden mover usuarios entre los estados Aplicado, Activado y Desactivado.
Deshabilitado
El estado predeterminado para un usuario no inscrito en Azure AD Multi-Factor Authentication por usuario.
Habilitado
El usuario está inscrito en la autenticación multifactor de Azure AD por usuario, pero aún puede usar su contraseña para la autenticación heredada. Si el usuario aún no ha registrado métodos de autenticación MFA, recibirá un mensaje para registrarse la próxima vez que inicie sesión utilizando la autenticación moderna (por ejemplo, a través de un navegador web).
Implementado
El usuario está inscrito por usuario en Azure AD Multi-Factor Authentication. Si el usuario aún no ha registrado métodos de autenticación, recibirá un mensaje para registrarse la próxima vez que inicie sesión utilizando la autenticación moderna (por ejemplo, a través de un navegador web). Los usuarios que completan el registro mientras están en el estado Habilitado pasan automáticamente al estado Forzado.
Conéctese a Azure Active Directory
Antes de que podamos continuar y obtener el estado de MFA para todos los usuarios, debemos instalar y conectarnos a Azure AD con PowerShell (MsolService).
Inicie Windows PowerShell como administrador y ejecute el cmdlet Connect-MsolService.
PS C:> Connect-MsolServiceAhora que estamos conectados, podemos pasar al siguiente paso.
Prepare el script de PowerShell Get-MFAReport
Cree dos carpetas en la unidad (C:):
Temperatura
Guiones
Descargue el script de PowerShell Get-MFAReport.ps1 y colóquelo en la carpeta C:\scripts. El script exportará el archivo CSV a la carpeta C:\temp.
Otra opción es copiar y pegar el siguiente código en el Bloc de notas. Asígnele el nombre Get-MFAReport.ps1 y colóquelo en la carpeta C:\scripts.
Write-Host "Finding Azure Active Directory Accounts..."
$Users = Get-MsolUser -All | Where-Object { $_.UserType -ne "Guest" }
$Report = [System.Collections.Generic.List[Object]]::new() # Create output file
Write-Host "Processing" $Users.Count "accounts..."
ForEach ($User in $Users) {
$MFADefaultMethod = ($User.StrongAuthenticationMethods | Where-Object { $_.IsDefault -eq "True" }).MethodType
$MFAPhoneNumber = $User.StrongAuthenticationUserDetails.PhoneNumber
$PrimarySMTP = $User.ProxyAddresses | Where-Object { $_ -clike "SMTP*" } | ForEach-Object { $_ -replace "SMTP:", "" }
$Aliases = $User.ProxyAddresses | Where-Object { $_ -clike "smtp*" } | ForEach-Object { $_ -replace "smtp:", "" }
If ($User.StrongAuthenticationRequirements) {
$MFAState = $User.StrongAuthenticationRequirements.State
}
Else {
$MFAState = 'Disabled'
}
If ($MFADefaultMethod) {
Switch ($MFADefaultMethod) {
"OneWaySMS" { $MFADefaultMethod = "Text code authentication phone" }
"TwoWayVoiceMobile" { $MFADefaultMethod = "Call authentication phone" }
"TwoWayVoiceOffice" { $MFADefaultMethod = "Call office phone" }
"PhoneAppOTP" { $MFADefaultMethod = "Authenticator app or hardware token" }
"PhoneAppNotification" { $MFADefaultMethod = "Microsoft authenticator app" }
}
}
Else {
$MFADefaultMethod = "Not enabled"
}
$ReportLine = [PSCustomObject] @{
UserPrincipalName = $User.UserPrincipalName
DisplayName = $User.DisplayName
MFAState = $MFAState
MFADefaultMethod = $MFADefaultMethod
MFAPhoneNumber = $MFAPhoneNumber
PrimarySMTP = ($PrimarySMTP -join ',')
Aliases = ($Aliases -join ',')
}
$Report.Add($ReportLine)
}
Write-Host "Report is in c:\temp\MFAUsers.csv"
$Report | Select-Object UserPrincipalName, DisplayName, MFAState, MFADefaultMethod, MFAPhoneNumber, PrimarySMTP, Aliases | Sort-Object UserPrincipalName | Out-GridView
$Report | Sort-Object UserPrincipalName | Export-CSV -Encoding UTF8 -NoTypeInformation "c:\temp\MFAUsers.csv"Así es como se ve.
Ejecute el script de PowerShell Get-MFAReport
Obtenga el estado de MFA para todos los usuarios con PowerShell. Cambie la ruta a la carpeta de scripts. Después de eso, ejecute el script Get-MFAReport.ps1.
PS C:\> cd c:\scripts\
PS C:\scripts> .\Get-MFAReport.ps1Vista fuera de la red
Un Out-GridView mostrará columnas con usuarios y mucha más información que en la página de autenticación multifactor de Microsoft 365.
Abrir el archivo CSV del informe de usuarios de MFA
El script de PowerShell Get-MFAReport.ps1 exportará el estado MFA de los usuarios de Office 365 a un archivo CSV. Busque el archivo MFAUsers.csv en la ruta C:\temp.
Abra el archivo CSV con su aplicación favorita. En nuestro ejemplo, es Microsoft Excel.
El informe de situación del MFA parece excelente.
Importante: ¡No olvide aplicar MFA para todos los usuarios del inquilino! Es imprescindible proteger a la organización de ataques de fuerza bruta e inicios de sesión.
¿Le ayudó esto a exportar el estado MFA de los usuarios de Office 365 a un archivo CSV?
Leer más: Analizador de configuración recomendada de Office 365 »
Conclusión
Aprendió a exportar el estado de MFA de los usuarios de Office 365 con PowerShell. Obtenga el informe de estado de MFA con el script Get-MFAReport PowerShell y obsérvelo de cerca. Fuerce MFA para todos los usuarios y verifique que usen la aplicación Authenticator, que es la recomendación de Microsoft.
Disfrutaste este artículo? También te puede gustar Instalar el módulo PowerShell de Exchange Online. No olvides seguirnos y compartir este artículo.





