首页 > 解决方案 > 解耦中央文件服务中的用户权限

问题描述

所以在我的网络中,假设我有 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 域模型的一部分。

想法?

标签: web-servicesoopwebweb-applicationsmicroservices

解决方案


推荐阅读