从Azure AD获取用户信息

时间:2019-09-10 13:00:25

标签: azure azure-active-directory azure-ad-graph-api

我已经在Azure AD上创建了一个应用程序,并且已经为我的应用程序分配了User.Read.All权限。

enter image description here

话虽如此,我可以从Postman生成该应用程序的访问令牌。在生成访问令牌时,我会提供-

client_id: xxxx
client_secret: yyyy
grant_type: client_credentials
scope: https://graph.microsoft.com/.default

使用生成的访问令牌(作为标头Authorization: Bearer zzzz)向GET发送一个https://graph.microsoft.com/v1.0/users/jhon.doe@domain.com请求。这给了我错误-

403 Forbidden

{
  "error": {
    "code": "Authorization_RequestDenied",
    "message": "Insufficient privileges to complete the operation.",
    "innerError": {
      "request-id": "aaa-bbb-ccc-ddd",
      "date": "2019-09-10T12:44:46"
    }
  }
}

有人可以告诉我我在做什么错吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

您需要添加应用程序权限。 未委派权限。 在您的屏幕截图中,我们可以看到它们已被委派,这意味着它们仅适用于身份验证涉及用户的情况。 由于您使用客户端凭据身份验证,因此不涉及用户,仅涉及应用。

添加所需的权限时,应该有一个选项在“委派”和“应用程序”之间进行选择。 选择“应用程序”,选择必要的权限,然后授予它们。