我想使用 Keycloak 和 Windows Hello(或支持的安全密钥)实现真正的无登录(不是无密码)身份验证。这意味着我不想输入我的用户名或密码。(Keycloak 应该自动从我的安全密钥/Windows Hello 中提取用户名)
据我正确理解文档0,这应该可行。并非每个安全密钥都受支持(因为它必须能够在密钥本身上存储用户凭据),但应该支持 Windows Hello,请参阅1。
为了使 WebAuthn 与 Windows Hello 配合使用,我添加了签名算法 RS256,如2中所述:
另外我设置了 userverification=yes和resident key=yes, 3:
与3中一样,我的身份验证流程现在仅包含一行:WebAuthn 无密码身份验证器,必需。
我已经使用用户名、密码和安全密钥注册了一个用户(在更改身份验证流程之前)。
但是,当我将身份验证流程更改为无需登录的身份验证流程时,单击输入时会收到此错误消息:我们很抱歉...用户名或密码无效。
谁能帮我?
此外,有没有一种方法可以在没有密码(即只有安全密钥)的情况下注册新用户?目前,切换到免登录身份验证流程后,我无法再注册新用户(因为我总是收到错误消息)。
我也在Keycloak Github上问了同样的问题
请注意我最后的附录!
我部分地设法解决了我的问题。但仍有一些悬而未决的问题。以下是我的配置和步骤:
添加安全密钥
我最近在另一个 Keycloak 实例上尝试了我原来答案的配置,但它再次不起作用。
所以我当前的假设是,它取决于 Keycloak 版本,即它必须至少是版本 18.0.0,因为:
We are sorry... Invalid username or password.
This assumption would also match the Keycloak 18.0.0 release notes, see section WebAuthn improvements. Note, they call the "login-less" flow "id-less".
Keycloak 现在支持 WebAuthn 无 id 身份验证。此功能允许 WebAuthn 安全密钥在身份验证期间识别用户,只要该安全密钥支持驻留密钥
此外,我在互联网上发现,如果想在远程服务器(即不是本地)上进行无登录身份验证,则需要
为了验证无登录状态,必须:
这只是一个假设,我只能对其进行部分测试。目前我无法访问安装了最新 Keycloak(即至少 18.0.0)的服务器。
| 归档时间: |
|
| 查看次数: |
2741 次 |
| 最近记录: |