Microsoft Graph Api:没有足够的权限来完成操作

时间:2018-05-29 14:59:00

标签: json microsoft-graph onedrive

我尝试使用Microsoft Graph从OneDrive下载文件。我目前正处于测试阶段,尚未编写任何代码。

这是我到目前为止所做的:

  1. 通过https://apps.dev.microsoft.com
  2. 创建并注册了一个应用
  3. 生成一个秘密,启用隐式流程
  4. 为其提供以下Microsoft Graph Permissions列表:

    已委派Files.ReadWrite.Alloffline_accessGroup.ReadWrite.AllDirectory.ReadWriteAllUser.ReadWriteAll

    申请Directory.ReadWrite.AllFiles.ReadWrite.AllGroup.ReadWrite.AllUser.ReadWrite.All

    1. 使用范围为codeoffline_access的{​​{1}}流程,获取代码,然后获取代码。

    2. 使用此令牌通过Files.ReadWrite.All驱动器下载文件效果很好(/me),但当我尝试下载或只是查询其他用户时,我收回了权限不足的错误。

  5. 致电/v1.0/me/drive/items/itemid/content获得回复:

    https://graph.microsoft.com/v1.0/users

    添加用户ID时会发生同样的情况。当我要求获得用户的设备时,我得到了一个未找到的""响应。

    我看到类似问题的一些答案,说我应该通过Azure门户将我的应用程序的权限添加到Azure Active Directory,但我的应用程序仅列在"企业应用程序"部分,我在#34; app注册"上看不到它我可以添加权限的部分,在企业应用程序部分,我无法添加任何权限,只能搜索。

    注意:我的用户ID是Azure门户中的全局管理员。该用户也是创建并拥有该应用程序的用户。

    知道我在这里可能缺少什么吗?

    由于

    修改

    我能够取得一些进展,我尝试通过Azure门户而不是应用程序门户创建应用程序。现在它显示在应用程序注册页面中,因此我可以为其添加权限。

    所以现在我能够查看所有用户,但是,当我尝试查看他们的驱动器时,我得到了#34;未找到"响应:

    调用{ "error": { "code": "Authorization_RequestDenied", "message": "Insufficient privileges to complete the operation.", "innerError": { "request-id": "cee06586-12af-4768-9135-b9709d7ecb5d", "date": "2018-05-29T14:45:48" } } } 会返回响应:

    https://graph.microsoft.com/v1.0/users/userid/drive

2 个答案:

答案 0 :(得分:1)

致电/users要求您至少拥有User.ReadBasic.AllUser.Read.All权限。由于您仅请求了Files.ReadWrite.All,因此您无法通过其他用户的个人资料获得足够的访问权限。

尝试反对使用范围:

User.Read.All+Files.ReadWrite.All+offline_access

答案 1 :(得分:0)

好的,我设法通过在没有用户的情况下询问令牌来解决这个问题: https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_service。 它具有所有必需的权限,我可以下载任何我需要的文件。感谢Marc和Juunas帮我解决这个问题。