在 keycloak 中,如何使用 kc_idp_hint 重定向到 IDP?

Posted

技术标签:

【中文标题】在 keycloak 中,如何使用 kc_idp_hint 重定向到 IDP?【英文标题】:In keycloak, how to redirect to an IDP with kc_idp_hint? 【发布时间】:2020-06-13 03:05:53 【问题描述】:

这里是场景。我正在为 kibana 使用 keycloak,我想在一个 keycloak 中添加两个 keycloak IDP。当我使用不同的 kibana 时,kibana 将重定向到适当的 keycloak IDP。但现在我只能重定向到主密钥斗篷。

我知道身份提供程序重定向器,但它是特定于领域的。我无法添加新领域,因为我只有一个。

而且 kc_idp_hint 对我不起作用。我尝试使用 url (http://localhost:5601?kc_idp_hint=idp1),重定向到 keycloak auth url (http://localhost:8080/auth/realms/master/protocol/openid-connect/ 时丢失 kc_idp_hint身份验证?...)

【问题讨论】:

【参考方案1】:

而且 kc_idp_hint 对我不起作用。我尝试使用网址 (http://localhost:5601?kc_idp_hint=idp1), kc_idp_hint 丢失时 重定向到keycloak auth url (http://localhost:8080/auth/realms/master/protocol/openid-connect/auth?...)

网址应如下所示:

<KEYCLOAK_HOST>/auth/realms/<YOUR_REALM_NAME>/protocol/openid-connect/auth?client_id=<YOUR_CLIENT_ID>&redirect_uri=<THE_REDIRECT_URI>&response_type=code&scope=openid&kc_idp_hint=<the_name_that_you_give_to_the_idp>

【讨论】:

【参考方案2】:

我找到了这个问题的解决方案。在“身份验证”中,您可以添加使用所需 idp 的新流程。在客户端,您可以将“Authentication Flow Overrides”-“Browser Flow”设置为新的流程。

【讨论】:

以上是关于在 keycloak 中,如何使用 kc_idp_hint 重定向到 IDP?的主要内容,如果未能解决你的问题,请参考以下文章

“限制身份验证会话”如何在 keycloak 中工作

Spring Boot Keycloak - 如何验证承载令牌?

Keycloak 返回已经过期的令牌

如何通过 REST API 将 Keycloak 领域角色添加到组

如何在 Flutter 中使用 KeyCloak

如何使用 Keycloak 在 Spring Boot 中获取当前登录用户?