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

如何使用Microsoft Graph API获取SharePoint组(非AD组)

用Microsoft Graph检索SharePoint站点组的方法

当然有办法实现!你之前调用的/groups端点确实是用来获取Azure AD全局组的,而SharePoint站点专属的组需要通过站点级的特定端点来获取,下面是具体的操作指南:

1. 核心调用端点

要获取指定SharePoint站点下的所有组,直接使用v1.0稳定版的端点(优先选择稳定版,beta版本可能存在变动):

GET https://graph.microsoft.com/v1.0/sites/{site-id}/siteGroups

这里的{site-id}可以是你通过https://graph.microsoft.com/v1.0/sites/{id}获取到的站点ID,也可以通过站点域名+相对路径的方式构造(比如contoso.sharepoint.com:/sites/Marketing或者类似contoso.sharepoint.com,abc123-def456-ghi789-jkl012-mno345的格式)。

如果需要获取单个特定的SharePoint组,使用:

GET https://graph.microsoft.com/v1.0/sites/{site-id}/siteGroups/{group-id}

注意:这里的{group-id}是SharePoint组自身的ID,并非Azure AD组的ID。

2. 权限配置要求

你需要在Azure AD应用中配置对应的权限,确保请求令牌包含所需权限:

  • 用户上下文(Delegated权限):Sites.Read.All 或 Sites.ReadWrite.All
  • 服务上下文(Application权限):Sites.Read.All 或 Sites.ReadWrite.All
    配置完成后记得完成授权流程,保证请求能正常通过权限校验。

3. 响应示例

调用成功后,会返回包含站点组关键信息的JSON响应,格式如下:

{
  "value": [
    {
      "id": "1",
      "displayName": "Site Owners",
      "description": "拥有站点完全控制权限",
      "loginName": "contoso\\SPMarketingOwners",
      "roles": ["FullControl"]
    },
    {
      "id": "2",
      "displayName": "Site Members",
      "description": "拥有站点编辑权限",
      "loginName": "contoso\\SPMarketingMembers",
      "roles": ["Edit"]
    }
  ]
}

关键区别说明

要注意区分两个端点的差异:/groups返回的是Azure AD全局组,这类组会在整个租户内生效;而/sites/{site-id}/siteGroups返回的是SharePoint站点专属组——这些组可能仅存在于当前站点内部,不会同步到Azure AD(比如传统的经典SharePoint组)。

内容的提问来源于stack exchange,提问作者Aswathy Santhosh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:02:33