使用自定义IEF策略登录Azure AD B2C本地账户时出现Error 70001错误
碰到过好几个类似的情况——明明没动过配置,本地账户的注册登录突然失效,但社交和联合Azure AD登录还正常。给你列几个优先级最高的排查方向,按顺序来试:
检查策略版本的自动更新:Azure AD B2C的Identity Experience Framework(IEF)有时候会自动更新基础策略的版本,如果你在
TrustFrameworkExtensions.xml里用的是浮动版本号(比如v1.0.0而不是固定的v1.0.0.0),更新后的版本可能和你的自定义策略有兼容性问题。先把基础策略的版本号改成之前能正常运行的固定版本,测试看看是否恢复。核查租户层面的属性/密码策略变更:虽然你没改自己的策略,但可能有管理员在租户后台调整了设置:
- 比如强制启用了本地账户的MFA,但你的登录流程里没适配这个逻辑;
- 或者密码复杂度、账户锁定阈值被修改,导致用户输入的旧密码不符合新规则,触发登录失败;
- 还有可能是必填用户属性被调整,注册流程里的表单没对应更新,导致提交时缺失属性报错。
去Azure门户的B2C租户后台,依次检查「用户流」里的密码策略、「用户属性」里的必填项设置。
验证令牌签名密钥的有效性:本地账户登录依赖的令牌签名证书可能过期或轮换失败。打开你的自定义策略文件,找到
<Key>节点下用于签名的密钥,查看其有效期。如果是Azure自动生成的证书,尝试手动重新生成一个新的密钥并更新策略。排查自定义逻辑的隐性故障:如果你的注册/登录流程里有调用自定义REST API(比如邮箱验证、用户信息校验),这些外部服务的故障会直接导致本地账户流程失败,但不影响社交登录。检查策略里的
<ValidationTechnicalProfile>节点,确认依赖的API是否正常响应,参数是否符合要求。排除客户端缓存干扰:有时候用户浏览器的缓存或B2C相关Cookie会导致流程异常。建议测试时用无痕模式打开页面,或者清除浏览器中与B2C租户域名相关的Cookie,再尝试注册登录。
如果以上步骤都没解决问题,开启Azure AD B2C的诊断日志(在租户后台的「诊断设置」里配置),获取具体的错误代码和详细描述——这是定位深层问题的关键。
内容的提问来源于stack exchange,提问作者Jude Fisher

