Microsoft Graph 应用程序权限 - 将 read/write 限制为特定 file/folder

Microsoft Graph Application Permissions - Restrict read/write to specific file/folder

我似乎找不到任何地方可以将应用程序对 read/write 的访问限制为特定的 file/folder。

在权限范围内,它只适用于所有人。 - https://docs.microsoft.com/en-us/graph/permissions-reference

我有一个 Umbraco 网站,在提交表单时,它会写入 Sharepoint 中的文件,但是授予应用程序对所有文件的访问权限并不完全安全。如果万一网站遭到入侵,他们可能能够从组织的 Sharepoint 访问文件。

如果根本无法实现,是否有任何可能的解决方法?

目前还没有使用应用程序权限(即仅限应用程序的权限)实现此目的的好方法。

如果应用程序使用委派权限(换句话说,如果应用程序代表登录用户),则应用程序只能访问用户也有权访问的文件。这仍然不完美,但与每个网站集中的每个文件相比,它确实减少了访问范围。

出于各种原因(包括安全性和稳定性),建议应用程序使用非交互式 username/password 流程来访问 Microsoft Graph(或任何 API).

也就是说,作为最后的手段,您 可能 考虑将 this flow 与专用的非特权用户帐户一起使用 可以访问相关网站 collection/files。仅当您完全确信所讨论的应用程序高度受信任且安全时才探索此选项(因为从技术上讲,该应用程序将能够执行用户帐户可以执行的任何操作,在许多情况下,这包括一堆您不想要的东西除了非常受信任的应用程序之外,其他任何事情都可以做到。

@Philippe Signoret 为我提供了正确的解决方案。

要详细说明需要做什么以及如何解决可能出现的问题,请阅读以下内容:

  • 当前的解决方案是使用 ROPC flow,对单个用户(在我的例子中是专用的单个用户)使用委派权限来限制文件
  • 确保检查您门户中设置的权限并授予任何尚未授予的权限
  • 您需要 use/update 您的代码才能使用 Username Password Authentication
  • 同时使用 MS Graph Explorer and Postman 来测试您的连接和通话
  • 为了进一步调试它在一个而不是另一个上工作的地方,复制并粘贴令牌并使用 https://jwt.io/ 进行比较,因为这将区分权限集之间的差异(因为 MS Graph Explorer 将拥有更多权限如果你允许的话,我完全忘记了)