在应用程序模式下通过Microsoft Graph访问AD用户OneDrive for Business

时间:2016-07-04 12:40:40

标签: azure onedrive microsoft-graph

在app-mode下运行时,是否可以使用Microsoft Graph API访问用户的OneDrive for Business文件夹和文件?

我已经在Azure AD中成功配置了应用程序(带有证书等),我已经能够获得持有者令牌,并且我也成功地从某些端点请求了数据。但是:我无法使用用户OneDrive for Business文件夹或文件。

在其他情况下,我一直在使用服务帐户(具有完全管理权限的用户帐户)对用户OneDrives中的文件夹和文件执行CRUD操作,但这需要我检查(和设置)所有文件夹的权限和任何CRUD操作之前的文件,并在服务器文件和文件夹权限设置中公开服务帐户。在应用程序模式下使用Graph API我会假设所有这些问题都消失了吗?

我有一些关于什么有用的例子,更重要的是,有一些不做的事情:

  • graph.microsoft.com/v1.0/users
    返回没有问题的用户列表。

  • graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER
    返回有关指定用户的信息而不会出现问题。

  • graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER/drive
    返回有关指定用户驱动器的信息,没有问题。

  • graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER/drive/root
    返回有关指定用户驱动器根目录的信息,没有问题。

  • graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER/drive/root/children
    不按预期返回有关指定用户驱动根子项的信息。

  • graph.microsoft.com/v1.0/drives/UPN-PLACEHOLDER/root/children
    不按预期返回有关指定用户驱动根子项的信息。

  • graph.microsoft.com/v1.0/drives/DRIVE-ID-PLACEHOLDER/root/children
    不按预期返回有关指定用户驱动根子项的信息。

其他说明:

  • 如果我使用常规用户帐户和«/ me»关键字登录,或者我使用服务帐户(具有完全管理权限)和UPN到其他用户帐户,但是在app-mode中,所有这些端点都按预期工作使用UPN,所有请求获取比root更深层次的信息(即root / children或特定文件夹)返回empy。
  • 我们尝试过使用SDK抽象和纯HTTP请求都没有成功。
  • 我们尝试了很多不同的app权限组合,目前已经开启了所有权限

2 个答案:

答案 0 :(得分:2)

您无法执行此操作的原因是我们尚未公开任何仅限应用程序访问OneDrive文件的权限。这是我们正在努力的事情,并希望很快揭露。请继续关注我们blog posts,我们会让人们知道何时添加此功能。

希望这有帮助,

答案 1 :(得分:0)

我正在使用AAD v2,在Microsoft App注册门户中注册了该应用程序。一旦管理员通过包含租户ID和客户端ID的应用程序同意URL同意该应用程序,该应用程序就可以访问具有App Mod权限的所有用户驱动器和文件。所以你的场景现在是可能的,只是想添加那些信息,因为接受的答案似乎已经过时了。