从REST迁移至Graph:刷新令牌抛出InvalidAuthenticationToken错误
解决CompactToken解析失败(错误8004920A)的排查方案
核心问题分析
错误CompactToken parsing failed with error code: 8004920A的根源是令牌格式或版本与Microsoft Graph不兼容,结合你的系统迁移场景,重点排查以下几点:
令牌版本不匹配
旧系统的refresh_token可能是ADAL生成的v1.0令牌,而Microsoft Graph要求MSAL生成的v2.0令牌。即便刷新成功,若刷新请求的目标资源还是旧Azure AD端点,返回的access_token依然无法适配Graph接口。刷新请求参数错误
调用刷新接口时,必须确保参数符合Graph的要求:- 若使用v2.0端点,需指定
scope=https://graph.microsoft.com/.default - 若沿用v1.0端点,
resource参数需明确设置为https://graph.microsoft.com,同时确认租户支持v1.0令牌访问Graph
- 若使用v2.0端点,需指定
令牌结构验证
无需外部解码工具,直接观察access_token:合法的Graph兼容令牌是三段式JWT(header.payload.signature,用.分隔)。如果你的令牌不是这种结构,说明是旧格式的紧凑令牌,无法被Graph解析。
修复操作步骤
- 切换刷新请求到MSAL v2.0端点:
https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token - 替换请求参数,用
scope=https://graph.microsoft.com/.default替代原有的resource参数 - 刷新后获取新的access_token,确认是三段式JWT结构后,再调用Graph接口
内容的提问来源于stack exchange,提问作者Uriel
相关产品推荐
相关产品推荐

