如何绕过Keyloak登录表,直接跳转到IdP登录? [英] How to bypass Keycloak login form and jump directly to the IDP login?
问题描述
我正在运行saml-broker-authentication示例。我首先在UI中看到的是一个带有使用代理选项的User/Pass(下图)。
有没有办法跳过此表格,直接进入IdP?
点击其中一个IdP后,我得到一个URL:http://localhost:8080/auth/realms/saml-broker-authentication-realm/broker/sanity-idp/login?client_id=saml-broker-authentication&code=<keycloak generated>
我尝试直接使用以下URL(不带代码),但遇到错误。
(http://localhost:8080/auth/realms/saml-broker-authentication-realm/broker/sanity-idp/login?client_id=saml-broker-authentication
)
有什么办法绕过Keyloak身份验证,直接通过SP(Broker)进入IdP?谢谢。
更新:我的TL找到了一个静态解决方案,将IdP ID放在Identity Provider Redirector
执行下的浏览器身份验证流中。但是,我们正在试图找到一种动态的方法来做到这一点。我查看了kc_idp_hint documentation,但找不到使SAML-Broker-身份验证示例使用它的方法:(
推荐答案
如您所述,您可以绕过密钥遮盖屏幕,通过为整个领域设置默认身份提供者来直接转到IdP:
可以自动重定向到身份提供者,而不是显示登录表单。要启用此功能,请转到管理控制台中的身份验证页面,然后选择浏览器流。然后单击身份提供方重定向器验证器的配置。将默认身份提供程序设置为要将用户自动重定向到的身份提供程序的别名。
(https://www.keycloak.org/docs/latest/server_admin/index.html#default_identity_provider)
不幸的是,这是针对整个领域的,不能动态设置或按SP设置。kc_idp_hint
似乎是解决方案,但它仅适用于OIDC:
OIDC应用程序可以通过指定要使用哪个身份提供程序的提示来绕过Keyshaak登录页。
这是通过设置授权码流授权终结点中的
kc_idp_hint
查询参数来完成的。
(https://www.keycloak.org/docs/latest/server_admin/#_client_suggested_idp)
看起来有添加kc_idp_hint
SAML支持的功能请求,但仍未解决:
https://issues.jboss.org/browse/KEYCLOAK-4884
作为一种解决办法,您可以创建一个新领域并设置该领域的默认身份提供程序。这样,如果您有需要代理给不同IdP的SP,您可以在适当的领域设置它们。缺点是每个领域都充当自己的IdP,因此它有自己的实体ID、公钥等。您实际上每次都必须重新设置SP,才能使其默认为不同的IdP。
这篇关于如何绕过Keyloak登录表,直接跳转到IdP登录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!