关于论坛的 Webauthn 支持

我注意到论坛是支持 Webauthn 的,比起 TOTP 来说方便了不少,特别在移动端体验简直一流。但是现在的 Webauthn 支持似乎存在一些不足:

  • 现在安全密钥只能作为第二因素身份验证器使用,而不能作为第一因素身份验证器(无密码登录)或者无用户名登录。
  • 如果使用 Windows Hello 人脸识别作为验证器,可以正常设置安全密钥,但无法使用这个密钥验证登录,会提示「无法识别安全密钥所使用的算法」。安卓的指纹验证器是正常的。

根据 Discourse 官方的这个 主题,前者目前应该都是得到支持的,而后者使用的算法在最近几个版本中也已得到支持。

我没有部署 Discourse 的经验,不知道后台存不存在禁用这两者的开关。特别是第一个功能,能极大改善登陆体验,如果可以建议管理员大大开启这个功能。

抱歉,更正一下,第一点似乎还没有得到官方支持。不过第二点应该已经得到支持了。

十月十九号刚提交的代码,现在连 Beta 都没有,怎么实现 :joy:

使我看错了吗 :joy:我以为第二个功能去年已经合并了 FEATURE: Support RS256 algorithm for webauthn by martin-brennan · Pull Request #8385 · discourse/discourse · GitHub

是我看错了,webauthn 在你自己的用户设置里,你启用两步认证就能看到了

开启是正常的,我遇到的问题是如果使用 Windows Hello 验证的话(我没有 YubiKey 之类的设备,Windows Hello 是目前我在 PC 上唯一可用的认证器),登陆时会出现这个提示:


而在安卓上使用指纹认证器是正常的。这样存在的风险是如果有人只使用了 Windows Hello 验证而没有添加其它认证方式的话可能会被锁在账户外无法登录(虽然不知道使用的人多不多)。

上面那个贴子里有提到 Windows Hello 使用了 另一种算法,并且在去年十一月这个算法应该已经被支持了。所以可能是还没有更新到那个版本或者被禁用了?