如何检查来自另一个 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 URL
、Token URL
、Logout URL
、User Info URL
和 Issuer
到可以在 .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 ID
和Client Secret
,首先您需要在外部realm
(test-login-2
)中创建一个新的client
,并在此处使用其Client ID
和Client Secret
。
此客户:
可以有Access Type
Confidential
Standard Flow Enabled
:ON
Valid Redirect URIs
将其设置为您的 Keycloak IP,后跟 "*"
,例如 <KEYCLOAK_IP>*
Web Origins
: +
Save
请记住,其中一些配置可能必须根据您自己的需要进行调整。
现在,如果一切设置正确,在 keycloak (test-login-1
) 内部领域登录页面将显示一个新按钮,存储在外部领域 (test-login-2
) 上的用户可以单击该按钮对外部领域进行身份验证领域。
现在您将您的应用配置为在“内部领域登录”页面上借出,来自您内部领域的用户立即在此处进行身份验证,来自外部领域的用户单击新按钮以明确针对外部领域进行身份验证。
【讨论】:
感谢您的回答。让我试试这个@dreamcrash以上是关于如何检查来自另一个 keycloak 实例 B 的身份验证 keycloak 实例 A 用户?的主要内容,如果未能解决你的问题,请参考以下文章
如何配置 Keycloak 服务器实例以同时支持开发和 UAT 环境?
ActiveMQ 消费/转发来自另一个 ActiveMQ 实例的消息