首页 > 解决方案 > 多租户微服务中的 RBAC

问题描述

我是多租户云 SaaS 开发的一部分。目前我们有大约 15 个微服务。我们使用 mongo 作为后端,每个租户使用 db 作为租户分离。我们现在正在尝试为完整的平台设计 rbac。以下是我对此提出的问题。

  1. 我应该有一个中央 authz 微服务来管理我的 rbac autz 吗?一个。这样,如果 authz 服务失败,所有微服务都会受到影响,并且平台容易或无法使用。(坏) b。服务将存储跨微服务的所有资源的角色/权限。(好) c.对于 api gw post auth 的每个请求,都将转到 authz 并且在调用微服务之前它可以被拒绝。(好)

  2. 我是否应该为每个微服务配备一个侧车作为我的 autz 没有单点故障...如果某些服务的 authz 失败,其他服务可以继续工作。(好)每个服务都将拥有其权限 ..(好)身份验证服务可以存储角色和组信息,以获得它必须访问单个服务进行管理的权限(权限 CRUD)。(坏)身份验证评估发生在单个服务级别。(不确定)

还有其他方法吗?

谢谢吉特

标签: authorizationmicroservicesmulti-tenantsaasrbac

解决方案


我想选择以下解决方案

  1. API 网关进行基本身份验证检查(令牌有效性、租户标识等、客户端 ID 验证等),如果任何健全性检查失败,则从此处返回 401

  2. 在单个微服务中,我们将有一个中间件来拦截请求并检查正在操作的资源(实体)是否具有正确的权限,以防缺少权限,让微服务从这里返回 403。


推荐阅读