Keycloak Kerberos 阻止登录对话框

Posted

技术标签:

【中文标题】Keycloak Kerberos 阻止登录对话框【英文标题】:Keycloak Kerberos prevent login dialog 【发布时间】:2021-11-05 08:08:09 【问题描述】:

我使用keycloak 来管理基于Java 的Web 应用程序的身份验证。 我配置了一个在内部网络中运行良好的 Kerberos User Federation。 从网络外部访问 Web 应用程序我得到以下登录对话框,而不是被转发到 keycloak 登录表单。 有趣的转发适用于 Firefox,但不适用于 Edge、Chrome、IE。 如何阻止登录对话框并直接转发到 keycloak-login-form?

编辑:例如,是否可以创建第二个身份验证流程(禁用 kerberos)并将其作为 URL 中的参数传递?

身份验证流程:

Kerberos - 替代方案 表格 - 替代方案

【问题讨论】:

【参考方案1】:

我发现,如果进行了以下设置,则没有显示浏览器登录对话框,并且流程将转发到 keycloak-login-page。

Web 应用程序 URL 已添加到“受信任的站点”(通过 IE 设置或 GPO) CN: Computer Configuration\Administrative Templates\Windows Components\Internet Explorer\Internet Control Panel\Security Page\Site to Zone Assignment List 德:Computerkonfiguration\Administrative Vorlagen\Windows-Komponenten\Internet Explorer\Internetsystemsteuerung\Sicherheitsseite\Liste der Site zu Zonenzuweisungen

进行了以下 GPO 设置 CN: Computer Configuration\Administrative Templates\Windows Components\Internet Explorer\Internet Control Panel\Security Page\Trusted Sites Zone 登录选项:使用当前用户名和密码自动登录 德:Computerkonfiguration\Administrative Vorlagen\Windows-Komponenten\Internet Explorer\Internetsystemsteuerung\Sicherheitsseite\Zone vertrauenswürdiger Sites Anmeldungsoptionen: Automatische Anmeldung mit aktuellem Benutzername und Kennwort

【讨论】:

嘿,您确定用户没有通过 kerberos 进行身份验证吗?通常在这种情况下,浏览器会自动发送令牌(没有提示)。我在这里看到了安全漏洞。 是的,因为“从网络外部访问 Web 应用程序”,我不是 AD 的用户,因此没有通过 AD 进行身份验证。

以上是关于Keycloak Kerberos 阻止登录对话框的主要内容,如果未能解决你的问题,请参考以下文章

来自rest api的keycloak登录已被CORS阻止

Next.js:在重定向到 Keycloak 登录页面之前阻止显示索引页面

反应:在重定向到 Keycloak IDP 页面之前阻止显示应用程序

由于嵌入式浏览器,Android Facebook 分享对话框阻止登录

覆盖 keycloak.x 中的默认身份验证器提供程序

Keycloak 与 Spring boot 集成,使用自定义登录页面(在没有 keycloak 的默认登录页面的情况下登录)