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

Microsoft Active Directory中Proof Key for Code Exchange错误(AADSTS9002325)求助

解决AADSTS9002325: 跨域授权码兑换需要Proof Key for Code Exchange错误的方法

问题根源

该错误是因为微软Entra ID(原Azure AD)强制要求跨域场景下的OAuth2授权码流必须使用**PKCE(Proof Key for Code Exchange)**安全机制,当前配置未启用该机制。

具体修复步骤

  • 确认项目中使用的身份验证依赖(如msal、django-microsoft-auth)为最新版本,旧版本可能不支持PKCE。
  • 若手动实现授权流程:
    1. 生成符合要求的code_verifier:43-128位随机字符串,仅包含字母、数字、-、.、_、~字符。
    2. 通过SHA256哈希code_verifier,再做base64url编码得到code_challenge。
    3. 跳转至微软登录授权页时,在URL中追加code_challenge和code_challenge_method=S256参数。
    4. 兑换授权码获取令牌时,将code_verifier作为参数提交至微软令牌端点。
  • 若使用django-microsoft-auth库:
    1. 在项目settings.py中添加配置:MICROSOFT_AUTH_AUTHENTICATION_FLOW = 'pkce'
    2. 执行pip install --upgrade django-microsoft-auth更新库至最新版。
  • 检查Entra ID应用注册配置:
    1. 进入应用的"认证"页面,确认重定向URI配置正确。
    2. 在"授权码流"设置中,勾选"启用PKCE"选项(若存在)。

验证

重启Django应用,重新触发登录流程,确认授权码兑换环节已携带PKCE参数,错误不再出现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:44:54