在 Microsoft Entra ID 中,有一个密码策略用于定义密码复杂性、长度或期限等设置。 还有一个策略可用于定义用户名可接受的字符和长度。
使用自助式密码重置 (SSPR) 在 Microsoft Entra ID 中更改或重置密码时,将检查密码策略。 如果密码不满足策略要求,则系统会提示用户重试。 Azure 管理员在使用 SSPR 方面具有一些不同于常规用户的限制,Microsoft Entra ID 试用版和免费版本也存在轻微例外。
本文介绍与用户帐户关联的密码策略设置和复杂性要求。 它还介绍了如何使用 PowerShell 检查或设置密码过期设置。
登录到 Microsoft Entra ID 的每个帐户都必须有唯一的与其帐户关联的用户主体名称 (UPN) 属性值。 在具有使用 Microsoft Entra Connect 与 Microsoft Entra ID 同步的本地 Active Directory 域服务环境的混合环境中,默认情况下 Microsoft Entra UPN 设置为本地 UPN。
下表概括了既应用于同步到 Microsoft Entra ID 的本地账户又应用于直接在 Microsoft Entra ID 中创建的仅限云的用户帐户的用户名策略:
properties | UserPrincipalName 要求 |
---|---|
允许的字符 | A-Z a-z 0-9 ' . - _ ! # ^ ~ |
不允许的字符 | 任何不分隔用户名和域的“@”字符。 不能包含紧靠在“@”符号前面的点字符“.” |
长度约束 | 总长度不能超过 113 个字符 在“@”符号前最多能有 64 个字符 在“@”符号后最多能有 48 个字符 |
密码策略应用于直接在 Microsoft Entra ID 中创建和管理的所有用户帐户。 尽管可以为 Microsoft Entra 密码保护或帐户锁定参数配置自定义禁止密码,但无法修改其中某些密码策略设置。
默认情况下,使用错误的密码尝试登录 10 次失败后,帐户会被锁定。 用户会被锁定一分钟。 进一步不正确的登录尝试后,锁定持续时间会增大。 智能锁定跟踪最后三个错误的密码哈希,以避免对相同密码增大锁定计数器。 如果有人多次输入同一个错误密码,将不会锁定该用户。可以定义智能锁定阈值和持续时间。
定义了以下 Microsoft Entra 密码策略选项。 除非另行说明,否则无法更改这些设置:
properties | 要求 |
---|---|
允许的字符 | A-Z a-z 0-9 @ # $ % ^ & * - _ ! + = [ ] { } |\ : ' , . ? / ` ~ " ( ) ; <> 空格 |
不允许的字符 | Unicode 字符 |
密码限制 | 至少 8 个字符,最多包含 256 个字符。 需要使用以下四种字符类型中的三种: - 小写字符 - 大写字符 - 数字 (0-9) - 符号(请参阅前面的密码限制) |
密码过期期限(最长密码期限) | 默认值: 无过期。 如果租户是在 2021 年之前创建的,则默认有 90 天的过期值。 你可以使用 Get-MgDomain 检查当前策略。 该值可通过适用于 PowerShell 的 Microsoft Graph 模块中的 Update-MgDomain cmdlet 来进行配置。 |
密码过期(让密码永不过期) | 默认值:"false"(指示密码有到期日期)。 单个用户帐户的该值可通过 Update-MgUser cmdlet 进行配置。 |
密码更改历史记录 | 用户更改密码时,上一个密码不能再次使用。 |
密码重置历史记录 | 用户重置忘记的密码时,上一个密码可以再次使用。 |
如果启用 EnforceCloudPasswordPolicyForPasswordSyncedUsers,Microsoft Entra 密码策略将适用于使用 Microsoft Entra Connect 从本地 同步的用户帐户。 此外,如果用户在本地更改密码以包含 unicode 字符,密码更改可能会在本地成功,但在 Microsoft Entra ID 中不会成功。 如果启用了 Microsoft Entra Connect 的密码哈希同步,用户仍可接收云资源的访问令牌。
系统会提示用户再次更改其密码。 但是,如果更改仍包含 unicode 字符,还启用了智能锁定,则可能会锁定这些字符。
默认情况下,将为管理员帐户启用自助式密码重置,并强制执行严格的默认双门密码重置策略。 此策略可能与为用户定义的策略不同,以及此策略无法更改。 你应始终以未被分配任何 Azure 管理员角色的用户身份测试密码重置功能。
双门策略需要两条身份验证数据(例如电子邮件地址、验证器应用或电话号码),并且禁止使用安全问题。 Microsoft Entra ID 的试用版或免费版本还禁止使用办公电话和移动语音呼叫。
SSPR 管理员策略不依赖于身份验证方法策略。 例如,如果你在身份验证方法策略中禁用了第三方软件令牌,管理员帐户仍可以注册第三方软件令牌应用程序并使用它们,但仅可将其用于 SSPR。
双门策略在以下情况下适用:
以下所有 Azure 管理员角色将受到影响:
- 应用程序管理员
- 身份验证管理员
- 计费管理员
- 合规性管理员
- 云设备管理员
- 目录同步账户(分配给 Microsoft Entra Connect 服务的管理员职能)
- 目录编写人员
- Dynamics 365 管理员
- Exchange 管理员
- 全局管理员
- 支持管理员
- Intune 管理员
- 已加入 Microsoft Entra 的设备的本地管理员
- 密码管理员
- Power Platform 管理员
- 特权身份验证管理员
- 特权角色管理员
- 安全管理员
- 服务支持管理员
- SharePoint 管理员
- Skype for Business 管理员
- Teams 管理员
- Teams 通信管理员
- Teams 设备管理员
- 用户管理员
如果在试用订阅中已过 30 天
-或-
为 Microsoft Entra 租户配置了自定义域,例如 contoso.com
-或-
Microsoft Entra Connect 从你的本地目录同步标识
可以使用 Update-MgPolicyAuthorizationPolicy PowerShell cmdlet 为管理员帐户禁用 SSPR。
-AllowedToUseSspr:$true|$false
参数为管理员启用/禁用 SSPR。 为管理员帐户启用或禁用 SSPR 的策略更改最长可能需要 60 分钟才能生效。
单门策略需要一条身份验证数据,如电子邮件地址或电话号码。 单门策略在以下情况下适用:
它在试用订阅的前 30 天中
-或-
未配置自定义域(租户使用默认的 *.partner.onmschina.cn,不建议将其用于生产),并且 Microsoft Entra Connect 未同步标识。
用户管理员可使用 Microsoft Graph 将用户密码设置为不过期。
还可以使用 PowerShell cmdlet 删除永不过期配置,或者查看已将哪些用户密码设置为永不过期。
本指南适用于其他提供程序(如 Intune 和 Microsoft 365),这些提供程序也依赖于 Microsoft Entra ID 提供标识和目录服务。 密码过期是策略中唯一可更改的部分。
备注
默认情况下,只有未通过 Microsoft Entra Connect 进行同步的用户帐户的密码才能配置为不过期。 有关目录同步的详细信息,请参阅将 AD 与 Microsoft Entra ID 连接。
首先,下载并安装 Microsoft Graph PowerShell 模块,然后将其连接到 Microsoft Entra 租户。
安装该模块后,请按照以下步骤完成每个所需任务。
至少以用户管理员身份打开 PowerShell 提示符,并连接到 Microsoft Entra 租户。
为单个用户或所有用户运行以下命令之一:
若要查看单个用户的密码是否设置为永不过期,请运行以下 cmdlet。 将
<user ID>
替换为要检查的用户的用户 ID:Get-MgUser -UserId <user ID> -Property UserPrincipalName, PasswordPolicies | Select-Object @{N="PasswordNeverExpires";E={$_.PasswordPolicies -contains "DisablePasswordExpiration"}}
若要查看所有用户的“密码永不过期”设置,请运行以下 cmdlet:
Get-MgUser -All -Property UserPrincipalName, PasswordPolicies | Select-Object UserPrincipalName, @{N="PasswordNeverExpires";E={$_.PasswordPolicies -contains "DisablePasswordExpiration"}}
至少以用户管理员身份打开 PowerShell 提示符,并连接到 Microsoft Entra 租户。
为单个用户或所有用户运行以下命令之一:
若要将某一用户的密码设置为会过期的密码,请运行以下 cmdlet。 将
<user ID>
替换为要检查的用户的用户 ID:Update-MgUser -UserId <user ID> -PasswordPolicies None
若要对组织中所有用户的密码进行相应设置,以使其过期,请使用以下命令:
Get-MgUser -All | foreach $_ { Update-MgUser -UserId $_.Id -PasswordPolicies None }
至少以用户管理员身份打开 PowerShell 提示符,并连接到 Microsoft Entra 租户。
为单个用户或所有用户运行以下命令之一:
若要将某一用户的密码设置为永不过期,请运行以下 cmdlet。 将
<user ID>
替换为要检查的用户的用户 ID:Update-MgUser -UserId <user ID> -PasswordPolicies DisablePasswordExpiration
若要将组织中所有用户的密码设置为永不过期,请运行以下 cmdlet:
Get-MgUser -All | foreach $_ { Update-MgUser -UserId $_.Id -PasswordPolicies DisablePasswordExpiration }
警告
设置为
-PasswordPolicies DisablePasswordExpiration
的密码仍会基于LastPasswordChangeDateTime
属性过时。 基于LastPasswordChangeDateTime
属性,如果将过期更改为-PasswordPolicies None
,则所有LastPasswordChangeDateTime
超过 90 天的密码将需要用户在下一次登录时更改它们。 此更改可能会影响很多用户。
若要开始使用 SSPR,请参阅教程:使用户能够使用 Microsoft Entra 自助式密码重置来解锁其帐户或重置密码。
如果你或用户遇到 SSPR 问题,请参阅 自助密码重置疑难解答。