Microsoft Graph - 让所有组成员都具有传递性

时间:2017-09-09 00:53:24

标签: microsoft-graph

我目前有Azure AD组,其中包含其他组作为成员,子组包含用户。我正在寻找一种方法,使用Microsoft Graph在单个查询中获取所有用户。在此设置中,用户是父组的传递成员。

我想知道是否有办法让一个组的所有成员都包括使用Microsoft Graph的任何成员组的成员。我知道可以使用https://graph.microsoft.com/v1.0/Groups/{id}/members获得直接成员,但我不知道列出成员和传递成员的方法。

我的问题非常类似于前一个未回答的问题: Get all members of a group - transitive

更新:

以下是有关我具体情况的更多信息。我在AAD中有一个组层次结构设置,类似于这个图:

AAD Diagram

这里,线代表会员资格。这是一个小例子,因为每个父组实际上有100多个子组,每个子组有5-10个用户。我希望能够查询所有可传递属于父组的用户,而无需遍历每个子组。

在查询父组的直接成员资格时,我曾考虑使用$expand=members,但是,这不起作用,因为/members路由返回DirectoryObjects而不是{{ 1}}对象。可能有办法只返回Group个对象成员,或者输入结果吗?

2 个答案:

答案 0 :(得分:0)

您可以使用/getMemberGroups返回群组成员列表:

  

检查指定的组列表中的成员身份。从列表中返回指定组具有直接或传递成员资格的那些组。

关于您引用的问题的一个注释。该问题与Azure Active Directory Graph有关,而与Microsoft Graph无关。这是两个不同的API。虽然它们有很多功能重叠(并且Microsoft Graph API最终将取代Azure Graph),但对其中一个的调用不能与另一个互换。

答案 1 :(得分:0)

/transitiveMembers将为您解决问题。 它将以传递方式列出所有“用户,设备和其他组作为成员”以及所有嵌套的成员。

请注意,如果用户过多,它可能不会返回所有用户。在这种情况下,您将获得带有nextLink的uri以获得下一批结果。