Keycloak:如何仅通过身份提供者登录

hb7*_*muc 5 provider identity broker keycloak

我有一个 Keycloak Broker 和 2 个身份提供者正在运行。目前,我在代理登录屏幕上看到了用户名和密码字段以及指向已配置身份提供者的 2 个链接。单击 IP 链接后,可以通过身份提供商登录。

我如何禁用/删除用户名/密码字段,因为我只想提供身份提供者来登录我的客户(无法直接通过代理登录)?

小智 13

几乎没有可用的开箱即用功能。

如果您只需要一个默认 IdP,则可以为您的领域配置默认身份提供程序。这将绕过 Keycloak 登录页面并将用户直接重定向到身份提供商。更多信息: https: //www.keycloak.org/docs/latest/server_admin/index.html#default_identity_provider

对于多个身份提供商,这不起作用 - 但您可以使用客户端建议的身份提供商功能(https://www.keycloak.org/docs/latest/server_admin/index.html#_client_suggested_idp)。通过在 Keycloak 登录页面的链接上添加 kc_idp_hint 查询字符串参数,它将绕过登录并直接转到该 IdP。在您的 Web 应用程序中,您可以为每个提供程序构建一组链接或按钮,并将 kc_idp_hint 添加到其中。然而,这并不能阻止聪明人仍然进入正常的 Keycloak 登录页面。

创建您自己的登录主题可能是最直接的方法,但我想放弃这些选项,以防其他人发现它有用。

  • 您可以在此处找到确保 IDP 用户无法使用本地用户名/密码登录的解决方案。我已将此作为答案发布,但一个活跃的模组删除了它。https://groups.google.com/g/keycloak-user/c/N9cuqXIBrSA/m/sycLxTZbCAAJ (2认同)

Mar*_*ard 2

我不太确定为什么 Keycloak 不只是在 Realm 中为此提供配置选项..但事实并非如此。也就是说..如果您没有启用自我注册,那么用户无论如何都无法登录?

我认为您需要创建自己的登录主题,然后从主题中删除用户名和密码部分。这可能并不像听起来那么难。