authorization - 多租户微服务中的 RBAC
问题描述
我是多租户云 SaaS 开发的一部分。目前我们有大约 15 个微服务。我们使用 mongo 作为后端,每个租户使用 db 作为租户分离。我们现在正在尝试为完整的平台设计 rbac。以下是我对此提出的问题。
我应该有一个中央 authz 微服务来管理我的 rbac autz 吗?一个。这样,如果 authz 服务失败,所有微服务都会受到影响,并且平台容易或无法使用。(坏) b。服务将存储跨微服务的所有资源的角色/权限。(好) c.对于 api gw post auth 的每个请求,都将转到 authz 并且在调用微服务之前它可以被拒绝。(好)
我是否应该为每个微服务配备一个侧车作为我的 autz 没有单点故障...如果某些服务的 authz 失败,其他服务可以继续工作。(好)每个服务都将拥有其权限 ..(好)身份验证服务可以存储角色和组信息,以获得它必须访问单个服务进行管理的权限(权限 CRUD)。(坏)身份验证评估发生在单个服务级别。(不确定)
还有其他方法吗?
谢谢吉特
解决方案
我想选择以下解决方案
API 网关进行基本身份验证检查(令牌有效性、租户标识等、客户端 ID 验证等),如果任何健全性检查失败,则从此处返回 401
在单个微服务中,我们将有一个中间件来拦截请求并检查正在操作的资源(实体)是否具有正确的权限,以防缺少权限,让微服务从这里返回 403。
推荐阅读
- java - 在方向图中从 JAVA 添加具有属性的类顶点以及另一个类顶点的列表等
- unity3d - 统一网络。transform.setparent() 在 clinet 端不起作用
- excel - 无法保存Openpyxl python3修改的现有excel文档
- sql - 如何通过在任何插入的两个值之间改组来将列上的两个值指定为 DEFAULT
- delphi - delphi中的OnDrawCell过程访问冲突
- java - 如何将图像保存到文件夹并将链接保存到 mySQL 数据库
- bash - 在 bash 中编写一个可移植的通用确认函数——你能改进它吗?
- angular - Css 不适用于 Angular 6
- python - 从python调用bash命令时“致命:参数太多”,直接在git bash中使用相同的命令没有错误
- python - 当我尝试通过 python 发送请求时,$ 中的错误读取不是有效的 json 值