未经管理员同意,获取用户的所有驱动器,包括来自站点的驱动器

Get all drives for a user, including drives from sites, without admin consent

我正在使用授权代码流在应用程序中将 OneDrive 作为云提供商实施,因此我可以代表用户获取访问令牌,我正在使用 Graph API SDK,其中一项要求我拥有它应该能够使用图表 API 获取用户有权访问的文档库驱动器列表,但我不知道如何在没有管理员同意的情况下执行此操作,并考虑到用户已登录只能有只读访问权限或可能是所有者,但可能没有管理权限。

我已经阅读了很多可能的解决方案,但他们都认为我可以访问站点 ID 或组 ID,并且要使用这些解决方案中的任何一个,我都需要征得管理员同意,所以问题是,我能否在未经管理员同意且事先不知道站点 ID 或组 ID 的情况下获取用户的所有驱动器列表,用户已经可以访问的驱动器?

当我在 OneDrive 中使用此用户帐户登录时,我可以看到用户在未经管理员同意的情况下有权访问的每个站点的文档库中的驱动器,我需要对 API 执行相同的操作。

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

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

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

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

Step2,我们可以使用这个API:/sites/{siteId}/drives来获取一个站点的驱动器。 siteId参数是step1的结果。

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