未经管理员同意,为用户获取所有驱动器,包括网站驱动器

时间:2018-09-06 05:59:31

标签: c# microsoft-graph onedrive

我正在使用授权代码流在应用程序中将OneDrive实现为云提供程序,因此我可以代表用户获取访问令牌,而我正在使用Graph API SDK,这是我的要求之一具有它应该能够获取用户使用Graph API可以访问的文档库驱动器的列表,但是我不知道如何在未经管理员同意的情况下做到这一点,并且考虑到登录的用户只能拥有只读访问权限,或者可能是所有者,但可能不是管理权限。

我已经阅读了很多可能的解决方案,但是所有人都认为我可以访问站点ID或组ID,并且要使用这些解决方案中的任何一种,我都需要征得管理员同意权限,因此问题是,我是否可以获取用户驱动器的所有列表,用户已经拥有访问权限的驱动器,而无需管理员同意,也无需事先知道站点ID或组ID?

当我在OneDrive中使用该用户帐户登录时,可以看到用户未经管理员同意即可访问的每个站点的文档库中的驱动器,我需要对API进行同样的操作。

1 个答案:

答案 0 :(得分:0)

根据您的描述,我假设您要列出文档库。

如果我们使用管理员身份登录,则可以使用以下步骤从站点获取驱动器。

第一步,我们可以使用API​​:/sites/root来获取根目录中的所有站点。

我们可以获取根目录中每个站点的ID。

Step2,我们可以使用以下API:/sites/{siteId}/drives将驱动器放在一个站点中。 siteId参数是步骤1中的结果。

但是,用户无权访问租户的根站点。所以看起来这是一个合法的回应。如果不访问根站点,则用户将无法查询该根站点的任何信息。