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示例与之配合使用的方法:(
saml-identity-provider在“别名”和“默认身份提供商”下,输入之前在“身份提供商”菜单中创建的别名saml-broker-authentication客户端并展开“身份验证流程覆盖”,然后在“浏览器流程”下拉列表中选择“Browser2”并保存http://localhost:8080/auth/realms/saml-broker-authentication-realm/broker/sanity-idp/login?client_id=saml-broker-authentication现在应该直接打开 idp 而不是 keycloak 登录表单。然后,您可以创建与 ipd 一样多的身份验证流,而无需复制领域。
似乎有一个尚未解决的功能请求:
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)
无需将其设置为默认身份提供商
要将身份提供者设置为默认的一个忽略 keycloak 登录表单,只需转到身份验证菜单 > 身份提供者重定向操作链接 > 将默认身份提供者设置为您想要的提供者的别名。从浏览器 localhost:8080/realm[...]/account 打开后,您将被自动重定向到您的提供商登录页面。
这是一个旧帖子,但对于某些人来说可能仍然是实际的。
对于在 keycloak 管理面板中设置的身份提供者登录页面上的静态重定向,设置名称从Identity Providers -> nameto Authentication -> Identity Provider Redirector -> config -> Default Identity Provider。之后发生请求https://{KK}/realms/{RM}/protocol/openid-connect/auth?...将您重定向到身份提供者,例如 facebook
动态选择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)
| 归档时间: |
|
| 查看次数: |
4278 次 |
| 最近记录: |