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

Azure OAuth2令牌交换异常:获取的AccessToken非预期JWT格式

授权码换取Access Token未返回JWT令牌问题

问题详情

调用微软OAuth2.0令牌接口通过授权码换取Access Token时,期望得到JWT格式的令牌,但实际返回的是不透明的长字符串令牌。

请求信息

  • POST地址:https://login.microsoftonline.com/common/oauth2/v2.0/token
  • 请求参数:
    • client_id=?
    • scope=User.Read
    • code=?
    • grant_type=authorization_code
    • client_secret=?
    • redirect_uri=?

返回结果

{
    "token_type": "Bearer",
    "scope": "User.Read",
    "expires_in": 3600,
    "ext_expires_in": 3600,
    "access_token": "EwB4A8l6BAAUbDba3x2OMJElkF7gJ4z/VbCPEz0AAWFHRrdsZ4LrR7xaC4YHcQKYbIVUr9iZ7QotvAC57guruw+WSbgzggrIvcrGZfZumyqk7QbveeY6Ai/QJDTWIyEGp0xCEKVoNfZCgfviQATXr0gK+sdE1qRS5lWPLFApP6/CeVxF6m9TsIOxfghTKAeIZ7u8geUojjt4qKb+0jvaLiimCYQCYckzcNPhDjd5F2hdY/MCfMO1lbO7ovee2YQSAEKf5EBrySmMImLnos5Umz6UB1V4lO0uAbL7nKsRy3QX/U2LTcaXyTjVsOTBzLuZfAT0RKimKXoxjtJ8DcW7cI3FYGR6l8fjMQXKLkwBOauiRniv6/y2zJfrVvi3bUYQZgAAEJDr3QYnJrUsVhKwjjwFHBJAAoqUpBk/JK10NX+xlsZiLheYRMA8FICnJ02i5UIANZwMjfzyLWBlSID5HNNCK60gkjsHkQ01Pmqru1a/oSTNeyAdqjOYhTvVUhKmAWDwEaDhLOk03nbrAqoQO0eojLxPw3HiXQodCCo2m68ha7lFbcZqWCOuEXJulEgpp1iBjFLgL9xjLSn9TGu2QnYHoUqoKK1daHOaPcGRet2deotr4OGfh/eY6S/n/JNBIyxGei/LnuH3..."
}

原因分析

返回的Ew开头令牌是针对旧版Azure AD Graph的不透明令牌,而非微软Graph API的JWT令牌。问题出在scope参数未指定完整的微软Graph资源标识符,导致端点默认返回了旧资源的令牌。

解决方案

将请求的scope参数修改为包含微软Graph资源路径的完整权限:

scope=https://graph.microsoft.com/User.Read

需重新执行完整的授权码流程(先获取新的授权码,再用新授权码换取令牌),此时返回的access_token会是ey开头的JWT格式,可通过JWT解析工具查看令牌内的声明信息。

若需请求多个权限,用空格分隔多个完整权限路径即可,示例:

scope=https://graph.microsoft.com/User.Read https://graph.microsoft.com/Mail.Read

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 21:05:55