无法获取有关 microsoft graph API 的用户公司信息

Iuj*_*ato 4 azure-active-directory microsoft-graph-api

我在使用 Microsoft Graph API 时遇到问题...目前我有一个 Web 应用程序,它使用通用 v2 端点与 Microsoft/Azure 进行 openid 集成。

我们正在尝试获取已登录的用户公司名称和工作信息。官方文档说我们需要向 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
Run Code Online (Sandbox Code Playgroud)

在用户/备注部分的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 图形资源管理器屏幕截图更新问题 在此处输入图片说明 在此处输入图片说明

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

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

更新

我的目标是尝试Work Info从 MSA 帐户中获取该部分。 在此处输入图片说明

Mar*_*eur 5

文档是正确的,默认情况下我们只返回用户属性的一个子集:

  • ID
  • 用户主体名称
  • 显示名称
  • 给定的名称
  • 职称
  • 邮件
  • 手机
  • 商务电话
  • 办公地点
  • 首选语言

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

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

关于 MSA 的更新

对 Microsoft 帐户 (MSA) 使用 Microsoft Graph 时,显示的属性有几个不同之处。由于 MSA 根据定义是个人/个人帐户,因此职位和办公地点等组织属性根本不适用。