我正在为开发一个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
之类的上传选项。