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

使用Microsoft Graph API获取组织内所有组成员的技术咨询

获取所有群组成员(含特定邮箱后缀筛选)的Microsoft Graph API方案

当然可以直接获取所有群组的成员,甚至精准筛选出邮箱后缀为@myCompany.co.uk的用户,下面给你几个实用的实现方案:

方案1:用$expand直接关联群组与成员

你可以在获取群组的请求中,通过$expand参数直接拉取每个群组的成员,同时结合$filter筛选目标邮箱后缀:

GET https://graph.microsoft.com/v1.0/groups?$expand=members($filter=endsWith(mail,'@myCompany.co.uk'))&$select=id,displayName,members

注意:这个方法有个小限制——Graph API对$expand返回的关联对象数量有默认上限(通常是100个),如果你的群组数量多或部分群组成员数超标,可能需要配合分页或$top参数调整返回量。

方案2:批量请求(适合大量群组场景)

如果组织内群组数量较多,批量请求会更高效,能规避单次请求的限制。你可以先获取所有群组的ID列表,再动态生成批量请求内容,一次性拉取多个群组的筛选后成员:

POST https://graph.microsoft.com/v1.0/$batch
Content-Type: application/json

{
  "requests": [
    {
      "id": "1",
      "method": "GET",
      "url": "/groups/{group-id-1}/members?$filter=endsWith(mail,'@myCompany.co.uk')&$select=id,displayName,mail"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/groups/{group-id-2}/members?$filter=endsWith(mail,'@myCompany.co.uk')&$select=id,displayName,mail"
    }
    // 最多支持20个请求/批次,可按需添加更多群组请求
  ]
}

方案3:反向查询目录用户(无需关联具体群组)

如果你只需要所有在群组中、邮箱符合要求的用户,不需要绑定到具体群组,可以直接查询目录用户:

GET https://graph.microsoft.com/v1.0/users?$filter=endsWith(mail,'@myCompany.co.uk') and memberOf/$count ne 0&$select=id,displayName,mail,memberOf

注意:使用$count需要在请求头中添加ConsistencyLevel: eventual,且需要Directory.Read.All(应用权限)或Directory.Read(委派权限)。

必备权限说明

无论选哪种方案,都需要确保应用/用户拥有对应权限:

  • 基础群组与成员读取:Group.Read.All(应用权限)或Group.Read(委派权限)
  • 目录级用户查询:Directory.Read.All(应用权限)或Directory.Read(委派权限)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:36:33