web-services - 解耦中央文件服务中的用户权限
问题描述
所以在我的网络中,假设我有 5 个服务,所有这些服务都需要使用文件的能力。在旧世界的应用程序中,我会为每个应用程序/服务实现文件管理代码。但是,我正在考虑实现一个中央文件服务,它将位于 s3/gdrive/其他一些存储位置的顶部。5个原始服务如果需要读/写文件内容,可以与文件服务对话,但它们只需要关心业务逻辑,而不是文件系统的所有编码复杂度。
外部服务/应用程序会将 uid 传递给文件服务以获取文件。我们还将创建一个小型 Web 小程序来在 Web 上公开文件服务,以便我们网络中的用户可以加载文件,如果他们有文件 uid。
我的问题是,您如何在文件服务中实现丰富的用户访问模型?当然,您可以确保用户在授予文件之前已登录。人们将如何处理更丰富的逻辑,例如“用户 Bob 只能访问项目 54 而不能访问项目 56 的文件”?在这里,我们有一个业务规则,它是能够将文件与应用程序分离的一个棘手问题。
以前,这将通过以下方式解决:
app4.foobar.com/project/download/54
因为你在 app4 中,所以你有上下文信息来确保 bob 得到那个文件而不是 56。
然而 :
file.foobar.com/download/362390js03-25sgsg3-a3-2525
不知道项目是什么,因为它是 app4 域模型的一部分。
想法?
解决方案
推荐阅读
- css - Flex align-items 不适用于 flex-wrap?
- nginx - nginx - proxy_pass - 两分钟后 504 网关超时
- java - 有没有办法绑定供应商
在谷歌吉斯? - javascript - 将 setTimeout() 函数从 JSDOM 更改为 node.js 默认值?
- java - 如何在 groovy 中导入类?
- javascript - JavaScript 中的数组 - 如何将扫描的值保存在数组中
- list - 根据他们的“汽车”拉出子列表
- pandas - 根据发生的重复行数替换值
- css - 在 Safari 浏览器中向下滚动时覆盖标题的图像
- c# - 使用 C# Source Generators 创建资源文件