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

Azure AD B2C登录Microsoft身份提供商报错:跨域授权码兑换需PKCE

解决Azure AD B2C登录错误AADB2C90273的方案

一、确认应用注册配置

  • 检查重定向URI类型:确保添加的是**单页应用(SPA)**类型的重定向URI,而非Web类型。SPA应用下Azure AD B2C会强制要求PKCE,误用Web类型会触发该错误。
  • 调整隐式授权设置:SPA应用无需启用隐式流(ID令牌/访问令牌),授权码流+PKCE是合规方案,隐式流可能干扰PKCE正常触发。

二、确保请求端正确实现PKCE

  • 生成合规的code_verifier和code_challenge:
    • code_verifier为43-128位随机字符串,仅允许包含字母、数字、-、.、_、~字符。
    • 对code_verifier做SHA-256哈希后,进行Base64URL编码得到code_challenge,授权请求中需指定code_challenge_method=S256。
  • 授权请求必须携带PKCE参数:跳转至Azure AD B2C授权端点的URL中,必须包含code_challenge和code_challenge_method,否则B2C会判定PKCE未实现,拒绝跨域兑换授权码。
  • 兑换授权码时传入code_verifier:调用token端点获取令牌时,需将code_verifier作为参数传入,与授权请求的code_challenge完成匹配验证。

三、检查身份提供商与策略配置

  • 验证Microsoft身份提供商设置:在Azure AD B2C的身份提供商配置中,确认用于集成的Microsoft账户应用注册已正确配置重定向URI,且该应用认证设置允许授权码流。
  • 检查B2C用户流/自定义策略:若使用自定义策略,需确保<UserJourney>和<TechnicalProfile>中包含PKCE相关验证逻辑,启用PKCE支持。

四、排查常见误区

  • 避免混用应用类型:不要将SPA应用配置为Web应用,SPA不支持客户端密码,必须依赖PKCE。
  • 清除浏览器缓存:旧会话数据可能导致请求参数异常,清除缓存和Cookie后重新测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:57:35