如何在单个请求中使用MS Graph获取组织中的所有用户及其成员组

时间:2018-08-21 21:58:05

标签: azure-active-directory microsoft-graph

在Microsoft Graph的一次调用中,是否有一种方法可以检索组织(包括每个用户所属的组)中的用户?

类似https://graph.microsoft.com/v1.0/users?$expand=MemberOf

此调用不返回成员组。如果我使用相同的URL调用beta端点,尽管我在响应中得到了成员组。 Beta端点的问题是它返回了很大的响应,我找不到将$expand$select结合使用的方法,只能为每个用户和用户ID返回MemberOf属性字段。

3 个答案:

答案 0 :(得分:2)

  

此调用不返回成员组。如果我叫测试版   具有相同URL的端点,尽管我在响应中得到了成员组。   Beta端点的问题是它返回了很大的响应   而且我找不到将$ expand与$ select结合在一起的方法   返回每个用户和用户ID字段的MemberOf属性。

并非所有关系和资源都支持$expand查询参数,$expand仅受beta支持,并且通常为扩展关系返回最多20个项目。并非所有资源或关系都支持在扩展项目上使用$select,我也在beta版中尝试了https://graph.microsoft.com/beta/users?$expand=memberOf($select=id,name),错误提示对此有效。有关详细信息,请阅读here

答案 1 :(得分:1)

根据this document的介绍,“对于从目录对象派生的Azure AD资源(例如用户和组),$ expand仅受beta支持,通常为扩展关系返回最多20个项目”

根据我的测试,您可以在下面使用此API列出所有成员。

'GET /users/{id | userPrincipalName}/memberOf

因此,无法通过使用对Microsoft Graph的单个调用来检索包括每个用户都是其成员的组的组织中的用户。

答案 2 :(得分:0)

正如其他人所提到的,单个请求是不可能的。

为了检索我们组织的所有用户及其所属的组,我决定解决此问题

这将产生一个组列表,每个组都有一个直接或间接的所有用户的列表(用户可以是原始组所具有的组的成员)。如果需要的话,将其转换为用户列表以及每个用户所属的组的列表应该相对容易些。