Office365 如何让管理员访问所有用户的文件';s OneDrive

Office365 如何让管理员访问所有用户的文件';s OneDrive,office365,microsoft-graph-api,onedrive,Office365,Microsoft Graph Api,Onedrive,我是Office 365部署的租户管理员。我们的内部系统需要访问所有OneDrive站点。我们正在使用我的租户管理凭据获取OAuth令牌,并尝试使用带有该OAuth令牌的SharePoint/OneDrive REST API从所有OneDrive站点获取文件 使用租户管理员的OAuth令牌,我们只能获取租户管理员拥有的文件或与租户管理员共享的文件。我们无法从其他用户的OneDrive获取文件 与Microsoft Graph API的结果相同。我们只能获取租户管理员拥有的文件或与租户管理员共享

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

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

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

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

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

谢谢,
Abhi

您可以使用委托权限或应用程序权限来执行此操作。您选择哪一个取决于您的应用程序将如何运行以及您正在使用的OAUTH授权流

如果您的应用程序与交互用户一起运行(即,当它运行时,您坐在它前面),则您希望使用委派的权限和

如果您的应用程序作为服务运行(即在后台运行),则您需要使用应用程序权限和

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

要访问租户中其他用户的文件,您需要以下权限范围之一:
文件.Read.All
文件.ReadWrite.All
站点.Read.All
站点.ReadWrite.All

为了查看其他用户的文件,您需要直接寻址该用户的驱动器。这是通过用户的
userPrincipalName
完成的。例如,要查看用户驱动器根目录中的文件,可以调用:

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

希望这有帮助

我认为这个答案及其评论会对你有所帮助。它基本上说,你的应用程序应该拥有“所有网站集中的读写项目”权限,之后你可以使用特定于API的方式访问其他用户的文件。在OneDrive中,您可以使用
https://{tenant}-my.sharepoint.com/_-api/v2.0/drives/{user-email}
url前缀访问用户数据,在sharepoint中,您可以使用
https://{tenant}-my.sharepoint.com/personal/{user-specific part}/_-api/web/
为目标用户填写manager属性进行检查了吗?属于“managed by”属性的用户即使在该用户离开后也可以访问。。。