首页 文章

如何获得所有用户的OneDrive文件的管理员访问权限

提问于
浏览
12

我是Office 365部署的租户管理员 . 我们的内部系统需要访问所有OneDrive站点 . 我们使用我的租户管理员凭据获取OAuth令牌,并尝试使用带有该OAuth令牌的SharePoint / OneDrive REST API从所有OneDrive站点获取文件 .

使用租户管理员的OAuth令牌,我们只能获取租户管理员拥有的文件或与租户管理员共享的文件 . 我们无法从其他用户的OneDrive获取文件 .

与Microsoft Graph API也有相同的结果 . 我们只能获取租户管理员拥有的文件或与租户管理员共享的文件 . 我们无法从其他用户的OneDrive获取文件 .

一个解决方案是将所有OneDrive站点的租户管理员添加到网站集管理员,但这对我们来说不是一个可行的选择 .

是否有任何API或任何其他方式通过使用OneDrive管理员或租户管理员凭据获取所有OneDrive用户的文件?

谢谢,阿比

1 回答

  • 0

    您可以使用Delegated或Application权限执行此操作 . 您选择哪一个取决于您的应用程序的运行方式以及您正在使用的OAUTH Grant Flow .

    如果您的应用程序与交互式用户一起运行(即您在运行时坐在它前面),那么您希望使用委派权限和Authorization Code Grant Flow .

    如果您的应用程序作为服务运行(即它在后台运行),那么您将需要使用应用程序权限和Client Credentials Grant Flow .

    无论您选择哪种权限模型,权限范围和 endpoints 都将保持不变 .

    您在租户中的'll need one of the following permission scopes in order to access other user'文件: Files.Read.AllFiles.ReadWrite.AllSites.Read.AllSites.ReadWrite.All .

    为了直接看到另一个用户's files, you need to address that user'的驱动器 . 这是通过用户的 userPrincipalName 完成的 . 例如,要查看用户驱动器根目录中的文件,您可以调用:

    https://graph.microsoft.com/v1.0/users/{userPrincipalName}/drive/root/children
    

    希望这可以帮助 .

相关问题