Keycloak - 是否可以在领域之间共享一组共同的用户?

Keycloak - Is it possible share a common set of users between realms?

我正在尝试将 keycloak 实施为我公司的 SSO。我创建了两个领域,领域 A 和领域 B。我想为两个领域使用同一组用户,即我需要为两个领域的用户授予访问权限。是否可以在 Keycloak 中执行此操作?

不,那不可能。用户总是特定领域的。唯一的方法是将用户保留在外部存储中,并通过联合 (UserStorageSpi) 将此外部存储集成到两个领域中。但是您必须在外部商店上进行所有用户管理,因为它是您用户数据的主要来源。

同意,这是不可能的。

您可以将领域视为 'user pools' - 用户应该属于一个或另一个(身份),除非它们真正被视为两个独立的身份。

然后您可以创建用于客户端连接的第三个领域,因此该应用程序只需与单个身份验证服务器集成。然后,第三个领域可以通过 Keycloak OpenID Connect 联合到其他两个领域。

使用此方法,您还可以根据联合位置提供 groups/roles/permissions。与该领域集成的客户端将可供任一领域中的每个人访问 - 可能需要进一步增强 RBAC 以确定真正的访问权限。