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

能否对Microsoft Azure AD OAuth2 access_token做数据扩展及异常问题咨询

问题解答

id_token和access_token的校验逻辑差异是核心原因

你修改id_token后能正常使用,本质是因为id_token的设计用途就是给你的应用自身做身份验证:它是Azure AD专门发给你当前应用的,所有校验逻辑都在你自己的服务侧,你用自己的密钥重新签名后,只要你的服务信任这个密钥,自然能正常解析使用。

而你对access_token执行同样操作会报错,和你的操作步骤无关,这个操作本身就是不可行的,原因有两点:

  • access_token的签发主体是Azure AD,它的作用是让你可以访问Azure AD保护的各类资源(比如微软Graph API、其他在Azure AD注册的业务API),所有这些资源的校验逻辑只会信任Azure AD的私钥生成的签名,你用自己的密钥重签后的token签名无法通过校验,自然返回未授权。
  • 你没有抓到发往微软的校验请求,是因为JWT格式的access_token是自包含凭证,资源侧只需要提前缓存好Azure AD公开的公钥,在本地就能完成签名校验、有效期校验、受众校验等全部逻辑,不需要每次都调用微软的接口做远程校验。

如果你需要在access_token中添加自定义的业务字段,正确的实现方式是在Azure AD的应用注册配置中,添加自定义声明扩展,让Azure AD在签发access_token的时候就把你需要的字段内置进去,不要自行修改官方签发的access_token。如果自定义字段仅用于你自身服务的授权逻辑,更推荐你继续在自定义的id_token中扩展,或者单独生成你的业务侧专属的授权凭证使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:45:03