检索所有组中的所有用户?

时间:2019-03-19 16:42:32

标签: azure-active-directory microsoft-graph

是否可以使用Microsoft Graph查看所有组和这些组内的所有用户?我在文档中没有看到类似的内容。

呼叫时:

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

我获得了有关我的网上论坛的信息,但没有看到有关这些网上论坛中用户的任何信息。

我也曾尝试致电:

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

,我收到以下错误消息:

{
  "error": {
    "code": "BadRequest",
    "message": "Resource not found for the segment 'memberOf'.",
    "innerError": {
      "request-id": "13488c8e-124f-4161-ad2b-1dc03a302dc9",
      "date": "2019-03-18T16:13:23"
    }
  }
}

不确定为什么或是否相关。

我向服务主体授予了所有Microsoft Graph权限。

2 个答案:

答案 0 :(得分:3)

我看到了两种可以使用的方法-

  1. 在群组通话中使用$expand运算符。

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

    这样,您可以在一次呼叫中获取有关组及其成员的信息。这是指向Microsoft documentation on $expand parameter

    的链接

    免责声明:用于扩展参数的Microsoft文档有一个注释,内容类似于

      

    具有从directoryObject派生的Azure AD资源,例如用户   和组,$ expand仅受beta支持,通常返回一个   扩展关系最多20个。

    尽管上面提到的使用v1.0的查询对我来说至少对具有少量组成员的Graph Explorer很有效。因此,您可能需要进一步测试。

  2. 分别查找每个组的成员

    通过这种方法,您可以使用List Members API

     GET https://graph.microsoft.com/v1.0/groups/{id}/members
    

每种API所需的权限在Microsoft Docs链接的相应文档中都有很好的描述。

答案 1 :(得分:0)

正在寻找有关@Rohit提到的20个极限问题的答案。似乎仍然存在该限制

但是,如果使用delta api,您将获得所有成员,并且响应甚至仅限于用户ID

因此使用:

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