Azure AD B2C拆分注册流程第二步报Internal server error如何排查解决?
问题定位方案
- 调整Azure AD B2C策略日志级别为
Verbose,在TrustFrameworkExtensions.xml中配置事件溯源的完整采集规则,同步开启应用洞察的自定义维度采集,可直接捕获IsSelfAssertedEmpty谓词触发时校验的具体空值声明名称。 - 对比两个功能模块的声明定义:拆分邮箱验证与注册的逻辑、自定义邮箱验证显示控件默认使用的已验证邮箱声明名可能存在差异,常见为
verifiedEmail与email的混用,需逐一核对前序所有步骤的输出声明与第二个自声明页面的输入声明是否完全匹配。 - 排查自声明技术配置文件的声明流转:确认邮箱验证步骤的技术配置文件已将验证后的邮箱值正确输出到声明袋,第二个自声明页面的
InputClaims节点无拼写错误、正确引用了对应的声明字段。
修复方案
- 统一两处逻辑的已验证邮箱声明名:将拆分注册、自定义验证控件用到的已验证邮箱声明名统一为同一个值,避免跨步骤声明不匹配导致的空值判定。
- 按需配置空值校验规则:若第二个自声明页面存在可选字段,可在对应技术配置文件的
Metadata节点添加<Item Key="AllowGenerationOfClaimsWithNullValues">true</Item>,跳过非必填字段的空值校验。 - 补全自定义邮箱验证显示控件的输出声明:确保显示控件的
OutputClaims节点已显式将验证后的邮箱值赋值给全局声明,避免验证完成后声明值未持久化到声明袋中。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

