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

时间:2016-03-29 06:43:52

标签: office365 microsoft-graph onedrive

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

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

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

可以通过向所有OneDrive站点的网站集管理员添加租户管理员来解决此问题,但这对我们来说不是一个可行的选择。

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

谢谢, 阿比

1 个答案:

答案 0 :(得分:0)

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

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

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

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

您需要使用以下权限范围之一才能访问租户中的其他用户文件:Files.Read.AllFiles.ReadWrite.AllSites.Read.All,{{ 1}}。

要查看其他用户的文件,您需要直接处理该用户的硬盘。这是通过用户Sites.ReadWrite.All完成的。例如,要查看用户驱动器根目录中的文件,请调用:

userPrincipalName

希望这会有所帮助。