【发布时间】:2019-11-03 04:01:05
【问题描述】:
首先,我非常了解 Keycloak 中的多领域多租户方法。我接手了一个没有人想到多租户的遗留项目。现在,两年后,突然,客户需要这个功能。实际上,微服务已经为这种场景做好了开箱即用的准备。
客户开发了一个移动应用程序,该应用程序通过我们的 keycloak 实例上的 API 使用帐号(作为用户名)和密码对用户进行身份验证。现在,他想在登录信息中添加租户 ID。
客户希望避免使用多个端点作为多领域解决方案的要求。
第一个想法是在注册时连接租户 ID 和帐户 ID。但这是一种臭名昭著的方法。
所以,我的想法是,可能有一种方法可以配置 Keycloak,即我添加一个自定义的 tenantid 字段和 username,就像数据库世界中的复合主键一样。
这样的配置可能吗?还有其他方法可以使用单个领域实现多租户行为吗?
【问题讨论】:
-
每个人都使用 keycloak 实现多租户,具体取决于他们的用例,一些使用角色,一些使用组stackoverflow.com/questions/55641667/…。也可以使用用户属性来存储tenantid
-
如果用户名在所有租户中不是唯一的,您将需要在登录时指定租户 ID。你想怎么提供?您使用 Keycloak 的身份验证流程,还是真的使用自定义构建的 API?如果是这样,API 调用的结果是什么?只是yes(用户名/密码正确)还是no(用户名/密码错误)?
-
“客户希望避免使用多个端点作为多领域解决方案的要求。”您只需要多个领域,URL 仅在一点不同(领域的名称)。使 keycloak 请求变得灵活应该没问题。
标签: multi-tenant keycloak