Web services 解耦中心文件服务中的用户权限

Web services 解耦中心文件服务中的用户权限,web-services,oop,web,web-applications,microservices,Web Services,Oop,Web,Web Applications,Microservices,因此,在我的网络中,假设我有5个服务,所有这些都需要使用文件的能力。在旧世界的应用程序中,我会为每个应用程序/服务实现文件管理代码。然而,我正在考虑实现一个中央文件服务,它将位于s3/gdrive/其他存储位置之上。如果5个原始服务需要读/写文件内容,它们可以与文件服务通信,但它们只需要关注业务逻辑,而不需要考虑文件系统的所有编码复杂性 外部服务/应用程序将向文件服务传递uid以获取文件。我们还将创建一个小型web小程序,在web上公开文件服务,以便网络中的用户可以加载文件(如果他们有文件uid

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

想法