首页 > 解决方案 > 为多租户系统构建客户端授权

问题描述

我们有一个可满足多个租户的 Web 应用程序。
现在有多个direct客户端对应于这些租户,但 1 个客户端可能为多个租户工作。
我们当前的授权系统在客户端级别上工作,但我们看到问题是一个客户端被属于租户 1 的软件系统调用,获取属于租户 2 的数据库记录并对其进行变异。
流程是:

Tenant1 app -> Client -> Our web service

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

有人可以提供任何建议吗?

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

标签: authorization

解决方案


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


推荐阅读