检索所有组中的所有用户?

Con*_*top 6 azure-active-directory microsoft-graph-api

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

打电话时:

https://graph.microsoft.com/v1.0/groups/
Run Code Online (Sandbox Code Playgroud)

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

我也尝试过打电话:

https://graph.microsoft.com/v1.0/{{userID}}/memberOf
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

{
  "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"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

不确定为什么或者是否相关。

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

Roh*_*gal 6

我看到你可以使用两种可能的方法 -

  1. $expand在团体呼叫中使用接线员。

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

    这样您就可以在一次调用中获取有关组及其成员的信息。这是有关 $expand 参数的 Microsoft 文档的链接

    免责声明:关于扩展参数的 Microsoft 文档有一条注释,内容如下

    对于从 DirectoryObject 派生的 Azure AD 资源(例如用户和组),$expand 仅支持 Beta 版,并且通常最多为扩展关系返回 20 个项目。

    尽管如此,上面提到的使用 v1.0 的查询对我来说工作得很好,至少在组成员数量较少的图形浏览器中是这样。所以你可能需要进一步测试。

  2. 分别查找每个组的成员

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

     GET https://graph.microsoft.com/v1.0/groups/{id}/members
    
    Run Code Online (Sandbox Code Playgroud)

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