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 - 列出用户登录的所有权限/范围

MS Graph Api 读取授予权限的用户

Microsoft Graph API - 如何通过 API 向特定用户授予对我的收件箱的访问权限

Microsoft Graph API应用程序注册问题

Office365 Graph API 抓取OneDrive/Sharepoint文件信息

MS Graph API:microsoft.graph.createLink 未创建匿名视图链接