如何从另一个keycloak实例B检查验证keycloak实例A用户?
How to check authenticate keycloak instance A user from another keycloak instance B?
我们为keycloak搭建了一个测试环境。 GCP 上的环境 运行。它有两个密钥斗篷实例:
- 实例A充当测试登录密钥斗篷,名为test-login-1
- 实例 B 作为测试外部身份提供者,名为 test-login-2
我们需要使用实例A连接实例B。
因此实例A用户可以通过实例B登录。
有什么办法吗?我们如何实现这个逻辑?
您需要将 test-login-2
配置为 test-login-1
的身份提供者。您可以阅读有关身份代理的内容 here。我将调用 internal realm
到将从内部 Keycloak (test-login-1
) 使用的领域,并且 external realm
到将从外部 Keycloak (test-login-2
) 使用的领域。
为此,请转到管理控制台并:
- select 来自
test-login-1
的 Realm
,然后点击 Identity Providers
- 在页面右侧 select
Keycloak OpenID Connect
Add provider
... 下拉菜单中。它将弹出 Add Identity Provider
表单,从那里设置:
alias
Authorization URL
、Token URL
、Logout URL
、User Info URL
和 Issuer
到可以在 [=10 领域中找到的相应端点=] 在 .众所周知的端点(即 <KEYCLOAK_IP>/auth/realms/<External Realm Name>/.well-known/openid-configuration
)
- 对于
Client Authentication
你可以 select 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
)的用户可以单击该按钮对外部领域进行身份验证。
现在您将您的应用程序配置为在内部领域登录页面借出,来自您内部领域的用户立即在那里进行身份验证,来自外部领域的用户单击新按钮以明确对外部领域进行身份验证。
我们为keycloak搭建了一个测试环境。 GCP 上的环境 运行。它有两个密钥斗篷实例:
- 实例A充当测试登录密钥斗篷,名为test-login-1
- 实例 B 作为测试外部身份提供者,名为 test-login-2
我们需要使用实例A连接实例B。
因此实例A用户可以通过实例B登录。
有什么办法吗?我们如何实现这个逻辑?
您需要将 test-login-2
配置为 test-login-1
的身份提供者。您可以阅读有关身份代理的内容 here。我将调用 internal realm
到将从内部 Keycloak (test-login-1
) 使用的领域,并且 external realm
到将从外部 Keycloak (test-login-2
) 使用的领域。
为此,请转到管理控制台并:
- select 来自
test-login-1
的Realm
,然后点击Identity Providers
- 在页面右侧 select
Keycloak OpenID Connect
Add provider
... 下拉菜单中。它将弹出Add Identity Provider
表单,从那里设置: alias
Authorization URL
、Token URL
、Logout URL
、User Info URL
和Issuer
到可以在 [=10 领域中找到的相应端点=] 在 .众所周知的端点(即<KEYCLOAK_IP>/auth/realms/<External Realm Name>/.well-known/openid-configuration
)- 对于
Client Authentication
你可以 selectClient 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
)的用户可以单击该按钮对外部领域进行身份验证。
现在您将您的应用程序配置为在内部领域登录页面借出,来自您内部领域的用户立即在那里进行身份验证,来自外部领域的用户单击新按钮以明确对外部领域进行身份验证。