【问题标题】:MSFT Graph API for OneDrive (restrict app to only certain users, groups or folders)?OneDrive 的 MSFT Graph API(将应用程序限制为仅限某些用户、组或文件夹)?
【发布时间】:2022-06-10 23:16:57
【问题描述】:

我正在创建一个服务器守护进程,用于将文件从 OneDrive 自动摄取到专用服务器。这是一个通过“cron”作业运行的无头(无用户)应用程序。所以我对 OATH 协议的阅读表明我们不能使用 /authorize 或 /adminconsent 端点,因为它们要求重定向 uri(这里没有人可以回复)。如果我错了,请纠正我。

在 OneDrive 中,我们创建了一个租户(clientID 和 secretID)并授予它(不是委托,因为没有用户)但 Microsoft Graph 和 File.Read.All 的应用程序级别权限

这一切正常,我们通过调用图形服务器站点中的租户/令牌端点来执行 2-legged OAUTH(在 MSFT 中称为 OAuth 2.0 客户端凭据流)来授权和获取不记名令牌。获取文件也没有问题。

除了守护程序现在可以读取我们系统中的任何 OneDrive 文件夹。不是很好的安全实践。

有没有办法设置访问令牌,使其仅限于 OneDrive 中的某些组或用户文件夹?

我看到了一个 SO question,它提出了类似的请求: Graph API - Automate Getting Emails (Delegated Permissions)

但我在尝试使用建议的解决方案时确实看到了很多警告: ROPC = OAuth 2.0 资源所有者密码凭证

https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc

那么是否有一些首选方式来限制机器人/代理(即 ACL?)

【问题讨论】:

  • 依我的拙见,onedrive中的文件夹可以设置为共享给特定用户,然后我们可以在azure ad中创建一个组并将所有这些用户添加到该组中,然后由用户set azure ad app can only be accessed这个组。
  • 这个想法可以概括为:在你自己的应用程序中,它提供了一个登录模块并允许用户登录,但你的应用程序也验证了用户角色(角色在azure ad app中定义)然后那些具有正确角色的人可以登录您的应用程序,然后您的应用程序生成访问令牌以调用图形 api 来处理 onedrive。您的 onedrive 还设置了验证以确保只有这些用户可以编辑共享文件夹....
  • 我的摄取文件应用程序是一个机器人。没有用户。它从 azure 外部的服务器按计划运行。
  • no usercreated a server daemon process,所以如果你想让你的 bot 访问图形 api,那么你只能使用客户端凭证流来生成访问令牌,这个后续不需要用户登录。在这种情况下,您的机器人能否知道现在谁正在尝试通过机器人访问图形 API?如果没有,那么restrict this to only certain users只能由onedrive完成(共享文件夹给特定用户)。但是我不确定它是否可以工作,我之前没有测试过...如果您的机器人不知道谁在进行操作,那么 onedrive 怎么知道谁在尝试访问它?...对不起先生。
  • @TinyWang 我重写了这个问题,我认为它回答了你的问题并使问题更清晰。

标签: microsoft-graph-api onedrive


猜你喜欢
  • 1970-01-01
  • 2021-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-02
  • 2017-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多