Microsoft Graph API:管理员无法列出其他用户

时间:2017-11-20 02:42:13

标签: microsoft-graph

以Office 365全局管理员身份登录,我想获取Active Directory中任何用户的相关人员列表。

我可以使用

接听我的电话
https://graph.microsoft.com:443/v1.0/users('my.address@contoso.com')/people

https://graph.microsoft.com:443/v1.0/users/{the user id}/people

https://graph.microsoft.com:443/v1.0/users('{the user id}')/people

https://graph.microsoft.com:443/v1.0/users/my.address@contoso.com/people

但是,作为在应用中获得People.Read.All同意的Office 365管理员,该呼叫仅为我自己的任何用户返回一个人(目标用户的个人资料)。如果我为我的user打电话,我会得到一个十人的列表

如果我以其他人身份登录并进行人员列表API调用,则返回预期的十个结果。

JWT范围:"scp": "Files.ReadWrite Mail.Send People.Read.All User.Read

对于非管理员,我必须将范围更改为People.Read

https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_list_people

2 个答案:

答案 0 :(得分:0)

  

该呼叫仅返回任意一个人(目标用户的个人资料)   用户,但我自己。

答案在API文档中。正如文件所说。

  

检索按其相关性排序的人物对象的集合   用户,由用户的通信决定   协作模式和业务关系。

以下请求会使与登录用户组织中的其他人最相关的人员

  

https://graph.microsoft.com:443/v1.0/users(' my.address@contoso.com')/人

可能会发生没有人与该用户相关。

如果您想要其他用户的联系人列表中的联系人列表,那么您可以参考以下内容: https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_list_contacts

<强>更新

https://developer.microsoft.com/en-us/graph/graph-explorer

我在本网站上使用了模拟账户。我用过这个查询 https://graph.microsoft.com/v1.0/users/08fa38e4-cbfa-4488-94ed-c834da6539df/people 有效。

此查询提供相同的结果

https://graph.microsoft.com/v1.0/users(&#39; 08fa38e4-cbfa-4488-94ed-c834da6539df&#39;)/人

结果相同 的 https://graph.microsoft.com/v1.0/users(&#39; MiriamG@M365x214355.onmicrosoft.com')/人/

结果相同 的 https://graph.microsoft.com/v1.0/users/MiriamG@M365x214355.onmicrosoft.com/people/

如果您仍然无法使其工作,特别是在Graph Explorer网站上。然后,这意味着根据Microsoft,该特定用户没有相关人员。

正如您所看到的,有不同的方法可以使用相同的东西。如果它有效,请尝试所有。让我知道。

答案 1 :(得分:0)

我在Graph Explorer sample tenant中没有看到这种行为。该行为似乎表明这是与auth相关的。我会尝试再次使用admin登录,并确保您已同意任何仅限管理员的范围。此外,您可以做的一件事是确定您的令牌中是否具有适当的范围decoding the JWT并检查“scp”集合。