无论查询中的ID如何,GET用户端点始终返回MY用户数据

时间:2017-09-22 16:18:42

标签: microsoft-graph

我正在查询Microsoft Graph API以获取OneDrive文件,例如:

GET https://graph.microsoft.com/v1.0/me/drive/root/delta

返回的lastModifiedBy资源中有一个driveItem方面,但它只包含displayNameid。我需要基于该ID的用户电子邮件。

所以我尝试了these docs的端点,即:

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

具体来说,我尝试过这样的事情:

GET https://graph.microsoft.com/v1.0/users/45aa3379f269b493

但它总是返回完全相同的数据集(无论我传入哪个id),这是来自https://graph.microsoft.com/v1.0/me端点的数据。

我的范围如下:

offline_access
files.read.all
user.read
user.readbasic.all
people.read
contacts.read
contacts.read.shared

有没有理由说这个端点没有返回我传递的特定用户ID的数据?或者是否有另一种方法可以根据lastModifiedBy中提供的信息获取用户的电子邮件?

1 个答案:

答案 0 :(得分:1)

查看您发布的JSON,我发现您的文件使用id格式xxxxxxxxxxxxxxxx!xxx(请注意!)。这告诉我这是一个个人Microsoft帐户(MSA)。

由于这是一个Microsoft帐户,因此没有"用户"超越自己。因此,图表将忽略您提供的任何id,并始终返回您自己的个人资料(/me)。要使用/users,您需要连接到Azure Active Directory租户。

您无法提取其他MSA / Outlook.com帐户的个人资料信息。如果得到支持,它将在MSA隐私/安全性中引入一个不可接受的漏洞。