Microsoft Graph API:权限不足,无法完成操作
Posted
技术标签:
【中文标题】Microsoft Graph API:权限不足,无法完成操作【英文标题】:Microsoft Graph API: Insufficient privileges to complete the operation 【发布时间】:2017-08-03 12:55:29 【问题描述】:问题
通过 ADAL 为 Microsoft Graph API 生成访问令牌时,Graph API 不接受该令牌。
"odata.error":
"code": "Authorization_RequestDenied",
"message":
"lang": "en",
"value": "Insufficient privileges to complete the operation."
应用程序做什么
应用程序应读取租户的所有用户。该应用程序配置为具有User.Read.All
权限。应用程序同意由租户授予,用户应从中读取 - 应用程序确实以权限显示在 Azure 门户中。
到目前为止我所拥有的
该应用程序几天前工作了,我什么也没做。其他应用程序使用相同的方式来验证工作。
重新创建到 AAD 应用程序没有帮助 重新安装 NuGet 包没有帮助 将权限从 login.windows.net 更改为 login.microsoftonline.com 没有帮助 令牌生成不适用于客户端机密,也不适用于证书 解码生成的 JWT 令牌显示操作所需的权限【问题讨论】:
JWT 具体显示哪些权限?因为如果他们在那里,如果他们是正确的,它应该可以工作。 JWT 令牌显示:“Group.Read.All”和“User.Read.All”。我知道,它应该可以工作......微软的一张票已经打开了:-) 您调用的 URL 是https://graph.microsoft.com/v1.0/users
,而 JWT 中的 aud
声明是 https://graph.microsoft.com
对吧?
是的,这是正确的。
好吧,那我没主意了。希望你的票能很快得到回应:)
【参考方案1】:
解决方案
看来,microsoft 的文档不正确。列出用户需要Directory.Read
权限。
更新
根据微软的说法,不清楚这是 Graph API 中的错误还是文档有误。 一个问题在 Github here 开放。
更新 2
此问题已在 2017 年 5 月的 Graph API 更新中得到修复。
【讨论】:
现在似乎解决了(问题也在 GitHub 上关闭)。 :) 我在哪里可以从 Azure 门户提供Directory.Read
权限?我没有在 IAM 部分看到它们。以上是关于Microsoft Graph API:权限不足,无法完成操作的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Graph API - 列出用户登录的所有权限/范围
Microsoft Graph API - 如何通过 API 向特定用户授予对我的收件箱的访问权限