为多租户系统构建客户端授权



我们有一个迎合多个租户的Web应用程序。
现在有多个direct客户端对应于这些租户,但 1 个客户端可以 为多个租户工作。
我们目前的授权系统适用于客户层面,但我们看到的问题包括 属于 Tenant1 的软件系统调用的一个客户端获取了数据库记录 属于租户 2 并对其进行了变异。
流程为:

Tenant1 app -> Client -> Our web service

我们现在计划进一步进行严格的身份验证,我们要求我们的客户:

  • 在请求中传递其他系统无法模拟的租户信息。
  • 为所有
  • 租户执行身份验证。

有人可以帮忙提出任何建议吗?

PS:为了清楚起见,请随时发表评论。

需要在数据库的所有父表中具有租户 ID。还将有一个将用户映射到租户(和角色(的表。这可能是一对多的关系。示例用户"A"可能具有租户 1 的管理员角色。但可能与租户 2 具有不同的角色。 设置完成后,您将拥有一个基础,可以在租户上下文中获取数据(租户 ID 是所有查询的必备参数(。 此外,还可以对身份验证施加限制。例如,如果租户 1 外部的用户尝试访问租户 1 网站,则可以阻止他/她。 希望这有帮助!

最新更新