Microsoft Graph:在一个请求中列出所有用户及其组

Mic*_*ael 9 office365 microsoft-graph

我想列出所有用户.对于每个用户,我需要显示特定于该用户的角色和组.

我试过了:

https://graph.microsoft.com/v1.0/users?$expand=memberOf
Run Code Online (Sandbox Code Playgroud)

但它给出了完全相同的结果:

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

根据用户对象的文档(http://graph.microsoft.io/en-us/docs/api-reference/v1.0/resources/user),我应该能够列出用户对象的角色和组用户通过使用memberOf关系.

我可以通过为每个用户执行一个请求(使用https://graph.microsoft.com/v1.0/users/{user_id}/getMemberObjects)来获取每个用户所需的角色和组,但它有点慢和过度杀伤.

我错过了什么?

小智 7

扩展用户实体的导航属性当前不适用于Microsoft Graph端点的生产(v1.0)版本.该功能在beta端点上有效.

此查询可以按您的方式工作:

https://graph.microsoft.com/beta/users?$expand=memberOf
Run Code Online (Sandbox Code Playgroud)

当功能从beta转移到v1.0时,或者它们是否会以当前形式出现时,没有时间表.

目前,您使用Microsoft Graph API有3种选择.

Beta端点

使用beta端点,但要了解它可能会改变功能.

多个图形调用

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

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

要么

https://graph.microsoft.com/v1.0/users/{user_id}/getMemberObjects
Run Code Online (Sandbox Code Playgroud)

展开组上的成员

如果您想坚持使用v1.0端点,并且根据您的总体目标,您可以尝试以其他方式查找您想要的信息.获取组的集合并扩展成员导航属性.

https://graph.microsoft.com/v1.0/groups/?$expand=members
Run Code Online (Sandbox Code Playgroud)

  • 假设你与msgraph项目有关,你应该在这里更改文档https://developer.microsoft.com/en-us/graph/docs/overview/query_parameters,说明不支持扩展查询,我是确定它会为开发人员带来很多麻烦. (3认同)