【发布时间】:2019-09-10 13:00:25
【问题描述】:
我在 Azure AD 上创建了一个应用程序,并为我的应用程序分配了User.Read.All 权限。
话虽如此,我可以从 Postman 为应用程序生成访问令牌。生成访问令牌时我提供 -
client_id: xxxx
client_secret: yyyy
grant_type: client_credentials
scope: https://graph.microsoft.com/.default
使用生成的访问令牌(作为标头Authorization: Bearer zzzz)我向https://graph.microsoft.com/v1.0/users/jhon.doe@domain.com 发送GET 请求。这给了我错误-
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"
}
}
}
谁能告诉我我做错了什么?
提前致谢。
【问题讨论】:
-
检查令牌例如jwt.ms。应该有一个
roles声明,其中包含您分配给应用程序的应用程序权限。 -
@juunas 还有很多其他信息,但我在那里看不到任何角色。没有任何权限相关信息。
-
您正在查看您在响应中获得的 access_token?在这种情况下,您尚未为您的应用程序分配/授予应用程序权限。
-
但是转到应用程序的 API 权限区域,我可以看到
User.Read.All权限已分配给我的应用程序。这不是我看到分配权限的地方吗? -
您是否也授予权限?您也需要成为管理员才能执行此操作,因为它是应用程序权限(在某些情况下,普通用户也可以同意委派权限)。
标签: azure azure-active-directory azure-ad-graph-api