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

Bha*_*nki 3 authentication keycloak keycloak-services keycloak-connect

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

  1. 实例A充当测试登录keycloak,名为test-login-1
  2. 实例 B 充当测试外部身份提供商,名为 test-login-2

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

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

有什么办法可以做到这一点吗?我们如何实现这个逻辑呢?

dre*_*ash 6

您需要将 的配置test-login-2为 的身份提供者test-login-1您可以在此处阅读有关身份经纪的信息。我将调用internal realm将从内部 Keycloak ( test-login-1) 使用的领域,以及external realm将从外部 Keycloak ( ) 使用的领域test-login-2

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

  • 选择您Realmtest-login-1,然后单击Identity Providers
  • 在页面右侧,Keycloak OpenID ConnectAdd provider...下拉菜单中选择。它将弹出Add Identity Provider表单,从那里设置:
  • alias
  • 、、和Authorization URL到可以在.wellknown 端点(即领域上找到的 对应端点Token URLLogout URLUser Info URLIssuertest-login-2 <KEYCLOAK_IP>/auth/realms/<External Realm Name>/.well-known/openid-configuration
    • 对于Client Authentication您可以选择Client secret send as post
    • 对于Client IDandClient Secret首先,您需要client在外部realm(of test-login-2) 中创建一个新的并Client IDClient 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可以单击该按钮以针对外部领域进行身份验证。

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