Microsoft graph api 以管理员身份访问所有用户驱动器
我正在构建一个使用Microsoft Graph的本机应用程序。 我想通过管理员帐户读取组织中所有用户的OneDrive中的所有文件 我正在使用(Azure AD 2.0)OAUTH授权工作流来获取授权代码。之后,我获得访问令牌和刷新令牌 但是,当我尝试访问任何用户的驱动器时:Microsoft graph api 以管理员身份访问所有用户驱动器,microsoft-graph-api,onedrive,Microsoft Graph Api,Onedrive,我正在构建一个使用Microsoft Graph的本机应用程序。 我想通过管理员帐户读取组织中所有用户的OneDrive中的所有文件 我正在使用(Azure AD 2.0)OAUTH授权工作流来获取授权代码。之后,我获得访问令牌和刷新令牌 但是,当我尝试访问任何用户的驱动器时: graphClient.Drives[”amit@csys.onmicrosoft.com“].Root.Request().GetAsync(); //其中graphClient是GraphServiceClient的
graphClient.Drives[”amit@csys.onmicrosoft.com“].Root.Request().GetAsync();
//其中graphClient是GraphServiceClient的实例
我得到:
一般免疫
消息:服务返回意外异常
使用调用堆栈:
在Microsoft.Graph.HttpProvider.d_u19.MoveNext()上
---来自引发异常的上一个位置的堆栈结束跟踪---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()中
在Microsoft.Graph.BaseRequest.d_u34.MoveNext()中
---来自引发异常的上一个位置的堆栈结束跟踪---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()中
在Microsoft.Graph.BaseRequest.d_u32`1.MoveNext()中
---来自引发异常的上一个位置的堆栈结束跟踪---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()中
在Microsoft.Graph.DriveItemRequest.d_u6.MoveNext()中
---来自引发异常的上一个位置的堆栈结束跟踪---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()中
在OneDrive_Writer.OneDrive Writer.d_u9d.MoveNext()中
管理员是否有办法访问所有其他用户的驱动器文件
注意:当我以管理员身份登录时,我可以访问管理员的OneDrive帐户。在您的示例中,驱动器索引器需要的是驱动器ID,而不是upn 假设您的权限设置正确,并且您拥有有效的访问令牌, 你会这样做的
// Access the users in the org.
var users = await graphClient.Users.Request().GetAsync();
// Get the drives for a user.
var drives = await graphClient.Users[users[0].Id].Drives.Request().GetAsync();
// Get the specific drive metadata for a user
var drive = await graphClient.Drives[drives[0].Id].Request().GetASync();
您请求了哪些范围?我已设置了所有委派权限(总共30个),同时包括完全站点控制、FIle.ReadWrite.all等。最初我认为这将是一个权限问题,但我通过设置所有可能的权限来解决,但没有成功。