密钥斗篷 - 是否可以在领域之间共享一组公共用户?

2022-09-03 04:27:58

我正在尝试将密钥斗篷作为公司的 SSO 实现。我创建了两个领域,领域 A 和领域 B。我想对这两个领域使用相同的用户集,即我需要为两个领域的用户授予访问权限。是否可以在Keycloak中执行此操作?


答案 1

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


答案 2

同意接受的答案,这是不可能的。

您可以将领域视为“用户池” - 用户应属于一个或另一个(身份),除非它们真正被视为两个单独的身份。

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

使用此方法,您还可以根据组/角色/权限的联合位置提供它们。然后,与此领域集成的客户端可供任一领域中的每个人访问 - 可能需要进一步的 RBAC 增强功能来确定真正的访问权限。

编辑:另请注意,您可以跳过“中心”领域,并通过 直接联合到所需的用户池领域。例如,您的应用程序可以通过不同的子域加载 - 应用程序可以决定使用哪个子域。KC_IDP_HINTKC_IDP_HINT


推荐