用于密钥的工具和库
本主题包含有关工具和库的信息,可帮助你实现通行密钥。
Libraries
选择条件
如果想要在内部拥有无密码身份验证,或者想要为密钥实现一个交钥匙解决方案,则可能需要查找库或供应商。 选择库以实现密钥时,作为信赖方(RP)的开发人员应该注意什么?
注意
这些条件中的一小部分不是特定于密钥的,但在选择开源解决方案时要记住这一点很有用。
WebAuthn 版本和功能
- 版本。 检查库支持的规格版本(级别 2、级别 3 等)。
- 特性和功能。 检查库是否包含用例的关键特性和功能。
- 库是否有助于生成注册和身份验证选项? 它是否有助于验证注册和身份验证响应? 从信赖方(RP)的角度来看,这些是实现的关键步骤。 因此,请确保选择的库为这些步骤提供了有用的函数。
- 如果考虑使用证明功能:
- 库是否有助于以某种方式利用 FIDO MDS?
- 库是否可以验证所有证明语句格式?
验证步骤
检查库是否遵循必要的验证步骤:
- 注册期间。
- 在身份验证期间。
用户界面(UI)和用户体验(UX)
如果要查找提供 UI 元素的库:
- 视觉一致性。 检查解决方案是否使用标准化图标。
- 清除语言。 使用纯语言的说明对于更广泛的用户理解至关重要。 确定符合 FIDO UX 准则的解决方案的优先级。
开发人员体验
- 全堆栈覆盖。 提供紧密集成的前端和后端组件的库(例如 SimpleWebAuthn)可以简化集成。
- 开发人员文档。 为了简化集成过程,请检查该库是否具有维护的文档网站。
开发人员参与和维护
- 开源维护。 对于开源选项,请调查其社区活动。 一些活动问题,或具有最新标签的许多问题(假设需要手动分配的问题)和参与者的评论都是活动社区的信号。
- 耐心。 标准可能会缓慢移动。 因此,如果更新没有任何实际问题,WebAuthn/passkey 库在更新之间可能会很长一段时间。 但这并不意味着图书馆不受管理。
许可
在项目的上下文中查看解决方案的许可模型(例如 MIT、Apache、commercial)。
更新了密钥
- Rust。 Webauthn-rs - Rust 服务器应用程序的 Webauthn (威廉·布朗)。
- TypeScript。 SimpleWebAuthn (马修·米勒)。
- Java。 java-webauthn-server (Yubico)。
其他 FIDO2/WebAuthn 库
WebAuthn Awesome GitHub 存储库也会定期使用社区中的库进行更新。
- .NET FIDO2 .NET 库 (Anders Åberg, Alex Seigler)。
- Go。 WebAuthn 库。
- Java。 WebAuthn4J (Yoshikazu Nojima)。
- Python。 py_webauthn (双实验室)。
- Ruby。 webauthn-ruby (Cedarcode)、 设计::P asskeys (Ruby Passkeys、webauthn-ruby 周围的包装器)和 Warden::WebAuthn (Ruby Passkeys,webauthn-ruby 周围的包装器)。
测试站点和工具
除了下面各节中列出的资源外, WebAuthn Awesome GitHub 存储库还会定期使用社区中的工具和演示进行更新。
基本 FIDO2/WebAuthn 工具
高级 FIDO2/WebAuthn 工具
后续步骤
接下来,请参阅 密钥参考。