如何通过单次请求从Microsoft Graph获取属于全部3个指定组的用户?
单次请求检索同时属于多个指定组的Microsoft Graph用户实现方法
要实现单次请求找出同时属于3个指定组的所有用户,核心是利用Microsoft Graph的$filter参数结合memberOf/any表达式,同时满足目录查询的一致性要求。
核心查询逻辑
通过串联多个memberOf/any条件并使用and连接,确保用户必须同时属于所有指定组。每个any表达式检查用户的memberOf关系中是否存在目标组ID。
完整请求示例
请求URL
GET https://graph.microsoft.com/v1.0/users?$filter=memberOf/any(m: m/id eq 'group-id-1') and memberOf/any(m: m/id eq 'group-id-2') and memberOf/any(m: m/id eq 'group-id-3')&$count=true
将group-id-1、group-id-2、group-id-3替换为你的实际组GUID。
必要请求头
必须包含以下两个请求头,否则查询会失败:
Authorization: Bearer {你的访问令牌}ConsistencyLevel: eventual
关键注意事项
- 权限要求:你的应用需要拥有
User.Read.All或Directory.Read.All应用权限(或对应的委派权限,取决于使用场景),否则无法读取用户的组成员关系。 - 分页处理:如果符合条件的用户超过100个,Graph会自动分页,你需要通过响应中的
@odata.nextLink获取后续结果。 - 组ID格式:必须使用组的GUID,不能用组名或其他标识符。
内容的提问来源于stack exchange,提问作者Gladik
相关产品推荐
相关产品推荐

