Hoy en día la autenticación en dos pasos es ya algo común en multitud de servicios, en Azure AD siguen desarrollando un rol de administrador específico para la gestión de este servicio lo que provoca que mientras tanto los administradores globales reciban peticiones que deberían poder delegar. Vamos a ver como un usuario con rol de Administrador de Autenticación puede a través de Powershell gestionar esto.

azure ad mfa

 

En Azure AD el MFA (multiple factor authentication) es una propiedad de los usuarios que no viene activada por defecto. Esta tiene 3 estados:

  • Enabled - Activada pero opcional
  • Enforced - Forzada
  • Disabled - Deshabilida (por defecto)

Como comentábamos a través de la interfaz gráfica solo un usuario con rol de Administrador Global puede en estos momentos (aunque el desarrollo de un nuevo perfil está en marcha..) cambiar esta configuración para otro usuario. Afortunadamente a través de Powershell un usuario con rol de Authentication Administrator puede hacer lo mismo, pudiendo de esta manera delegar estas tareas que por lo general son bastante recurrentes.

Consultar MFA

Una vez conectados al servicio MSOnline en Powershell, podemos para comenzar consultar el estado de una cuenta para ver si tiene o no activado el MFA. Como esto no deja de ser una propiedad visible en cada objeto de usuario podemos usar el cmdlet Get-MsolUser

Get-MsolUser -userprincipalname [email protected] | select strongauthenticationrequirements

Activar MFA

Antes de activar el MFA, debemos tener en cuenta que si lo activamos como Enforced todas las aplicaciones del usuario que funcionen a través de navegador dejarán de funcionar (cliente Outlook, cliente Skype for Business..) hasta que el usuario cree sus propios app passwords.

Para activar el MFA crearemos un objeto de tipo Microsoft.Online.Administration.StrongAuthenticationRequirement el cual lo pasaremos posteriormente para modificar el usuario en si.

$st = New-Object -TypeName Microsoft.Online.Administration.StrongAuthenticationRequirement
$st.RelyingParty = "*"
$st.State = "Enabled"
$sta = @($st)

Finalmente aplicaremos esta configuración al usuario.

Set-MsolUser -UserPrincipalName [email protected] StrongAuthenticationRequirements $sta

Desactivar MFA

En caso que necesitemos desactivar el MFA para un usuario, lo podemos hacer con la concatenación de estos dos cmdlets

Get-MsolUser -UserPrincipalName [email protected] | Set-MsolUser -StrongAuthenticationRequirements @()