Microsoft Graph API如何仅获取群组中账户已启用的成员?
Microsoft Graph API查询指定群组内启用状态成员方案
实现结论:可以实现,以下是具体操作方法
- 核心调用逻辑
群组members接口默认返回的是泛型directoryObject类型集合,本身不包含用户专属的accountEnabled属性,需要先将集合显式转换为user类型后再添加过滤条件即可,最终请求示例如下:
该请求会直接返回指定群组中所有账户处于启用状态的用户,同时自动排除群组内的设备、服务主体等非用户类型成员,完全匹配需求。https://graph.microsoft.com/v1.0/groups/替换为你的群组ID/members/microsoft.graph.user?$filter=accountEnabled eq true - 前置权限要求
调用接口前需要确认你的应用已申请至少以下权限之一:- GroupMember.Read.All
- Group.Read.All
- Directory.Read.All
- 大群组分页处理
如果目标群组的成员总数超过999,接口会返回@odata.nextLink字段,你需要循环请求该字段对应的URL,直到响应中无@odata.nextLink返回即可拿到全部符合条件的启用用户。
常见踩坑说明
不要直接在
/groups/{group-id}/members后直接拼接$filter=accountEnabled eq true,该操作会因为directoryObject类型不存在accountEnabled属性返回报错,必须先添加/microsoft.graph.user做类型转换。
内容的提问来源于stack exchange,提问作者KiwiNFLFan
相关产品推荐
相关产品推荐

