2017-07-14 66 views
1

在Outlook中,我可以查找组织中的所有用户,包括电话号码,地址等。 我想使用EWS我可以做同样的事情... 使用Azure AD图形(https://graph.windows.net)我可以获得所有(!)属性所有(GAL)用户以及 - 没有选择一个较小的属性子集...为什么Microsoft Graph更具限制性?

在Microsoft Graph(https://graph.microsoft.com)我可以得到所有用户(GAL),但不是(所有)属性,如电话号码,标题等没有管理员允许访问...为什么这是不同的(更受限制)比其他API?

ex。许可; Directory.AccessAsUser.All(访问目录作为登录用户)

  • 在微软图形用户无法同意
  • 在Azure的AD图 - 并不需要管理员

使用/ me/people(在预览中)Microsoft Graph中,我可以获取组织中许多用户的所有属性 - 但不是全部。我可能会得到一些用户,我的同事最近不能(为什么? - 它仍然是越野车)

每个人都告诉你使用微软图形,但它似乎比旧的API

回答

0

我更受限制有兴趣了解更多关于你所描述的限制性的内容。在大多数情况下(就Directory/Azure AD而言),Microsoft Graph公开了与Azure AD Graph相同的权限模型保护的相同数据。请参阅https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference#user-permissions了解更多有关可用用户权限及其允许内容的详细信息。

使用Microsoft Graph可能会看到的一个事实是,当您查询v1.0中设置的/ users实体(即GET https://graph.microsoft.com/v1.0/users)时,默认情况下Microsoft Graph将只返回一组关键用户属性。 user实体类型非常大,并且一直在增长 - 它有40多个属性和25个导航属性。序列化和反序列化大型对象,尤其是分页集合对于客户端和Microsoft Graph服务而言既昂贵又非高性能。因此我们返回一个默认集合。如果你想要其他属性,那么你需要使用$select参数。例如:GET https://graph.microsoft.com/v1.0/users?$select=displayName,givenName, officeLocation,postalCode,state。这里记录如下:https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/user_get例如,但我们也正在对该领域的文档进行一些改进。如果您想查看Microsoft Graph user实体类型公开的完整属性集,请查看此处的架构:https://graph.microsoft.com/v1.0/ $ metadata。

[注:$ select在Azure AD Graph API中不受支持,因此我们总是返回全集]。

人员API - ../me/people是关于您(登录用户)最常与之通信的人员 - 它也可能包含组织以外的人员。因此,对于每个用户(甚至是同事)来说,人员列表可能是特定的和不同的。它也不是组织中的完整用户目录。

我还想深入了解为什么您会看到同意方面的差异 - Directory.AccessAsUser.All总是需要管理员同意Web应用程序(适用于Microsoft和Azure AD Graph)。

希望这有助于

+1

同时使用图形探索者,我可以更多的用户和“非空的属性在Azure的AD图Explorer中,微软图形浏览器...我不能使用Microsoft图表来获得电话号码,职称等,但这些属性填写在Azure AD Graph Explorer中... 默认设置(包含11个属性)实际上包含我目前需要的所有属性。它返回信息; id,displayName,givenName,mail,surname和userprincipalname - 而businessPhones,jobTitle,mobilePhone,officeLocation(和preferredLangiage)对于所有用户都是空的。 –

+0

我们不会使用/ people API,但它确实给了我们缺少的属性...似乎只返回最多1000条记录 - 但是那1000(公关用户)nomatter我正在使用什么过滤器,还是它是公关。过滤器(?) –

+0

我在Azure门户中获得了“Azure AD only applications”(Web应用程序/ API)。在“必需的权限”部分,我添加了“Microsoft Graph”和“Windows Azure Active Directory(Microsoft.Azure.ActiveDirectory)”的访问权限。在'代理权限'部分,我看到以下内容: * Microsoft Graph:'作为登录用户的访问目录'具有绿色图标,并且'需要管理员'的'是' * Windows Azure AD:'Access作为登录用户的目录'有一个红色的图标和'不'作为'需要管理员' –

相关问题