在应用程序模式下通过 Microsoft Graph 访问 AD 用户 OneDrive for Businesses
Access AD users OneDrive for Businesses through Microsoft Graph in app-mode
当 运行 在应用程序模式下时,是否可以使用 Microsoft Graph API 访问用户的 OneDrive for Business 文件夹和文件?
我已经在 Azure AD 中成功配置了应用程序(使用证书等),我已经能够获得不记名令牌并且我还成功地从某些端点请求了数据。但是:我无法使用用户 OneDrive for Business 文件夹或文件。
在其他情况下,我一直在使用服务帐户(具有完全管理权限的用户帐户)对用户 OneDrive 中的文件夹和文件执行 CRUD 操作,但这需要我检查(并设置)权限任何 CRUD 操作之前的所有文件夹和文件,并且还会在文件和文件夹权限设置中向用户公开服务帐户。在应用程序模式下使用图表 API 我假设所有这些问题都消失了吗?
我有一些有效的例子,更重要的是,还有一些无效的例子:
graph.microsoft.com/v1.0/用户
Returns 没有问题的用户列表。
graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER
Returns 有关指定用户的信息没有问题。
graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER/驱动器
Returns有关指定用户驱动器的信息没有问题。
graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER/drive/root
Returns 有关指定用户根驱动器的信息,没有问题。
graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER/drive/root/children
return 有关指定用户的信息未按预期驱动 root 子级。
graph.microsoft.com/v1.0/drives/UPN-PLACEHOLDER/root/children
return 有关指定用户的信息未按预期驱动 root 子级。
graph.microsoft.com/v1.0/drives/DRIVE-ID-PLACEHOLDER/root/children
return 有关指定用户的信息未按预期驱动 root 子级。
其他说明:
- 如果我使用普通用户帐户和 «/me» 关键字登录,或者如果我使用服务帐户(具有完全管理权限)和其他用户帐户的 UPN,但在应用程序中,所有这些端点都会按预期工作- 带有 UPN 的模式所有请求比根更深层次的信息(即 root/children 或特定文件夹)returns empy.
- 我们尝试过同时使用 SDK 抽象和纯 HTTP 请求,但均未成功。
- 我们尝试了很多不同的应用程序权限组合,目前所有权限都已开启
你不能这样做的原因是我们还没有公开任何访问 OneDrive 文件的仅限应用程序的权限。这是我们正在努力并希望很快公开的事情。请继续关注我们的 blog posts,我们会在添加此功能时通知大家。
希望这对您有所帮助,
我正在使用 AAD v2,在 Microsoft 应用注册门户中注册了该应用。一旦管理员通过包含租户 ID 和客户端 ID 的应用许可 url 同意该应用,该应用就可以使用 App Mod 权限访问所有用户驱动器和文件。所以你的场景现在是可能的,只是想添加这些信息,因为接受的答案似乎已经过时了。
当 运行 在应用程序模式下时,是否可以使用 Microsoft Graph API 访问用户的 OneDrive for Business 文件夹和文件?
我已经在 Azure AD 中成功配置了应用程序(使用证书等),我已经能够获得不记名令牌并且我还成功地从某些端点请求了数据。但是:我无法使用用户 OneDrive for Business 文件夹或文件。
在其他情况下,我一直在使用服务帐户(具有完全管理权限的用户帐户)对用户 OneDrive 中的文件夹和文件执行 CRUD 操作,但这需要我检查(并设置)权限任何 CRUD 操作之前的所有文件夹和文件,并且还会在文件和文件夹权限设置中向用户公开服务帐户。在应用程序模式下使用图表 API 我假设所有这些问题都消失了吗?
我有一些有效的例子,更重要的是,还有一些无效的例子:
graph.microsoft.com/v1.0/用户
Returns 没有问题的用户列表。graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER
Returns 有关指定用户的信息没有问题。graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER/驱动器
Returns有关指定用户驱动器的信息没有问题。graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER/drive/root
Returns 有关指定用户根驱动器的信息,没有问题。graph.microsoft.com/v1.0/users/UPN-PLACEHOLDER/drive/root/children
return 有关指定用户的信息未按预期驱动 root 子级。graph.microsoft.com/v1.0/drives/UPN-PLACEHOLDER/root/children
return 有关指定用户的信息未按预期驱动 root 子级。graph.microsoft.com/v1.0/drives/DRIVE-ID-PLACEHOLDER/root/children
return 有关指定用户的信息未按预期驱动 root 子级。
其他说明:
- 如果我使用普通用户帐户和 «/me» 关键字登录,或者如果我使用服务帐户(具有完全管理权限)和其他用户帐户的 UPN,但在应用程序中,所有这些端点都会按预期工作- 带有 UPN 的模式所有请求比根更深层次的信息(即 root/children 或特定文件夹)returns empy.
- 我们尝试过同时使用 SDK 抽象和纯 HTTP 请求,但均未成功。
- 我们尝试了很多不同的应用程序权限组合,目前所有权限都已开启
你不能这样做的原因是我们还没有公开任何访问 OneDrive 文件的仅限应用程序的权限。这是我们正在努力并希望很快公开的事情。请继续关注我们的 blog posts,我们会在添加此功能时通知大家。
希望这对您有所帮助,
我正在使用 AAD v2,在 Microsoft 应用注册门户中注册了该应用。一旦管理员通过包含租户 ID 和客户端 ID 的应用许可 url 同意该应用,该应用就可以使用 App Mod 权限访问所有用户驱动器和文件。所以你的场景现在是可能的,只是想添加这些信息,因为接受的答案似乎已经过时了。