如何检查来自另一个 keycloak 实例 B 的身份验证 keycloak 实例 A 用户?

Posted

技术标签:

【中文标题】如何检查来自另一个 keycloak 实例 B 的身份验证 keycloak 实例 A 用户?【英文标题】:How to check authenticate keycloak instance A user from another keycloak instance B? 【发布时间】:2021-03-09 00:59:01 【问题描述】:

我们为 keycloak 设置了一个测试环境。环境在 GCP 上运行。它有两个 keycloak 实例:

    实例 A 充当测试登录密钥斗篷,名为 test-login-1 实例 B 充当测试外部身份提供者,名为 test-login-2

我们需要使用实例A来连接实例B。

所以实例 A 用户可以通过实例 B 登录。

有没有办法做到这一点?我们如何实现这个逻辑?

【问题讨论】:

【参考方案1】:

您需要将test-login-2 配置为test-login-1 的身份提供者。您可以阅读有关身份代理here 的信息。我将调用 internal realm 到将从内部 Keycloak (test-login-1) 使用的领域,并将 external realm 调用到将从中使用的领域外部 Keycloak (test-login-2)。

为此,请转到管理控制台并:

test-login-1 中选择您的Realm,然后点击Identity Providers 在页面右侧,从Add provider ...下拉菜单中选择Keycloak OpenID Connect。它将弹出Add Identity Provider 表单,从那里设置: alias Authorization URLToken URLLogout URLUser Info URLIssuer 到可以在 .well-known 端点上的test-login-2 领域找到的对应端点 em> (ie, <KEYCLOAK_IP>/auth/realms/<External Realm Name>/.well-known/openid-configuration) 对于Client Authentication,您可以选择Client secret send as post 对于Client IDClient Secret,首先您需要在外部realmtest-login-2)中创建一个新的client,并在此处使用其Client IDClient Secret。 此客户: 可以有Access TypeConfidential Standard Flow EnabledON Valid Redirect URIs 将其设置为您的 Keycloak IP,后跟 "*",例如 <KEYCLOAK_IP>* Web Origins : + Save

请记住,其中一些配置可能必须根据您自己的需要进行调整。

现在,如果一切设置正确,在 keycloak (test-login-1) 内部领域登录页面将显示一个新按钮,存储在外部领域 (test-login-2) 上的用户可以单击该按钮对外部领域进行身份验证领域。

现在您将您的应用配置为在“内部领域登录”页面上借出,来自您内部领域的用户立即在此处进行身份验证,来自外部领域的用户单击新按钮以明确针对外部领域进行身份验证。

【讨论】:

感谢您的回答。让我试试这个@dreamcrash

以上是关于如何检查来自另一个 keycloak 实例 B 的身份验证 keycloak 实例 A 用户?的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 Keycloak 服务器实例以同时支持开发和 UAT 环境?

如何使用来自另一个 Maven 模块的宏?

ActiveMQ 消费/转发来自另一个 ActiveMQ 实例的消息

在 Keycloak 上创建一个用户,包括来自 curl 命令的密码

如何检查应用程序的另一个实例是不是正在运行[重复]

keycloak 到 keycloak 数据同步