Configuración de un flujo de restablecimiento de contraseña forzado en Azure Active Directory B2C

Antes de comenzar, utilice el selector Elección de un tipo de directiva para elegir el tipo de directiva que va a configurar. Azure Active Directory B2C ofrece dos métodos para definir el modo en que los usuarios interactúan con las aplicaciones: por medio de flujos de usuario predefinidos o de directivas personalizadas totalmente configurables. Los pasos necesarios en este artículo son diferentes para cada método.

Información general

Como administrador, puede restablecer la contraseña de un usuario si este no la recuerda. También puede forzar al usuario a que restablezca la contraseña. En este artículo, aprenderá a forzar un restablecimiento de contraseña en estos escenarios.

Cuando un administrador restablece la contraseña de un usuario desde Azure Portal, el valor del atributo forceChangePasswordNextSignIn se establece en true. El proceso de inicio de sesión y registro comprueba el valor de este atributo. Una vez que el usuario completa el inicio de sesión, si el atributo está establecido en true, el usuario debe restablecer su contraseña. Después, el valor del atributo se vuelve a establecer en false.

Force password reset flow

El flujo de restablecimiento de contraseña es aplicable a las cuentas locales de Azure AD B2C que utilizan una dirección de correo electrónico o un nombre de usuario con una contraseña para el inicio de sesión.

Prerrequisitos

Configuración del flujo de usuario

Para habilitar la configuración de Restablecimiento de la contraseña forzado en un flujo de usuario de registro o de inicio de sesión:

  1. Inicie sesión en Azure Portal.
  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar al inquilino del Azure AD B2C desde el menú Directorios y suscripciones.
  3. En Azure Portal, busque y seleccione Azure AD B2C.
  4. Seleccione Flujos de usuario.
  5. Seleccione el flujo de usuario de registro e inicio de sesión o solo de inicio de sesión (de tipo Recomendado) que desea personalizar.
  6. En el menú de la izquierda, en Configuración, seleccione Propiedades.
  7. En Configuración de la contraseña, seleccione Restablecimiento de contraseña forzado.
  8. Seleccione Guardar.

Prueba del flujo de usuario

  1. Inicie sesión en Azure Portal como administrador de usuarios o como administrador de contraseñas. Para más información acerca de los roles disponibles, consulte Asignación de roles de administrador en el Id. de Microsoft Entra
  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar al inquilino del Azure AD B2C desde el menú Directorios y suscripciones.
  3. En Azure Portal, busque y seleccione Azure AD B2C.
  4. Seleccione Usuarios. Busque y seleccione el usuario que va a usar para probar el restablecimiento de la contraseña y, después, seleccione Restablecer contraseña.
  5. En Azure Portal, busque y seleccione Azure AD B2C.
  6. Seleccione Flujos de usuario.
  7. Seleccione un flujo de usuario de registro o de inicio de sesión (de tipo Recomendado) que desee probar.
  8. Seleccione Ejecutar flujo de usuario.
  9. En Aplicación, seleccione la aplicación web denominada webapp1 que registró anteriormente. La dirección URL de respuesta debe mostrar https://jwt.ms.
  10. Seleccione Ejecutar flujo de usuario.
  11. Inicie sesión con la cuenta de usuario para la que desea restablecer la contraseña.
  12. Ahora debe cambiar la contraseña del usuario. Cambie la contraseña y seleccione Continuar. El token se devuelve al https://jwt.ms y debe mostrarse.

Configuración de la directiva personalizada

Obtenga el ejemplo de la directiva de restablecimiento de contraseña en GitHub. En cada archivo, reemplace la cadena yourtenant por el nombre del inquilino de Azure AD B2C. Por ejemplo, si el nombre del inquilino de B2C es contosob2c, todas las instancias de yourtenant.onmicrosoft.com se convierten en contosob2c.onmicrosoft.com.

Cargue y pruebe la directiva.

  1. Inicie sesión en Azure Portal.
  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar al inquilino del Azure AD B2C desde el menú Directorios y suscripciones.
  3. Elija Todos los servicios en la esquina superior izquierda de Azure Portal, y busque y seleccione Azure AD B2C.
  4. Seleccione Marco de experiencia de identidad.
  5. En Directivas personalizadas, seleccione Cargar directiva.
  6. Seleccione el archivo TrustFrameworkExtensionsCustomForcePasswordReset.xml.
  7. Seleccione Cargar.
  8. Repita los pasos del 6 al 8 para el archivo de usuario de confianza TrustFrameworkExtensionsCustomForcePasswordReset.xml.

Ejecución de la directiva

  1. Abra la directiva que cargó, B2C_1A_TrustFrameworkExtensions_custom_ForcePasswordReset.
  2. En Aplicación, seleccione la aplicación que registró anteriormente. Para ver el token, URL de respuesta debe mostrar https://jwt.ms.
  3. Seleccione Ejecutar ahora.
  4. Inicie sesión con la cuenta de usuario para la que desea restablecer la contraseña.
  5. Ahora debe cambiar la contraseña del usuario. Cambie la contraseña y seleccione Continuar. El token se devuelve al https://jwt.ms y debe mostrarse.

Forzar el restablecimiento de contraseña en el siguiente inicio de sesión

Para forzar el restablecimiento de la contraseña en el siguiente inicio de sesión, actualice el perfil de la contraseña de la cuenta mediante la operación Actualizar usuario de MS Graph. Para ello, debe asignar a la aplicación de Microsoft Graph el rol Administrador de usuarios. Siga los pasos descritos en Concesión del rol de administrador de usuarios para asignar a la aplicación de Microsoft Graph un rol de administrador de usuarios.

En el ejemplo siguiente se actualiza el atributo forceChangePasswordNextSignIn del perfil de la contraseña a true, lo que obliga al usuario a restablecer la contraseña en el siguiente inicio de sesión.

PATCH https://graph.microsoft.com/v1.0/users/<user-object-ID>
Content-type: application/json

{
    "passwordProfile": {
      "forceChangePasswordNextSignIn": true
    }
}

Una vez que se ha establecido el perfil de la contraseña de la cuenta, también debe configurar el flujo de restablecimiento de contraseña, tal como se describe en este artículo.

Restablecimiento de contraseña forzado después de 90 días

Como administrador, puede establecer la expiración de la contraseña de un usuario en 90 días, mediante MS Graph. Después de 90 días, el valor del atributo forceChangePasswordNextSignIn se establece automáticamente en true. Para forzar un restablecimiento de contraseña después de 90 días, quite el valor DisablePasswordExpiration del atributo Directiva de contraseñas del perfil de usuario.

En el ejemplo siguiente se actualiza la directiva de contraseñas a None, lo que fuerza un restablecimiento de contraseña después de 90 días:

PATCH https://graph.microsoft.com/v1.0/users/<user-object-ID>
Content-type: application/json

{
  "passwordPolicies": "None"
}

Si deshabilitó la complejidad de la contraseña segura, actualice la directiva de contraseñas a DisableStrongPassword:

Nota:

Una vez que el usuario restablece su contraseña, passwordPolicies se volverá a cambiar a DisablePasswordExpiration

PATCH https://graph.microsoft.com/v1.0/users/<user-object-ID>
Content-type: application/json

{
  "passwordPolicies": "DisableStrongPassword"
}

Una vez que se ha establecido una directiva de expiración de contraseña, también debe configurar el flujo de restablecimiento de contraseña, tal como se describe en este artículo.

Duración de las contraseñas

De forma predeterminada, la contraseña está establecida para que no expire. Sin embargo, el valor se puede configurar mediante el cmdlet Update-MgDomain del módulo de PowerShell de Microsoft Graph. Este comando actualiza el inquilino para que las contraseñas de todos los usuarios expiren después de un número de días que configure. Por ejemplo:

Import-Module Microsoft.Graph.Identity.DirectoryManagement

Connect-MgGraph  -Scopes 'Domain.ReadWrite.All'

$domainId = "contoso.com"
$params = @{
	passwordValidityPeriodInDays = 90
	passwordNotificationWindowInDays = 15
}

Update-MgDomain -DomainId $domainId -BodyParameter $params

Nota:

passwordValidityPeriodInDays indica el tiempo en días durante el cual una contraseña sigue siendo válida antes de que deba cambiarse. passwordNotificationWindowInDays indica el período de tiempo en días anteriores a la fecha de expiración de la contraseña cuando los usuarios reciben su primera notificación para indicar que su contraseña está a punto de expirar.

Pasos siguientes

Configuración de un autoservicio de restablecimiento de contraseña