无法获取有关微软图API的用户公司信息

时间:2017-07-07 20:41:29

标签: azure-active-directory microsoft-graph

我遇到了Microsoft Graph API的问题...目前我有一个使用公共v2端点与Microsoft / Azure进行openid集成的Web应用程序。

我们正在尝试获取已登录的用户公司名称和工作信息。官方文档说我们需要向MS Graph API发出请求。

我们正在Microft Graph Explorer上测试它,但它似乎不起作用。

我们在应用中选择了“User.Read”作为权限,然后尝试了这些端点:

https://graph.microsoft.com/v1.0/me/
https://graph.microsoft.com/v1.0/me?$select=companyName,jobTitle
https://graph.microsoft.com/v1.0/users/?$select=companyName,jobTitle

在用户/备注部分的MS官方文档(https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference)中,它清楚地说明了这一点 "On reads, only a limited number of properties are returned by default. To read properties that are not in the default set, use $select"

这个文档已经过时了吗? 我试图为开发人员提供MS支持,但他们回答说我应该在Stack Overflow上问这个... 那么开发人员可能没有官方支持? 是否真的可以从MS帐户获得公司名称和职位?

提前致谢!

修改。使用MS graph explorer屏幕截图更新问题 enter image description here enter image description here

edit.2。使用正确的编码更新屏幕截图。

此外,它是一个MS帐户而不是Azure帐户,因为我们的Web应用程序在公共v2端点上接受这两个帐户。

更新

我的目标是尝试从MSA帐户中获取Work Info部分。 enter image description here

1 个答案:

答案 0 :(得分:2)

文档是正确的,默认情况下我们只返回user properties的一个子集:

  • id
  • userPrincipalName
  • displayName
  • givenName
  • 姓氏
  • jobTitle
  • 邮件
  • mobilePhone
  • businessPhones
  • officeLocation
  • preferredLanguage

如果您需要一组不同的属性,可以使用$select查询参数请求它们。您在问题中提供的查询应该可以正常工作。例如,当我在Graph Explorer中执行https://graph.microsoft.com/v1.0/me?$select=companyName时(使用我的凭据登录后),我得到以下内容:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(companyName)/$entity",
    "companyName": "MICROSOFT"
}

有关MSA的更新

当针对Microsoft帐户(MSA)使用Microsoft Graph时,在表达的属性方面存在一些差异。由于MSA根据定义是个人/个人帐户,因此职位名称和办公地点等组织属性根本不适用。