如何配置Azure AD B2C用户流实现永久账户锁定?
Azure AD B2C 实现连续登录失败后的永久账户锁定
核心结论
- 默认用户流的UI配置无法实现永久锁定(上限仅5小时),必须通过自定义策略来实现需求。
自定义策略配置步骤
1. 获取基础登录自定义策略模板
从Azure AD B2C自定义策略起始包中选择与默认登录用户流匹配的模板(如SocialAndLocalAccounts模板),该模板包含默认登录流的全部基础配置,仅需修改锁定相关规则即可。
2. 修改账户锁定规则
在自定义策略的TrustFrameworkExtensions.xml文件中,找到LocalAccountSigninWithLogonEmail技术配置节点,添加或修改锁定相关元数据:
<ClaimsProvider> <DisplayName>Local Account</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="LocalAccountSigninWithLogonEmail"> <Metadata> <!-- 设置连续登录失败触发锁定的次数 --> <Item Key="lockoutNumberOfAttempts">10</Item> <!-- 用极大值模拟永久锁定(10年),用户重置密码后自动解除 --> <Item Key="lockoutDuration">315360000</Item> <Item Key="lockoutEnabled">True</Item> </Metadata> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
3. 验证密码重置解锁逻辑
默认的密码重置技术配置会自动清除账户锁定状态,无需额外修改,用户完成密码重置后即可正常登录。
4. 启用自定义策略
将修改后的TrustFrameworkExtensions.xml,连同基础模板的TrustFrameworkBase.xml、SignUpOrSignIn.xml(登录流策略)上传至Azure AD B2C自定义策略面板,随后将Web应用的身份验证配置切换为使用该自定义登录策略。
补充说明
Azure AD B2C不支持直接配置"永久锁定",这里用10年时长模拟该效果,足以覆盖绝大多数业务场景;其余配置保持模板默认值,完全匹配默认登录用户流的原有行为。
内容的提问来源于stack exchange,提问作者Ivan Vydrin
相关产品推荐
相关产品推荐

