为何使用自定义布局的重置密码流程要求MFA,默认布局则无此要求?
Azure AD B2C 自定义布局重置密码重复触发MFA问题解决指南
根因说明
配置完全一致的User Flow出现流程差异,本质是自定义页面布局未正确继承User Flow的密码重置逻辑,或是额外引入了强制触发MFA的前端规则,导致邮箱验证的已验证状态未传递到后续步骤,触发二次校验。
解决方案
1. 校验自定义页面的冗余逻辑
- 打开自定义布局的HTML文件,排查是否存在强制调用
strongAuthenticationEmail、requiresMfa相关的前端声明逻辑,这类额外添加的前端逻辑会绕开User Flow的后端配置,强制触发MFA步骤。 - 确认自定义HTML的头部是否正确引入了Azure AD B2C官方要求的标准页面脚本,脚本版本不匹配也会导致流程判断异常。
2. 修正User Flow的MFA配置
- 进入Azure AD B2C控制台,打开对应密码重置User Flow,依次进入属性 > 多因素认证,确认
密码重置时要求MFA选项处于关闭状态。 - 若使用V2版本User Flow,进入用户属性 > 多因素认证,将
重置密码的MFA执行条件设置为从不。
3. 调整声明传递规则(自定义策略场景适用)
- 若你使用的是自定义策略而非内置User Flow,检查密码重置用户旅程中,邮箱验证步骤输出的
verified.email声明是否正确传递到后续步骤,若该声明未被标记为已验证,后续步骤会默认触发二次邮箱验证。 - 可在自定义策略的
ClaimsTransformation节点中添加如下规则,强制标记邮箱验证状态:
<ClaimsTransformation Id="SetEmailVerified" TransformationMethod="SetClaimIsValueAssigned"> <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim" /> <OutputClaim ClaimTypeReferenceId="emailVerified" TransformationClaimType="outputClaim" /> </ClaimsTransformation>
4. 定位自定义代码异常
- 先将自定义布局替换为Azure AD B2C提供的默认自定义布局模板测试,若流程恢复正常则说明你的自定义HTML中存在多余逻辑,逐行删减自定义JS/CSS代码即可定位异常点。
内容的提问来源于stack exchange,提问作者Henrique Tedeschi
相关产品推荐
相关产品推荐

