我是多租户云SaaS开发的一部分.目前我们有大约15个微服务.我们使用mongo作为后端,每个租户的db作为租户的sepration.我们现在正试图为整个平台设计rbac.下面是我有关于相同的问题。
我应该有一个中央的authz微服务来管理我的rbac autz吗? a. 有了这个,如果authz服务失败,所有的微服务都会受到影响,而且平台很容易或无法使用。
我是否应该为每个微服务配备一辆副车作为我的autz 没有单点故障......如果某项服务的authz故障,其他服务可以继续工作。(好)每个服务都有自己的权限......(好)认证服务可以存储角色和组信息的权限,它必须达到个别服务的管理(权限CRUD)......(坏)Authz评估发生在个别服务级别。
还有其他方法吗?
谢谢Jeet
我想选择以下解决方案
API网关会做基本的认证检查(令牌有效性、租户识别等、客户端id验证等),如果任何理智性检查失败,从这里返回401
在单个的Microservice中,我们会有一个中间件拦截请求,并针对被操作的资源(实体)检查是否有正确的权限,如果没有权限,就让微服务从这里返回403。