使用MSAL与Graph API调用SharePoint时遇InvalidAuthenticationToken错误求助
问题原因
你当前设置的作用域是SharePoint站点资源的https://mytenant.sharepoint.com/.default,但如果是调用Microsoft Graph API来操作SharePoint服务,Graph API要求令牌的受众(aud字段)必须是https://graph.microsoft.com,而你获取的令牌受众是SharePoint站点,因此触发了受众无效的验证错误。
解决方案
- 调整请求作用域:调用Graph API时,使用Microsoft Graph对应的委派权限作用域,例如:
按需选择具体权限,比如读取站点内容用const scopes = ["https://graph.microsoft.com/Files.Read", "https://graph.microsoft.com/Sites.Read.All"];Sites.Read.All,操作文件用Files.Read。 - 配置AAD应用权限:在Azure AD应用的「API权限」中添加对应的Microsoft Graph委派权限,完成后根据权限要求进行管理员同意(若权限需要)。
- 验证令牌受众:重新获取令牌后,在jwt.io查看
aud字段,确认其值为https://graph.microsoft.com。
如果你的需求是直接调用SharePoint自身的REST API(而非通过Graph API),则需要确保请求的目标是SharePoint站点的API端点(如https://mytenant.sharepoint.com/_api/web/lists),此时令牌受众为https://mytenant.sharepoint.com是正确的,无需修改作用域,只需调整请求目标地址即可。
内容的提问来源于stack exchange,提问作者shadowsa7x07
相关产品推荐
相关产品推荐

