如何在使用Azure-MFA的Azure AD B2C自定义策略中设置OTP重试限制
Azure B2C 自定义策略搭配Azure MFA的OTP重试限制设置方案
核心配置位置
你需要找到自定义策略中定义Azure MFA校验逻辑的技术配置节点,通常节点ID为AzureMfa-SendAndVerifyCode,在该节点的Metadata段添加/调整对应参数即可实现重试限制。
可配置参数说明
MaximumRetryAttempts:单次MFA流程内允许的OTP错误重试次数,默认值为3,可根据业务需求修改为自定义数值RetryIntervalInSeconds:两次OTP校验尝试的最小间隔时长,单位为秒,避免用户暴力重试AccountLockoutDurationInSeconds:重试次数达到上限后,当前用户会话的MFA功能锁定时长,单位为秒,锁定期间无法提交验证码也无法申请重新发送OTPMaximumAccessFailedCountBeforeLockout:触发锁定的最大失败次数阈值,建议和MaximumRetryAttempts设为相同值即可
配置示例
<TechnicalProfile Id="AzureMfa-SendAndVerifyCode"> <Metadata> <!-- 配置允许最多2次OTP重试 --> <Item Key="MaximumRetryAttempts">2</Item> <!-- 两次重试间隔最少60秒 --> <Item Key="RetryIntervalInSeconds">60</Item> <!-- 重试超限后锁定5分钟 --> <Item Key="AccountLockoutDurationInSeconds">300</Item> <!-- 失败2次即触发锁定 --> <Item Key="MaximumAccessFailedCountBeforeLockout">2</Item> </Metadata> <!-- 其余原有配置无需修改 --> </TechnicalProfile>
生效验证注意事项
- 以上参数仅对原生Azure MFA调用逻辑生效,如果你使用了自定义的OTP发送、校验流程,需要自行在对应的技术配置中添加失败次数的声明持久化和阈值判断逻辑
- 重试限制和锁定规则按用户会话维度生效,不会跨会话、跨用户累计失败次数
- 修改策略后需要重新上传到Azure B2C服务,建议先在测试租户验证重试、锁定、自动解锁流程符合预期后再同步到生产环境
内容的提问来源于stack exchange,提问作者Ashwin Lenekar
相关产品推荐
相关产品推荐

