Actualice los métodos MFA predeterminados con Microsoft Graph PowerShell
Su método MFA predeterminado define el desafío inicial que se le envía cuando realiza un inicio de sesión interactivo en su cuenta de Microsoft 365 y se aplica MFA (autenticación multifactor).
Si bien implementar y aplicar MFA en toda su organización es un gran paso hacia una mejor seguridad, una vez implementado, el mantenimiento a menudo puede pasarse por alto. Por ejemplo, ¿sabe qué otros métodos de autenticación han implementado sus usuarios antes de registrar un método más seguro, como la aplicación de autenticación de Microsoft? Y si no lo hace, probablemente no sepa cuál es su método preferido durante un desafío de inicio de sesión interactivo.
Un buen primer paso para pasar a un estado MFA consistente es garantizar que los usuarios que han registrado métodos más seguros los tengan configurados como su método de autenticación principal durante el inicio de sesión. Otras opciones, como el método MFA preferido por el sistema; sin embargo, esta guía está diseñada para organizaciones que quizás aún no estén preparadas para ese paso o que quieran implementarlo en fases.
En este tutorial, le mostraré cómo puede usar Microsoft Graph PowerShell para actualizar el método de autenticación predeterminado para usuarios con Microsoft Graph PowerShell.
Requisitos previos
Para ejecutar los comandos de este tutorial, debe asegurarse de poder utilizar los siguientes permisos en su secuencia de comandos:
- Método de autenticación de usuario.ReadWrite.All
- Usuario.Leer.Todo
Puede usar una cuenta de Administrador global para dar consentimiento a estos permisos durante la primera ejecución del script, o puede asignar estos permisos a su aplicación de herramientas de línea de comandos de Microsoft Graph primero y luego conectarse con una cuenta que tenga la función de Administrador de políticas de autenticación en AD azul.
También debe asegurarse de tener instalado el SDK de Microsoft Graph PowerShell y, si lo tiene, asegurarse de que esté en la última versión disponible. Siga mi guía aquí: Cómo instalar el módulo Microsoft Graph PowerShell
Todos los métodos MFA
Para este tutorial, en los scripts siguientes, he decidido implementar el método push como método MFA predeterminado para cada usuario. Sin embargo, hay otras opciones disponibles y, aunque algunas no son muy recomendables, puedes verlas a continuación:
- push : notificaciones push de Microsoft Authenticator con coincidencia de números.
- juramento: contraseña de 6 dígitos (OTP) con aplicación de autenticación.
- voiceMobile: respuesta de llamadas de voz con código de 6 dígitos.
- voiceAlternateMobile: respuesta de llamadas de voz con código de 6 dígitos en un móvil alternativo.
- voiceOffice: respuesta de llamadas de voz en el teléfono de la oficina con un código de 6 dígitos.
- sms - Mensaje de texto con código de 6 dígitos.
- unknownFutureValue : valor no admitido.
Actualice el método MFA predeterminado para un solo usuario
Para actualizar el método MFA predeterminado para un único usuario de su organización, comience conectándose a Microsoft Graph con el alcance del permiso UserAuthenticationMethod.ReadWrite.All.
Connect-MgGraph -scopes UserAuthenticationMethod.ReadWrite.AllLuego defina el cuerpo de su solicitud, que determinará cuál es el método MFA preferido que establecerá para el usuario.
$body = @'
{
"userPreferredMethodForSecondaryAuthentication": "push"
}
'@También necesitamos definir el URI de la solicitud, este URI especifica el recurso que vamos a actualizar. Primero, le recomiendo que utilice el comando Get-MgUser para almacenar información sobre el usuario y luego pasar esta información al URI.
$user = Get-MgUser -filter "UserPrincipalName eq '[email '"
$uri = "https://graph.microsoft.com/beta/users/$($user.id)/authentication/signInPreferences"Para realizar el cambio, deberá utilizar el cmdlet Invoke-MgGraphRequest con el método PATCH, ya que actualmente no hay ningún cmdlet que admita este cambio.
Invoke-MgGraphRequest -uri $uri -Body $body -Method PATCHActualice el método MFA predeterminado para todos los usuarios
Es posible que desee actualizar el método MFA predeterminado para varios usuarios de su organización. Por supuesto, si desea aplicar a todos los usuarios, es mejor que aplique la configuración de contexto MFA preferida del sistema. Sin embargo, este método sigue siendo útil, especialmente si desea asegurarse de que varios usuarios de un departamento específico tengan configurado el método predeterminado correcto.
Para obtener más detalles sobre cómo personalizar el comando Get-MgUser para obtener un conjunto específico de usuarios, consulte mi guía: Cómo usar Get-MgUser con Microsoft Graph PowerShell.
Connect-MgGraph -scopes UserAuthenticationMethod.ReadWrite.All, User.Read.All
$allusers = Get-MgUser -all
$body = @'
{
"userPreferredMethodForSecondaryAuthentication": "placeholder"
}
'@
$RegisteredMethod = "microsoftAuthenticator" # Check method type
$PreferredMethod = "push" # Define the preferred MFA method here
$body = $body -replace 'placeholder', $preferredmethod
Foreach ($user in $allusers) {
$uri = "https://graph.microsoft.com/beta/users/$($user.id)/authentication/signInPreferences"
$Check = Invoke-MgGraphRequest -uri $uri -Method GET -OutputType PSObject
If ($Check.userPreferredMethodForSecondaryAuthentication -eq $PreferredMethod){
Write-host "`n $($user.DisplayName) already has preferred method set to $PreferredMethod, Skipping..." -ForegroundColor Cyan
Continue
}
If ((Get-MgUserAuthenticationMethod -UserId $user.id).AdditionalProperties.values -like $RegisteredMethod){
try {
Invoke-MgGraphRequest -uri $uri -Body $body -Method PATCH -ErrorAction Stop
}
Catch {
Write-Host "`n Unable to update user authentication method for $($user.DisplayName)"
Continue
}
Write-host "Default MFA method has been successfully updated for $($user.DisplayName)" -ForegroundColor Green
} Else {
Write-Host "`n $RegisteredMethod has not been registered by $($user.UserPrincipalName)"-ForegroundColor Yellow
}
}Error de corrección: UserPreferredMethodForSecondaryAuthentication no se puede actualizado
Si está intentando actualizar un usuario y recibe el siguiente error:
UserPreferredMethodForSecondaryAuthentication no se puede actualizar
Es probable que el usuario que está intentando actualizar no tenga ya registrado el método MFA necesario. Hay un par de formas de verificar qué métodos han configurado, la primera es a través de PowerShell, ejecute el siguiente código para ver qué métodos se han configurado para un usuario.
(Get-MgUserAuthenticationMethod -UserId %upn%).AdditionalProperties.valuesAlternativamente, la misma información se puede ubicar a través del portal de Azure Active Directory. En primer lugar, vaya a Azure Active Directory > Proteger y asegurar > Métodos de autenticación > Detalles de registro del usuario .
Luego busque su usuario objetivo en la lista y vea la columna Métodos registrados.