首页 > 解决方案 > Keycloak跨数据中心部分同步用户数据

问题描述

我在一家德国公司工作,因此我们必须遵守 GDPR。我们将我们的产品作为软件即服务产品进行销售,并在 AWS 中托管系统。我们的客户遍布欧洲、美国和亚洲。因此,我们在欧洲西部、美国东北部和亚太地区的 AWS 中运行多个 VPC。我们的计划是将 Keycloak 实现为 SSO 后端。

到目前为止,我们最初的想法是使用所谓的跨数据中心复制来实现 Keycloak。这意味着每个 VPC 有一个 Keycloak-Cluster,前面有一个负载均衡器,用于 VPC 间缓存/通信的 Infispan 集群和一个 Aurora RDS 集群作为集中式数据库,但我们并没有被固定。问题是,如上所述,我们受 GDPR 约束,因此欧洲用户的数据不得离开欧盟,除非客户要求我们这样做。我所读到的只是说 Keycloak 期望所有数据都在数据库集群中同步。

关于我们的拓扑结构和问题本身的信息:每个客户在最合适的地理区域都有专用的 EC2 实例。此外,还有在欧盟托管的集中式服务。因此,来自美国或亚太地区的用户需要访问欧盟的系统,但欧盟用户不需要访问欧盟以外的实例/服务,除非客户明确订购。

那么我们如何实现这一目标呢?

我唯一的想法是建立一个数据库集群(可能不是 AWS Aurora RDS)并在数据库本身上进行配置以不同步所有数据。但这对我来说听起来很恶心,我不认为 Keycloak 在这方面做得很好。任何想法或提示将不胜感激!

标签: amazon-web-serviceskeycloak

解决方案


好的,如果有人对我们的解决方案感兴趣:看来,我们会接受这样一个事实,即非欧盟客户在某些情况下会有延迟。Infinispan 集群将用作缓存,因此这些用户只会偶尔遇到这种延迟。DB 将驻留在欧盟。我不确定 Infinispan 服务器是否会充当缓存,是否与其他数据中心中的节点的连接丢失,但也许我会找到一些相关信息。


推荐阅读