对web应用程序使用具有授权的对象存储



我正在为开发一个web(前+后(应用程序做出贡献,该应用程序使用OpenID Connect(带auth0(进行身份验证&批准

网络应用程序需要身份验证才能访问一些公共&一些受限制的信息(限制是每个用户的,或者取决于某些与组相关的规则(。

我们希望为.pdf等文档提供上传/下载功能,并且我们已经为公共文档实现了minIO(非常类似于AWS S3(。

然而,我们不能把你的头包裹在限制访问的文件周围:

  • 我们是否应该在minIO上实现OIDC,让用户直接访问bucket,但使用临时访问令牌,允许细粒度授权策略
  • 还是后台应该是唯一一个拥有minIO密钥并作为对象存储和用户之间的中介

在这里寻找良好的实践,提前感谢您的帮助。

有趣的问题,因为PDF文档是web静态内容,除非它们包含敏感数据。我的目标是将安全的(API(和非安全的(web(问题分开。

未获得的资源

如果不涉及安全性,那么从前端连接到铲斗是有意义的。bucket内容还可以分发到内容交付网络,以获得最佳的全局性能。PDF可以被视为一种网络资源。

安全资源

如果PDF文档包含敏感数据,则需要将这些请求视为API请求。API应该接收访问令牌,并通过作用域和声明强制访问文档。

您可以为此使用Documents API。实现可能仍然连接到一个bucket,但这可能是浏览器无法访问的不同bucket

摘要

如果从URL设计的角度考虑,这种类型的解决方案通常更清晰。例如,前端可能有两个文档URL:

  • 公共文档
  • secureDocs

默认情况下,我会将用户上传的文档视为安全文档,除非他们选择了make public之类的上传选项。

最新更新