微软图形:在一个请求中列出所有用户及其组

10
我希望能够列出所有用户。对于每个用户,需要显示特定于该用户的角色和组。
我尝试了以下代码:
https://graph.microsoft.com/v1.0/users?$expand=memberOf

但它的结果与以下代码完全相同:

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

根据用户对象的文档(http://graph.microsoft.io/en-us/docs/api-reference/v1.0/resources/user),我应该能够通过使用memberOf关系来列出用户的角色和组。
我可以通过对每个用户进行一次请求(使用https://graph.microsoft.com/v1.0/users/{user_id}/getMemberObjects)来获得我需要的角色和组,但这有点慢且过度。
我错过了什么?
1个回答

9

在 Microsoft Graph 终结点的生产版本(v1.0)上,无法扩展“用户实体”的导航属性。而此功能在 beta 终结点上已经可用。

以下查询可以按您期望的运行:

https://graph.microsoft.com/beta/users?$expand=memberOf

目前还没有时间表来确定功能从beta版本转移到v1.0版本,甚至是否会以当前形式存在。

使用Microsoft Graph API时,您有3个选择。

Beta端点

使用beta端点,但要了解其功能可能会发生变化。

多个Graph调用

获取用户集合,然后根据需要获取每个用户的memberOf。

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

或者

https://graph.microsoft.com/v1.0/users/{user_id}/getMemberObjects

扩展组成员

如果您想继续使用v1.0端点,并且根据您的总体目标,您可以尝试以另一种方式找到所需的信息。获取组的集合并扩展成员导航属性。

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

beta 对于以下请求 https://graph.microsoft.com/beta/users/{id}?$expand=directReports 的工作也不正确。在 v1 中它什么也不做,在 beta 中它会扩展用户的每个导航属性以及所有子导航属性。在 beta 中将 expand 与 select 结合使用没有效果。 - Marmoy
3
假设您与msgraph项目有关,您应该更改此处的文档https://developer.microsoft.com/en-us/graph/docs/overview/query_parameters,以说明不支持expand查询,请确保它可以为开发人员节省很多麻烦。 - Marmoy
“https://graph.microsoft.com/beta/users?$expand=memberOf” 对我来说不起作用。我收到了一个“Request_UnsupportedQuery”错误消息。 - Andrei Bazanov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接