这非常棒!
不过有个小问题:在 Safari/Mac 上,Web 认证是一个仅限开发者的功能,默认处于关闭状态。启用后,它能正常工作。但我们应该在 Web 认证未启用时显示一条消息或警告。目前,在默认设置的 Safari 中,界面没有任何提示表明注册流程无法运行(控制台会报错):
这非常棒!
不过有个小问题:在 Safari/Mac 上,Web 认证是一个仅限开发者的功能,默认处于关闭状态。启用后,它能正常工作。但我们应该在 Web 认证未启用时显示一条消息或警告。目前,在默认设置的 Safari 中,界面没有任何提示表明注册流程无法运行(控制台会报错):
我猜我们可以使用 navigator.credentials 进行特性检测。
有些人即使觉得多设备很好,也很难证明额外支出的合理性 ![]()
哎呀,我在 navigator.credentials.get 上做了功能检查,但忘了在 create 上做,抱歉!这会很快修复的!
最新的提交似乎可以正常工作。我刚刚在我的安卓手机上成功使用了双因素认证(支持指纹!)。
嘿,Penar,我现在已经修复了这个问题,你能在 Safari 上检查一下吗?https://github.com/discourse/discourse/pull/8146。我只是不确定我使用的功能检测方法在 Safari 关闭该功能的情况下是否有效。
Sam 抢先完成了合并,不过在 Safari 上看起来不错,谢谢 Martin!
没错,但在这种情况下,这是 Discourse 工作的正常部分,因此我们会承担相关费用。如果之前表述不够清楚,抱歉,希望现在清楚了?
恭喜你们支持了 WebAuthn!看到你们没有使用 webauthn gem 而是自己实现了一个解决方案,这很有趣。如果有任何反馈给我们,我很乐意倾听 ![]()
我注意到你们的实现 仅支持算法 -7 (ES256),但根据 微软的文档,Windows Hello 平台认证器(基于 TPM 2.0 硬件)需要 -257 (RS256)。自 2016 年 7 月 28 日起,TPM 2.0 已成为新 Windows 10 桌面型号的要求,因此这涉及相当数量的硬件。
关于“登录流程”原型的一个建议:WebAuthn 有一个 官方标志,可以用来替代通用的指纹图像。除了指纹识别外,面部识别、滑动图案或 PIN 码也是常见的用户验证选项。
@Martin_Brennan 对
有什么看法吗?
感谢你的反馈,Rafe,我们确实需要在此处添加额外的算法。同时也感谢你提供官方标志的链接!我当初只设置一种算法的想法,是为了在 V1 版本中仅添加最少必需的支持算法以使功能正常运行,因为我不确定所有算法之间的细微差别,而且我能找到的所有示例都使用了 ES256。
至于当时为何选择不使用该 gem,我对此反复斟酌了很久,也深知迟早会面临关于这一决定的提问。我确实仔细阅读了该 gem 的大量代码,以更好地理解其实现。主要原因如下:
话虽如此,我当时的决定可能有些误判。如果我们进入 WebAuthn 支持的 V2、V3 等版本,涉及认证、更多支持的算法以及其他功能,那么要让我们成为所谓的“WebAuthn 专家”可能会变得过于繁琐。到那时,我认为我们可以重新评估是否使用该 gem。
支持额外的 RS256 算法的功能现已合并 FEATURE: Support RS256 algorithm for webauthn by martin-brennan · Pull Request #8385 · discourse/discourse · GitHub
看来,iOS 13.3 和 macOS Catalina 10.15.2 现在也支持 FIDO2 认证了 ![]()
此更新还包括错误修复和其他改进。此更新:
- 在 Safari 中增加了对符合 FIDO2 标准的 NFC、USB 和 Lightning 安全密钥的支持**
可惜iPhone还需要第三方设备才行。希望iOS++能在设备认证和安全芯片方面内置此功能,就像Windows、macOS和Android那样。
能看着 Discourse 登录,我真是太激动了!
说实话,我有点惊讶内置的身份验证器支持还没有到位……但无论如何这都是个令人振奋的消息——我会继续屏息以待。
我发现在托管的 Discourse 实例中,为部分用户启用双因素认证(2FA)时可能存在 UI 不一致的问题:
在列出所有“工作人员”用户时,我的账户并未显示已启用 2FA:
请告知这是否是一个 UI 缺陷,还是仅添加安全密钥对于该平台而言不足以启用 2FA。
我会查看一下这个问题,但我的初步判断是,如果实际的 2FA 部分显示正确,那么用户列表中的问题可能只是一个界面显示错误。感谢您的反馈!
这就是问题所在。修复正在构建中,我一旦能够操作就会合并:FIX: Admin user list not showing 2FA icon for only security keys enabled by martin-brennan · Pull Request #8839 · discourse/discourse · GitHub
编辑:现已修复。
Apple 已加入 FIDO 联盟(即快速在线身份联盟),该组织成员已包括 Google、Intel、Microsoft 和 Samsung 等巨头。
在 iOS 14 上,这可以通过 TouchID 或 FaceID 实现。