【问题标题】:Retrieve all Users from all Groups?从所有组中检索所有用户?
【发布时间】:2019-12-06 16:42:04
【问题描述】:

是否可以使用 Microsoft Graph 查看所有组以及这些组中的所有用户?我在文档中没有看到类似的内容。

调用时:

https://graph.microsoft.com/v1.0/groups/

我获得了有关我的组的信息,但我没有看到有关这些组中用户的任何信息。

我也试过打电话:

https://graph.microsoft.com/v1.0/{{userID}}/memberOf

我收到以下错误:

{
  "error": {
    "code": "BadRequest",
    "message": "Resource not found for the segment 'memberOf'.",
    "innerError": {
      "request-id": "13488c8e-124f-4161-ad2b-1dc03a302dc9",
      "date": "2019-03-18T16:13:23"
    }
  }
}

不知道为什么,甚至不知道它是否相关。

我授予服务主体所有 Microsoft Graph 权限。

【问题讨论】:

  • 如果你正在寻找一个组的直接成员.. 你可以使用 List members api docs.microsoft.com/en-us/graph/api/… 虽然,使用这个 api 你需要为所有组一个一个地去.. Microsoft Graph API 还支持某些 API 的 $expand,但我不确定组是否会扩展以在一次调用中为您提供所有成员。developer.microsoft.com/en-us/graph/docs/overview/…
  • 我很快尝试了这样的查询,https://graph.microsoft.com/v1.0/groups?$expand=members 它确实扩展了成员。虽然 Microsoft Docs 上记录了 $expand 运算符的一些限制。我会尝试整理一切并添加答案

标签: azure-active-directory microsoft-graph-api


【解决方案1】:

我看到了 2 种您可以使用的可能方法 -

  1. 在群呼中使用$expand运算符。

    GET https://graph.microsoft.com/v1.0/groups?$expand=members

    通过这种方式,您可以在一次通话中获取有关群组及其成员的信息。这是Microsoft documentation on $expand parameter的链接

    免责声明:Microsoft Docs for expand 参数有一个注释,上面写着类似

    使用派生自 directoryObject 的 Azure AD 资源,例如用户 和组, $expand 仅支持 beta 并且通常返回一个 扩展关系最多 20 项。

    虽然,上面提到的使用 v1.0 的查询对我来说确实工作得很好,至少来自 Graph explorer 的组成员数量很少。所以你可能需要进一步测试。

  2. 单独查找每个组的成员

    在这种方法中,您可以使用List Members API

     GET https://graph.microsoft.com/v1.0/groups/{id}/members
    

每个 API 所需的权限在其各自的 Microsoft Docs 链接文档中都有很好的描述。

【讨论】:

  • 我认为文档已经过时,仅在测试版中受支持,但我的理解是返回的约 20 个成员是准确的。使用{group}/members 是一种更可靠的方法。带宽也容易得多,因为您可以 $select 只关注您关心的字段(此处不支持 $expand=members($select={props}))。
  • 这些是非常好的建议@MarcLaFleur.. 感谢您的意见。
  • 这是一个类似的问题:stackoverflow.com/questions/54542595/…
【解决方案2】:

正在寻找@Rohit 提到的这个 20 限制问题的答案。这个限制似乎仍然存在

但是如果您使用 delta api,您将获得所有成员,并且响应甚至仅限于用户的 id

所以使用:

@987654321@?$expand=members

【讨论】:

  • 当我检查 Graph Explorer 帮助页面时,我看不到 delta api,你能再解释一下这个问题吗?我应该像这样更新我的所有图形 api 调用以获得可信赖的结果吗?
  • @husnu 你可以在这里阅读 delta api docs.microsoft.com/en-us/graph/delta-query-overview
猜你喜欢
  • 2019-08-29
  • 1970-01-01
  • 1970-01-01
  • 2014-08-20
  • 1970-01-01
  • 2012-05-14
  • 2021-07-28
  • 2010-10-20
  • 1970-01-01
相关资源
最近更新 更多