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

如何获取指定名称Entra ID组的成员及其经理信息?

解决按组名获取Entra ID组成员及经理信息的问题

可行方案一:两步查询(先取组ID,再复用有效请求)

这种方法复用你已验证有效的组ID请求逻辑,仅新增动态获取组ID的步骤:

  1. 第一步:按组名查询目标组ID
    发送请求:
    GET https://graph.microsoft.com/v1.0/groups?$filter=displayName eq 'Test group'&$select=id
    
    该请求仅返回匹配组的ID字段,数据量极小,适合多租户场景动态获取。
  2. 第二步:用获取到的组ID执行原有请求
    将第一步拿到的groupId替换到你之前的有效请求中:
    GET https://graph.microsoft.com/v1.0/groups/{groupId}/members/microsoft.graph.user/?$select=<memberAttrs>&$expand=manager($levels=max;$select=<managerAttrs>)
    
    此请求会继续只返回用户类型的成员,并正确带出经理信息,避免非用户类型成员导致的报错。

可行方案二:单次嵌套查询(直接按组名获取成员+经理)

你之前的请求失败,核心原因是未限定成员为microsoft.graph.user类型,且扩展manager的语法位置错误。正确的单次请求语法如下:

GET https://graph.microsoft.com/v1.0/groups?$filter=displayName eq 'Test group'&$expand=members/microsoft.graph.user($select=<memberAttrs>;$expand=manager($levels=max;$select=<managerAttrs>))&$select=displayName

关键语法说明:

  • members/microsoft.graph.user:限定只扩展组内的用户类型成员,过滤掉组、设备等无manager属性的成员类型,避免扩展失败。
  • 嵌套$expand=manager(...)在microsoft.graph.user的扩展参数内:确保仅对用户类型成员扩展经理信息。
  • $select=<memberAttrs>和$select=<managerAttrs>:按需指定需要返回的成员、经理属性,减少冗余数据。
  • $select=displayName:控制组本身仅返回名称字段,避免无关数据。

多租户MSP场景适配建议

  • 无需硬编码组ID:两种方案均通过组名动态查询,每个租户用独立OAuth凭据查询自身租户内的目标组,适配多租户需求。
  • 组名配置化:可在ServiceNow中按租户维护目标组名称映射表,由MSP控制配置,客户仅需维护组内成员,既满足MSP控制权要求,又避免客户误操作导致的许可证成本增加。

注意事项

  • 权限要求:确保应用已被授予Group.Read.All和User.Read.All的应用权限(多租户场景更适合应用权限,而非委派权限)。
  • 分页处理:若组成员数量超过Graph API默认分页限制(100条),需处理响应中的@odata.nextLink以获取完整数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 23:35:20