我尝试使用Microsoft Graph从OneDrive下载文件。我目前正处于测试阶段,尚未编写任何代码。
这是我到目前为止所做的:
为其提供以下Microsoft Graph Permissions列表:
已委派:Files.ReadWrite.All
,offline_access
,Group.ReadWrite.All
,Directory.ReadWriteAll
,User.ReadWriteAll
申请:Directory.ReadWrite.All
,Files.ReadWrite.All
,Group.ReadWrite.All
,User.ReadWrite.All
使用范围为code
和offline_access
的{{1}}流程,获取代码,然后获取代码。
使用此令牌通过Files.ReadWrite.All
驱动器下载文件效果很好(/me
),但当我尝试下载或只是查询其他用户时,我收回了权限不足的错误。
致电/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
答案 0 :(得分:1)
致电/users
要求您至少拥有User.ReadBasic.All
或User.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帮我解决这个问题。