生成Outlook令牌兑换Graph API令牌时遇AADSTS9002313错误求助
解决AADSTS9002313: Invalid request. Request is malformed or invalid错误(兑换Graph API令牌时)
错误详情
请求返回的错误信息:
{ "error": "invalid_grant", "error_description": "AADSTS9002313: Invalid request. Request is malformed or invalid.\r\nTrace ID: ba68002d-e58b-4d65-9e61-6e5ca2845500\r\nCorrelation ID: 03ee058c-38cb-407d-9b88-f51b7c992464\r\nTimestamp: 2022-10-19 15:05:17Z", "error_codes": [9002313], "timestamp": "2022-10-19 15:05:17Z", "trace_id": "ba68002d-e58b-4d65-9e61-6e5ca2845500", "correlation_id": "03ee058c-38cb-407d-9b88-f51b7c992464", "error_uri": "https://login.microsoftonline.com/error?code=9002313" }
错误分析与排查方向
AADSTS9002313的核心原因是请求格式或内容不符合Azure AD的要求,结合你已确认权限已授予的情况,可以排除权限不足问题,重点排查以下几个维度:
1. 授权类型(grant_type)参数验证
- 若使用授权码流程兑换令牌,
grant_type必须严格设置为authorization_code;若使用刷新令牌流程,必须设置为refresh_token,不能出现拼写错误或遗漏该参数。
2. 请求端点正确性检查
兑换Graph API令牌的标准端点分为两个版本:
- v2.0端点:
https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token - v1.0端点:
https://login.microsoftonline.com/{tenant-id}/oauth2/token
需确保使用的端点和获取Outlook令牌时的版本一致,且{tenant-id}不能留空或填写错误(可替换为common、organizations或具体租户ID)。
3. 请求参数完整性与格式校验
- 确认所有必填参数已传入:
- 授权码流程:
code、client_id、client_secret(机密客户端必填)、redirect_uri、grant_type、scope - 刷新令牌流程:
refresh_token、client_id、client_secret(机密客户端必填)、grant_type、scope
- 授权码流程:
redirect_uri必须与应用注册时配置的地址完全一致(包括大小写、末尾斜杠),不能有任何差异;scope需包含Graph API所需的权限(例如https://graph.microsoft.com/Mail.Read),不能仅填写Outlook相关权限;- 参数值不能包含多余的空格、换行符等无效字符。
4. 请求内容类型设置
发送POST请求时,必须将Content-Type头设置为application/x-www-form-urlencoded,禁止使用application/json格式传递参数,否则会触发格式错误。
内容的提问来源于stack exchange,提问作者smithr
相关产品推荐
相关产品推荐

