当前位置: 首页 > 知识库问答 >
问题:

如何绕过密钥锁登录表单,直接跳转到IDP登录?

陈业
2023-03-14

我正在运行saml-broker-authentication示例。我在UI中看到的第一件事是一个带有使用代理选项的用户/通行证(下图)。

有没有办法跳过此表单直接进入IDP?

点击其中一个IDP后,我得到一个类似的URL:http://localhost:8080/auth/realms/saml-broker-authentication-realm/broker/sanity-idp/login?client_id=saml-broker-authentication

我尝试直接使用下面的url(没有代码),但得到了一个错误。(< code > http://localhost:8080/auth/realm/SAML-broker-authentic ation-realm/broker/sanity-IDP/log in?client _ id = SAML-broker-authentic ation )

任何想法如何绕过KeyCloak身份验证并通过SP(代理)直接进入IDP?谢谢。

更新:我的 TL 找到了一个静态解决方案,可以将 IDP ID 放入身份提供程序重定向程序执行下的浏览器身份验证流程中。但是,我们正试图找到一种动态的方式来做到这一点。查看了kc_idp_hint文档,但找不到使 saml 代理身份验证示例使用它的方法:(

共有3个答案

史弘致
2023-03-14

这是一个老帖子,但对某人来说可能仍然是真实的。

>

  • 对于身份提供者登录页面上的静态重定向,请在来自身份提供者的密钥斗篷管理面板集名称中设置-

    动态选择 IDP。如果您不进入 idp 登录页面,您可以在 KK 中放置额外的参数kc_idp_hint,例如

    // go to KK login page with username/pass and choice of idp provider
    https://{KK}/realms/{RM}/protocol/openid-connect/auth?...&kc_idp_hint
    
    // go to facebook login page if facebook idp is cinfigure 
    https://{KK}/realms/{RM}/protocol/openid-connect/auth?...&kc_idp_hint=facebook
    
    // go to other login page
    https://{KK}/realms/{RM}/protocol/openid-connect/auth?...&kc_idp_hint=other
    

  • 逑禄
    2023-03-14

    要将身份提供程序设置为忽略keyclok登录表单的默认身份提供程序,只需转到身份验证菜单

    须鸿祯
    2023-03-14

    正如您所提到的,您可以绕过Keyclock屏幕,通过为整个领域设置默认身份提供程序直接转到IdP:

    可以自动重定向到身份提供程序,而不是显示登录表单。要启用此功能,请转到管理控制台中的“身份验证”页面,然后选择“浏览器”流。然后单击身份提供程序重定向器身份验证器的配置。将默认身份提供程序设置为要自动将用户重定向到的身份提供程序的别名。

    (https://www.keycloak.org/docs/latest/server_admin/index.html#default_identity_provider)

    不幸的是,这是针对整个领域的,无法动态设置或按 SP 设置。 kc_idp_hint似乎是解决方案,但它仅适用于 OIDC:

    OIDC应用程序可以通过指定他们想要使用的身份提供者的提示来绕过KeyCloak登录页面。

    这是通过在授权代码流授权endpoint中设置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。

     类似资料:
    • 8.4 绕过Utilman登录 Utilman是Windows辅助工具管理器。该程序是存放在Windows系统文件中最重要的文件,通常情况下是在安装系统过程中自动创建的,对于系统正常运行来说至关重要。在Windows下,使用Windows+U组合键可以调用Utilman进程。本节将介绍绕过Utilman程序登录系统,就可以运行其他操作。 (1)在Windows界面,启动Kali Linux Liv

    • 问题内容: 我正在一个springMVC项目中,其中用户身份验证基于Spring安全性。 这个想法是要拥有一个移动(android)应用程序,以便能够将某种数据发送到后端。 因此,在开始开发android之前,我决定使用cURL模拟登录表单的情况。 我们网站上的登录表单如下: 我使用以下命令: 但是我将获得登录页面,换句话说,我无法根据模拟情况通过用户身份验证。 只需注意:对于每一个请求,spri

    • 我尝试使用这个简单的代码登录,但在我点击登录按钮后,else选项“无效用户名或密码!”总是出现,即使用户名和密码是匹配的 控制器:

    • 但接下来呢?我在graph API上找到的示例没有使用这个登录王。 这里是OWIN登录配置: DD

    • 我是Symfony的新手,我正在尝试为我的应用程序创建一个access登录表单,但当我尝试登录时,它只会一次又一次地将我重定向到表单登录。在此之前,我使用了HTTP基本表单,它工作得很好,但现在我尝试使用登录表单,这是不可能的。 这是我的代码: 用户类(带教义): 安全Controller.php: Security.yml login.html.twig 有什么想法吗?谢谢

    • 为什么在给用户授权的时候会出这个错误。一切都是按照指示做的。