如何绕过Keycloak登录表单并直接跳转到IDP登录?

Ali*_*aka 7 authentication service-provider keycloak idp

我正在运行saml-broker-authentication示例。我在用户界面中看到的第一件事是用户/密码,并带有使用代理的选项(下图)。

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

单击其中一个IDP之后,我得到以下URL: http://localhost:8080/auth/realms/saml-broker-authentication-realm/broker/sanity-idp/login?client_id=saml-broker-authentication&code=<keycloak generated>

我尝试直接使用以下网址(无代码),但出现错误。(http://localhost:8080/auth/realms/saml-broker-authentication-realm/broker/sanity-idp/login?client_id=saml-broker-authentication

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

更新:我的TL找到了一个静态解决方案,将IDP ID置于Identity Provider Redirector执行过程中的浏览器身份验证流程中。但是,我们正在尝试找到一种动态的方式来做到这一点。查看了kc_idp_hint文档,但找不到使saml-broker-authentication示例与之配合使用的方法:(

在此处输入图片说明

Geo*_*rey 9

  1. 在 keycloak 管理控制台中,转到“身份验证”菜单 -> “流程”面板 -> 在下拉列表中选择“浏览器” -> 单击“复制”按钮并将其命名为“Browser2”
  2. 通过选择“Browser2”,您可以编辑身份验证类型“Identity Provider Redirector”->“Actions”->“Config”
  3. saml-identity-provider在“别名”和“默认身份提供商”下,输入之前在“身份提供商”菜单中创建的别名
  4. 在“客户端”菜单中选择您的saml-broker-authentication客户端并展开“身份验证流程覆盖”,然后在“浏览器流程”下拉列表中选择“Browser2”并保存
  5. http://localhost:8080/auth/realms/saml-broker-authentication-realm/broker/sanity-idp/login?client_id=saml-broker-authentication现在应该直接打开 idp 而不是 keycloak 登录表单。

然后,您可以创建与 ipd 一样多的身份验证流,而无需复制领域。


bma*_*pin 6

似乎有一个尚未解决的功能请求:

https://issues.jboss.org/browse/KEYCLOAK-4884

如您所述,您可以通过为整个领域设置默认身份提供者(https://www.keycloak.org/docs/latest/server_admin/index.html#default_identity_provider)来绕过Keycloak屏幕并直接转到IdP 。

由于这是针对每个领域设置的,因此您可以创建一个新领域,并为该领域设置默认的身份提供程序。这样,如果您需要将SP代理到不同的IdP,则可以将它们设置在适当的领域。

缺点是每个领域都充当其自己的IdP,因此它具有自己的实体ID,公钥等。您实际上必须每次都重新设置SP才能使其默认为其他IdP。


小智 6

经过大量搜索后,我设法用这行代码来做到这一点:

keycloakAuth.login({idpHint: 'facebook'});
Run Code Online (Sandbox Code Playgroud)

keycloakAuth 是:

keycloakAuth = Keycloak({
    url: environment.keycloakRootUrl,
    realm: 'realm',
    clientId: 'client-id',
    'ssl-required': 'external',
    'public-client': true
});
Run Code Online (Sandbox Code Playgroud)

无需将其设置为默认身份提供商


use*_*666 5

要将身份提供者设置为默认的一个忽略 keycloak 登录表单,只需转到身份验证菜单 > 身份提供者重定向操作链接 > 将默认身份提供者设置为您想要的提供者的别名。从浏览器 localhost:8080/realm[...]/account 打开后,您将被自动重定向到您的提供商登录页面。


the*_*nov 5

这是一个旧帖子,但对于某些人来说可能仍然是实际的。

  1. 对于在 keycloak 管理面板中设置的身份提供者登录页面上的静态重定向,设置名称从Identity Providers -> nameto Authentication -> Identity Provider Redirector -> config -> Default Identity Provider。之后发生请求https://{KK}/realms/{RM}/protocol/openid-connect/auth?...将您重定向到身份提供者,例如 facebook

  2. 动态选择idp。如果你不去 idp 登录页面,你可以kc_idp_hint在 KK 中添加额外的参数,例如

// 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
Run Code Online (Sandbox Code Playgroud)


pla*_*ben 0

为了通过 Keycloak 代理重定向到 IDP 登录页面,您可以使用以下 URL:http://localhost:8080/saml-broker-authentication/