在 Azure Active Directory B2C 中设置强制密码重置流

开始之前,请使用此页顶部的“选择策略类型”选择器来选择要设置的策略类型。 Azure Active Directory B2C 提供了两种定义用户如何与应用程序交互的方法:通过预定义的用户流,或者通过可完全配置的自定义策略。 对于每种方法,本文中所需的步骤都不同。

概述

如果用户忘记了密码,作为管理员,你可以重置用户的密码。 你也可以强制他们重置密码。 本文介绍如何在这些情况下强制密码重置。

在管理员通过 Azure 门户重置用户的密码时,forceChangePasswordNextSignIn 属性的值会被设置为 true登录和注册旅程会检查此属性的值。 在用户完成登录后,如果该属性设置为 true,则用户必须重置其密码。 然后,该属性的值会被设置回 false

强制密码重置流

密码重置流适用于 Azure AD B2C 中使用电子邮件地址用户名和密码进行登录的本地帐户。

先决条件

配置自定义策略

GitHub 上获取强制密码重置策略的示例。 在每个文件中,将字符串 yourtenant 替换为 Azure AD B2C 租户的名称。 例如,如果 B2C 租户的名称为 contosob2c,则 yourtenant.partner.onmschina.cn 的所有实例都将变为 contosob2c.partner.onmschina.cn

上传并测试策略

  1. 登录 Azure 门户
  2. 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,切换到“目录 + 订阅”菜单中的 Azure AD B2C 租户。
  3. 选择 Azure 门户左上角的“所有服务”,然后搜索并选择“Azure AD B2C” 。
  4. 选择“标识体验框架”。
  5. 在“自定义策略”中,选择“上传策略”。
  6. 选择 TrustFrameworkExtensionsCustomForcePasswordReset.xml 文件。
  7. 选择“上传”。
  8. 对信赖方文件 TrustFrameworkExtensionsCustomForcePasswordReset.xml 重复步骤 6 到步骤 8。

运行策略

  1. 打开用于上传 B2C_1A_TrustFrameworkExtensions_custom_ForcePasswordReset 的策略。
  2. 对于“应用程序”,选择在前面注册的应用程序。 若要查看令牌,“回复 URL”应当显示 https://jwt.ms
  3. 选择“立即运行”。
  4. 使用为其重置密码的用户帐户登录。
  5. 现在必须更改该用户的密码。 更改密码,然后选择“继续”。 令牌将返回到 https://jwt.ms 并显示出来。

下次登录时强制密码重置

若要在下次登录时强制重置密码,请通过 MS Graph 更新用户操作更新帐户密码配置文件。 要执行此操作,需要为 Microsoft Graph 应用程序分配用户管理员角色。 按照授予用户管理员角色中的步骤为 Microsoft Graph 应用程序分配用户管理员角色。

以下示例将密码配置文件 forceChangePasswordNextSignIn 属性更新为 true,这将强制用户在下次登录时重置密码。

PATCH https://microsoftgraph.chinacloudapi.cn/v1.0/users/<user-object-ID>
Content-type: application/json

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

在设置了帐户密码配置文件后,还必须按本文中的说明配置强制密码重置流。

强制在 90 天后进行密码重置

作为管理员,你可以使用 MS Graph 将用户的密码过期时间设置为 90 天。 在 90 天后,forceChangePasswordNextSignIn 属性的值会自动设置为 true。 若要在 90 天后强制密码重置,请从用户的配置文件密码策略属性中删除 DisablePasswordExpiration 值。

以下示例将密码策略更新为 None,这将在 90 天后强制密码重置:

PATCH https://microsoftgraph.chinacloudapi.cn/v1.0/users/<user-object-ID>
Content-type: application/json

{
  "passwordPolicies": "None"
}

如果禁用了强密码复杂性,则将密码策略更新为 DisableStrongPassword

备注

用户重置其密码后,passwordPolicies 将更改回 DisablePasswordExpiration

PATCH https://microsoftgraph.chinacloudapi.cn/v1.0/users/<user-object-ID>
Content-type: application/json

{
  "passwordPolicies": "DisableStrongPassword"
}

在设置了密码过期策略后,还必须按本文中的说明配置强制密码重置流。

密码过期期限

默认情况下,密码设置为不过期。 但是,可以使用 Microsoft Graph PowerShell 模块中的 Update-MgDomain cmdlet 来配置该值。 此命令更新租户,使所有用户的密码在配置的天数后过期。 例如:

Import-Module Microsoft.Graph.Identity.DirectoryManagement

Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes 'Domain.ReadWrite.All'

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

Update-MgDomain -DomainId $domainId -BodyParameter $params
  • passwordValidityPeriodInDays 是密码在必须更改之前保持有效的天数长度。

设置自助式密码重置