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

Azure active directory 如何在单个请求中使用MS Graph获取组织中的所有用户及其成员组,azure-active-directory,microsoft-graph-api,Azure Active Directory,Microsoft Graph Api,是否有一种方法可以在对Microsoft Graph的一次调用中检索组织中的用户,包括每个用户所属的组 类似于https://graph.microsoft.com/v1.0/users?$expand=MemberOf 此调用不会返回成员组。如果我使用相同的URL调用beta端点,尽管我在响应中得到了成员组。beta端点的问题是它返回了一个很大的响应,我无法找到一种方法将$expand与$select组合起来,只返回每个用户的MemberOf属性和用户id字段 此调用不会返回成员组。如果我称之

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

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

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

此调用不会返回成员组。如果我称之为测试版 虽然我在响应中获得了成员组,但端点具有相同的URL。 beta端点的问题是它返回了一个很大的响应 我找不到一种方法将$expand与$select结合起来,只允许 返回每个用户的MemberOf属性和用户的id字段

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

此调用不会返回成员组。如果我称之为测试版 虽然我在响应中获得了成员组,但端点具有相同的URL。 beta端点的问题是它返回了一个很大的响应 我找不到一种方法将$expand与$select结合起来,只允许 返回每个用户的MemberOf属性和用户的id字段


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

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

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

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

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

根据,“对于从目录对象派生的Azure AD资源,如用户和组,$expand仅在beta版受支持,并且通常为扩展关系返回最多20个项目。”

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

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

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

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

为了检索我们组织的所有用户以及他们所属的组,我决定

  • 获取所有组()
  • 对于每个组,获取所有成员()
  • 在内存中展平组(一个组可以有另一个组作为成员),以便组中只有用户作为成员,并且包括任何成员组和用户

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

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

为了检索我们组织的所有用户以及他们所属的组,我决定

  • 获取所有组()
  • 对于每个组,获取所有成员()
  • 在内存中展平组(一个组可以有另一个组作为成员),以便组中只有用户作为成员,并且包括任何成员组和用户

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

谢谢。两个答案都同样好且清晰,我接受了前面的答案。谢谢。两个答案都同样好且清晰,我接受了前面的答案。