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

如何通过单个Azure AD应用调用Graph API与SharePoint REST API

用单个Azure AD应用同时调用Graph API和SharePoint REST API

核心原因

Graph API的访问令牌受众(aud字段)是https://graph.microsoft.com,而SharePoint REST API要求令牌受众匹配目标SharePoint站点的资源ID(比如https://domain.sharepoint.com),所以两类令牌无法混用。解决思路是用同一个Azure AD应用,针对两个API分别请求对应令牌,同时在Azure AD里配置好两类权限。

1. 配置Azure AD应用权限

在Azure AD门户的应用注册页面找到你的应用,进入API权限标签:

  • Graph API权限:添加所需的应用/委派权限(比如User.Read.All、SharePoint.Read.All),完成后点击授予管理员同意(仅应用权限需要此操作)。
  • SharePoint权限:点击添加权限 → 选择SharePoint → 根据场景选择应用权限或委派权限(比如Sites.Read.All,若需读取角色分配可能需要Sites.Manage.All),同样完成管理员同意。

注意:无需在https://domain-admin.sharepoint.com/_layouts/15/appinv.aspx注册应用,Azure AD门户配置的权限已足够覆盖SharePoint REST API的访问需求。

2. 针对不同API请求访问令牌

客户端凭据流(应用权限场景)

请求Graph API令牌

指定scope为https://graph.microsoft.com/.default:

POST /{tenant-id}/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id={你的应用ID}&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret={你的应用密钥}&grant_type=client_credentials

请求SharePoint REST API令牌

指定scope为目标站点的.default路径(比如https://domain.sharepoint.com/.default):

POST /{tenant-id}/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id={你的应用ID}&scope=https%3A%2F%2Fdomain.sharepoint.com%2F.default&client_secret={你的应用密钥}&grant_type=client_credentials

委派权限场景(用户登录)

如果是用户授权的场景,scope替换为具体的权限值:

  • Graph API:比如https://graph.microsoft.com/User.Read.All
  • SharePoint REST API:比如https://domain.sharepoint.com/Sites.Read.All

3. 调用SharePoint REST API示例

拿到SharePoint的令牌后,调用/_api/Web/RoleAssignments接口:

GET https://domain.sharepoint.com/_api/Web/RoleAssignments HTTP/1.1
Authorization: Bearer {SharePoint访问令牌}
Accept: application/json;odata=nometadata

关键总结

  • 同一个Azure AD应用可以支持两类API调用,核心是请求令牌时指定匹配目标API的scope。
  • 跳过appinv.aspx的前提是在Azure AD门户正确配置SharePoint权限并完成管理员同意,避免手动配置XML权限块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:12:40