Keycloak 不提供无密码身份验证作为登录期间的第一个选项

cod*_*ent 5 keycloak webauthn redhat-sso

我已经为以下行为配置了 Keycloak 身份验证:

  • 用户输入其用户ID
  • Keycloak 应尝试使用无密码流程对其进行身份验证
  • 作为替代方案,用户可以切换到密码身份验证

注意:用户已经拥有注册的无密码设备:

在此输入图像描述

身份验证流程配置如下:

在此输入图像描述

我访问localhost:8080/realms/myrealm/account并单击“登录”:

在此输入图像描述

我输入用户ID:

在此输入图像描述

但是,系统并没有要求我使用安全设备进行注册,而是要求我输入密码:

在此输入图像描述

如果我选择尝试其他方式并单击安全密钥:

在此输入图像描述

在此输入图像描述

我现在可以使用该设备登录:

在此输入图像描述

我能成功做到这一点。

这里的问题是我需要直接提供无密码登录,而不是密码形式。无密码实际上被配置为第一个替代选项,那么为什么它没有按预期工作呢?

在此输入图像描述

sve*_*ben 3

查看AuthenticationSelectionResolver的代码,这似乎是预期的行为。尝试从管理控制台中更改用户的凭据顺序/位置。

在此输入图像描述

凭证的顺序应该影响替代验证器的执行顺序。