设置多租户应用程序

时间:2020-12-29 09:22:09

标签: java keycloak multi-tenant

我目前正在开发一个能够离线运行的分布式(多站点)应用程序。

我希望能够从 Keycloak 管理实例远程和单独配置 Keycloak 的每个实例。此外,每个实例都有自己的用户、策略和权限。

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:2)

如果您是 Keycloak 的新手,我建议您先阅读它的文档,它会让您在做决定时更轻松。

<块引用>

此外,每个实例都有自己的用户、策略和 权限。

Keycloak Documentation 部分 Core Concepts and Terms 可以阅读以下内容:

领域 :领域管理一组用户、凭据、角色和组。用户属于并登录到一个领域。领域彼此隔离,只能管理和验证它们控制的用户。

哪些接缝适合满足该要求。

<块引用>

我希望能够配置 Keycloak 的每个实例 从 Keycloak 管理实例远程和单独。

这是不可能的,但是您可以让多个 Keycloak 实例对同一个 Keycloak 实例执行 Identity Brokering。从有关身份代理的文档中可以阅读:

<块引用>

身份代理是一种中介服务,它连接多个 具有不同身份提供商的服务提供商。作为 中介服务,身份代理负责创建 与外部身份提供者的信任关系,以便 使用其身份访问服务公开的内部服务 供应商。

从用户的角度来看,身份代理提供了一个以用户为中心的 和集中管理跨不同安全性的身份的方式 域或领域。现有帐户可以与一个或多个链接 来自不同身份提供者的身份,甚至基于 从他们那里获得的身份信息。

通过这种方法,用户将被重定向到主 Keycloak 实例的首页,然后可以选择登录到特定的 Keycloak 实例。

答案 1 :(得分:1)

您可能不需要不同的实例来执行您所描述的操作。使用不同的领域似乎更合适。领域具有独立的用户、角色、组、密码策略等。

答案 2 :(得分:0)

Keycloack 已经可以处理多租户,您无需为每个组织设置 Keycloack 实例。只需为每个组织定义一个特定的领域。