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

如何通过单次调用Azure Graph API获取用户详情及全部组信息?

单次调用获取用户详情及全部所属组的解决方案

目前Microsoft Graph API没有直接支持单次调用同时获取用户完整详情+无数量限制的所属组列表的端点——因为用$expand=memberOf时,返回的组最多只有20条,这是Graph API关联查询的固定限制。

不过有几个优化思路,虽然不算严格意义上的单次API调用,但能大幅减少额外开销:

1. 用批量请求合并操作

把两次调用打包成一个HTTP请求发送,Graph API的批量请求允许在一个请求里包含多个独立的API调用,服务器会批量处理并返回所有结果。示例格式如下:

{
  "requests": [
    {
      "id": "1",
      "method": "GET",
      "url": "/v1.0/users/?$filter=userPrincipalName eq 'MYNAME'&$select=id,givenName"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/v1.0/users/{user-id}/memberOf/?$select=id"
    }
  ]
}

还可以用依赖请求自动替换用户ID,不用自己手动处理:

{
  "requests": [
    {
      "id": "1",
      "method": "GET",
      "url": "/v1.0/users/?$filter=userPrincipalName eq 'MYNAME'&$select=id,givenName"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/v1.0/users/{$1.id}/memberOf/?$select=id",
      "dependsOn": ["1"]
    }
  ]
}

批量请求只需要一次网络握手,比两次独立请求高效得多,而且能拿到无数量限制的组列表。

2. 增量同步用Delta查询(仅适用于定期同步场景)

如果是定期同步用户和组的场景,可以用Delta查询跟踪变化,但这不是为单次获取设计的,只适合增量更新需求。

3. 别碰旧的Azure AD Graph API

旧版的Azure AD Graph API已经被弃用,微软不再维护,而且它同样有类似的关联查询限制,完全没必要用。

总结:最贴合你需求的就是批量请求,它能在单次HTTP请求里完成用户详情和全部组的获取,既规避了两次独立请求的网络开销,又不受memberOf的20条限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:20:13