SharePoint REST API调用401错误:访问令牌受众无效求助
问题核心
你遇到的InvalidAuthenticationToken错误本质是访问令牌的受众(aud字段)与SharePoint REST API的要求不匹配。Microsoft Graph能正常调用,是因为Graph的令牌受众固定为https://graph.microsoft.com,与调用端点完全匹配;而SharePoint REST API要求令牌受众必须是你的租户SharePoint根域名(如https://<mytenant>.sharepoint.com)。
排查与解决步骤
验证令牌的受众字段
用jwt.ms解码你的访问令牌,查看aud字段的值:- 如果
aud不是https://<mytenant>.sharepoint.com,说明获取令牌时的scope参数有误。检查scope是否拼写正确,确保格式为https://<你的租户名>.sharepoint.com/.default,没有多余符号或租户名错误。 - 若
aud正确,继续排查后续步骤。
- 如果
确认SharePoint API调用端点的一致性
调用SharePoint REST API时,请求的域名必须与令牌受众完全一致:- 例如获取站点列表的正确端点示例:
GET https://<mytenant>.sharepoint.com/_api/search/query?querytext='contentclass:STS_Site' - 禁止使用与令牌受众不匹配的域名(比如误用
graph.microsoft.com,或直接调用子站点域名但未对应调整scope)。
- 例如获取站点列表的正确端点示例:
检查应用权限配置
确保Azure AD应用的权限配置符合client_credentials流要求:- 在应用的API权限中,添加的是SharePoint的应用权限(而非委派权限),比如
Sites.Read.All、Sites.FullControl.All等。 - 确认权限已完成管理员同意(client_credentials流仅支持应用权限,且必须经过管理员同意才能生效)。
- 在应用的API权限中,添加的是SharePoint的应用权限(而非委派权限),比如
重新获取并使用令牌
修正上述问题后,重新调用令牌获取接口生成新令牌,确认aud字段为租户SharePoint根域名后,再发起SharePoint REST API请求。
内容的提问来源于stack exchange,提问作者Harsha521
相关产品推荐
相关产品推荐

