Keycloak 跨远程站点的高可用性
High-Availability of Keycloak across remote sites
我一直在研究 Keycloak 作为我公司的本地 IAM 和 SSO 解决方案。阅读文档时我不清楚的一件事是 Keycloak 的集群模式是否可以满足我们对跨站点实例联合的要求。
我们有一些偏远的有人值守站点,偶尔会 运行 关键的遥测收集过程。我们的 AD 域已复制到这些站点。
问题是站点只有一个互联网 link。如果我们在总部有 keycloak,并且互联网 link 中断了一天,那么远程站点上任何依赖 keycloak 进行身份验证的软件都将无法工作(这将是一个大问题)。
我们能否在集群模式下设置 Keycloak(即,在每个站点放置一个实例),以便如果 link 发生故障,远程用户能够自动连接到他们的本地实例并进行身份验证与本地应用程序?当连接恢复并且数据库不同步时会发生什么 - keycloak 会自动修复吗?
干杯
一般的回答是“是”,你可以在不同的位置设置两个 keycloak 实例,并且 link 它们通过集群相互连接(在引擎盖下它将是 infinispan 缓存复制)。但这取决于您的基础架构的详细信息。
Keycloak 集群的主要目标是在节点之间执行会话缓存复制。因此,在最简单的情况下,您可以设置两个指向同一个数据库实例的节点,当第一个节点出现故障时,第二个节点将处理整个工作,但如果数据库也出现故障,第二个节点将无用。在这种情况下,每个站点都应该有单独的 Keycloak 节点和数据库副本(如何实现数据库复制不在本主题的范围内)。第三种选择是使用 keycloak 应用程序适配器的多租户功能,在这种情况下,您可以通过两个彼此一无所知的独立 Keycloak 实例来保护应用程序。
尝试从这篇文档文章开始:
https://www.keycloak.org/docs/latest/server_installation/index.html#crossdc-mode
我一直在研究 Keycloak 作为我公司的本地 IAM 和 SSO 解决方案。阅读文档时我不清楚的一件事是 Keycloak 的集群模式是否可以满足我们对跨站点实例联合的要求。
我们有一些偏远的有人值守站点,偶尔会 运行 关键的遥测收集过程。我们的 AD 域已复制到这些站点。
问题是站点只有一个互联网 link。如果我们在总部有 keycloak,并且互联网 link 中断了一天,那么远程站点上任何依赖 keycloak 进行身份验证的软件都将无法工作(这将是一个大问题)。
我们能否在集群模式下设置 Keycloak(即,在每个站点放置一个实例),以便如果 link 发生故障,远程用户能够自动连接到他们的本地实例并进行身份验证与本地应用程序?当连接恢复并且数据库不同步时会发生什么 - keycloak 会自动修复吗?
干杯
一般的回答是“是”,你可以在不同的位置设置两个 keycloak 实例,并且 link 它们通过集群相互连接(在引擎盖下它将是 infinispan 缓存复制)。但这取决于您的基础架构的详细信息。
Keycloak 集群的主要目标是在节点之间执行会话缓存复制。因此,在最简单的情况下,您可以设置两个指向同一个数据库实例的节点,当第一个节点出现故障时,第二个节点将处理整个工作,但如果数据库也出现故障,第二个节点将无用。在这种情况下,每个站点都应该有单独的 Keycloak 节点和数据库副本(如何实现数据库复制不在本主题的范围内)。第三种选择是使用 keycloak 应用程序适配器的多租户功能,在这种情况下,您可以通过两个彼此一无所知的独立 Keycloak 实例来保护应用程序。
尝试从这篇文档文章开始: https://www.keycloak.org/docs/latest/server_installation/index.html#crossdc-mode