You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure B2C注册遇AADB2C90261错误及MFA不显示问题求助

问题分析与解决方案

错误AADB2C90261含义

AADB2C90261 错误明确表示:Azure B2C在执行步骤1中名为PreUserWriteRestful的声明交换(Claims Exchange)时,收到的HTTP响应无法被解析,400状态码说明请求本身不符合要求,或者后端服务(你的Azure函数)返回的内容格式不满足B2C的规范。

可能遗漏的步骤与排查方向

1. Azure函数响应格式不符合B2C要求

Azure B2C对REST API的响应格式有严格要求,无论验证成功或失败,都必须返回结构正确的JSON:

  • 成功响应示例:
    {"version":"1.0.0","status":"200","userMessage":"Captcha verified successfully"}
    
  • 失败响应示例:
    {"version":"1.0.0","status":"400","userMessage":"Invalid captcha response"}
    

如果你的Azure函数返回的JSON缺少version、status等必填字段,或者存在语法错误(比如逗号遗漏、引号不匹配),B2C就会触发解析失败错误。

排查动作:用Postman直接调用Azure函数的端点,模拟B2C的请求(POST方法,携带captchaResponse参数),检查返回的JSON结构是否完全符合上述规范。

2. reCAPTCHA验证逻辑存在问题

  • 确认Azure函数中使用的Google reCAPTCHA密钥(Site Key和Secret Key)正确无误,且Secret Key没有泄露或权限限制。
  • 检查函数调用Google reCAPTCHA验证API的逻辑:是否正确传递了用户提交的captchaResponse,是否处理了API返回的验证结果,并且将结果转换成B2C要求的响应格式。
  • 如果reCAPTCHA验证失败,必须返回status:400的结构化错误,而不是直接返回HTTP 400状态码却不带符合要求的JSON内容。

排查动作:查看Azure函数的日志(门户中函数的“监控”->“日志”),确认reCAPTCHA验证过程是否有报错,比如密钥错误、网络连接问题。

3. 自定义策略(User Flow)配置错误

  • 检查自定义策略中PreUserWriteRestful的声明交换配置:确保Endpoint URL正确指向你在门户创建的Azure函数,HTTP方法(POST)与函数的触发方式匹配,且声明映射正确(比如将用户提交的captchaResponse传递给函数)。
  • 确认自定义策略中已正确定义captchaResponse声明,并在注册流程中要求收集该声明(关联到自定义页面的reCAPTCHA字段)。

排查动作:对比教程中的策略XML,检查你的配置是否遗漏了声明定义、声明交换的参数映射等关键部分。

4. Azure函数的CORS与权限配置

  • 确保Azure函数的CORS设置允许B2C租户域名访问(添加https://<你的租户名>.b2clogin.com到允许的来源列表),否则B2C调用函数时会出现跨域错误,导致响应异常。
  • 检查Azure函数的访问权限:如果设置了非匿名访问,需确保B2C能正确认证;建议先设置为匿名访问,验证功能正常后再调整权限。

5. 自定义注册页面的reCAPTCHA集成问题

  • 确认自定义页面中的reCAPTCHA脚本正确加载,且g-recaptcha-response的值被正确绑定到B2C的表单字段(即captchaResponse声明)。如果这个值没有被传递给B2C,Azure函数会收到空的验证参数,导致验证失败并返回错误响应。

排查动作:在浏览器开发者工具中查看注册表单提交时的请求,确认captchaResponse字段是否被正确包含在请求数据中。

关于MFA不显示的问题

由于移除MFA后错误仍然存在,说明MFA问题是次要的,根源还是在验证码相关的流程中。当B2C在PreUserWriteRestful步骤遇到错误时,会直接终止流程,不会进入后续的MFA环节。解决上述验证码相关问题后,再重新排查MFA配置(比如确认自定义策略中已启用MFA步骤,且触发条件正确)。

类似问题反馈

不少开发者在Azure B2C集成reCAPTCHA时遇到过相同错误,常见原因包括:

  • 函数返回的JSON格式不符合B2C规范(比如缺少version字段)
  • reCAPTCHA密钥配置错误
  • 自定义策略中声明映射遗漏
  • CORS配置导致跨域请求失败

内容的提问来源于stack exchange,提问作者SilviuM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:50:39