我们为 keycloak 设置了一个测试环境。环境在 GCP 上运行。它有两个 keycloak 实例:
- 实例 A 充当测试登录密钥斗篷,名为 test-login-1
- 实例 B 充当测试外部身份提供者,名为 test-login-2
我们需要使用实例 A 连接实例 B。
因此实例 A 用户可以通过实例 B 登录。
有没有办法做到这一点?我们如何实现这个逻辑?
我们为 keycloak 设置了一个测试环境。环境在 GCP 上运行。它有两个 keycloak 实例:
我们需要使用实例 A 连接实例 B。
因此实例 A 用户可以通过实例 B 登录。
有没有办法做到这一点?我们如何实现这个逻辑?
您需要将 配置test-login-2
为 的身份提供者test-login-1
。您可以在此处阅读有关身份代理的信息。我将从internal realm
内部 Keycloak ( test-login-1
)调用将使用external realm
的领域,并从外部 Keycloak ( test-login-2
) 调用将使用的领域。
为此,请转到管理控制台并:
Realm
from test-login-1
,然后单击Identity Providers
Keycloak OpenID Connect
从Add provider
... 下拉菜单中选择。它将弹出Add Identity Provider
表单,从那里设置:alias
Authorization URL
, Token URL
,Logout URL
和可以在.well -known 端点(即)
的领域User Info URL
中找到的对应端点Issuer
test-login-2
<KEYCLOAK_IP>/auth/realms/<External Realm Name>/.well-known/openid-configuration
Client Authentication
您可以选择Client secret send as post
Client ID
andClient Secret
首先,您需要client
在外部realm
(of test-login-2
) 中创建一个新的并在此处使用它的Client ID
and Client Secret
。Access Type
Confidential
Standard Flow Enabled
:ON
Valid Redirect URIs
"*"
例如,将其设置为您的 Keycloak IP,然后<KEYCLOAK_IP>*
Web Origins
:+
Save
请记住,其中一些配置可能必须根据您自己的需要进行调整。
现在,如果一切设置正确,在 keycloak ( test-login-1
) 内部领域登录页面将显示一个新按钮,存储在外部领域 (of test-login-2
) 上的用户可以单击该按钮以针对外部领域进行身份验证。
现在您将您的应用程序配置为在内部领域登录页面上借出,来自您内部领域的用户立即在那里进行身份验证,来自外部领域的用户单击新按钮以显式地针对外部领域进行身份验证。