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

Azure中代表用户获取API令牌的合法授权类型咨询

解决Azure AD On-Behalf-Of流程中的unsupported_grant_type错误

嘿,我一眼就揪出问题根源了——你的grant_type参数值末尾多了个不必要的句号!你写的是urn:ietf:params:oauth:grant-type:jwt-bearer.,正确的合法授权类型应该是urn:ietf:params:oauth:grant-type:jwt-bearer(去掉最后的点)。

另外,你的请求参数还有几处格式小问题需要修正,下面是完整的正确请求示例:

正确的请求格式(application/x-www-form-urlencoded)

发送到oauth2/token端点的POST请求参数应该是这样的:

grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
client_id=<你的API应用客户端ID>
client_secret=<你的API应用客户端密钥>
resource=<你的API应用的URI>
requested_token_use=on_behalf_of
scope=openid
assertion=<从SPA获取的Graph用户令牌>

几个关键注意点

  • 务必确保grant_type没有多余标点,这是触发AADSTS70003错误的直接原因
  • 你的请求里client_secret写了client_secret : <client_secret>>,多了一个>,记得删掉
  • 提前确认你的API应用在Azure AD中已经配置允许On-Behalf-Of流程,并且已获取到必要的权限(比如访问Graph API的权限)
  • 作为assertion的Graph用户令牌必须是有效、未过期的,且令牌的受众(aud)必须指向Graph API,同时颁发者(iss)和签名能通过Azure AD的校验

修正这些问题后重新发送请求,应该就能成功获取到访问API应用的令牌了。如果还有其他错误,可以根据返回的错误代码排查——比如AADSTS50013表示令牌无效,AADSTS65001表示权限不足等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:08:13