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

如何基于指定用户列表从Azure AD Graph查询用户信息并避免性能损耗

问题解答与最优方案推荐

1. 支持传入待匹配用户列表的POST请求确实存在

你可以使用Microsoft Graph的JSON批处理能力实现该需求:

  • 接口地址为https://graph.microsoft.com/v1.0/$batch,单批次POST请求最多可合并20个独立的用户查询请求,服务端会并行处理所有子请求后统一返回结果
  • 1000条待校验用户仅需发起50次请求,相比单用户逐一查询的1000次请求,性能提升20倍,同时大幅降低网络开销

2. GET请求筛选参数的长度限制

Microsoft Graph对GET请求的整体URL长度限制为4096字节,扣除接口路径、固定参数等固定开销后,$filter参数可使用的有效长度约为3500字节:

  • 如果使用userPrincipalName in ('xxx@domain.com','yyy@domain.com')的语法批量查询,单次请求最多可传入100150个UPN(取决于单个UPN的长度),1000条待校验用户仅需发起710次请求,性能比批处理方案更优
  • 使用in运算符查询用户时,需要在请求头添加ConsistencyLevel: eventual参数,该功能为Azure AD原生支持的高级查询能力,无需额外付费

最优方案选择

优先使用in运算符批量查询方案:

  • 总请求数远低于你提到的两种原有方案,服务端计算压力和网络传输开销都处于极低水平
  • 无需拉取全量3万用户做本地匹配,也无需遍历发起上千次单用户查询,实测1000条用户校验耗时通常在2秒以内
    如果租户因权限问题无法使用in运算符的高级查询能力,再退而选择JSON批处理的POST方案即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:27:03