跳到主要内容

密码钥匙 (Passkeys)(WebAuthn)

密码钥匙 (Passkey) 为传统密码提供了一种更安全且更易用的替代方案。通过使用公钥加密技术,密码钥匙提升了安全性,将用户设备、服务域名和用户 ID 绑定在一起,有效防止钓鱼和密码攻击。兼容多种设备或浏览器,并允许用户使用生物识别和硬件安全特性实现便捷的认证 (Authentication)。WebAuthn 提供了 API,使网站能够实现密码钥匙功能。

Logto 现已支持用于多因素认证 (MFA) 的密码钥匙(WebAuthn)。密码钥匙登录功能即将上线,敬请关注后续更新。

概念

客户通常了解的是密码钥匙 (Passkeys) 而不是 WebAuthn,那么它们之间是什么关系,如何使用?让我们来探索这些概念:

  • 密码钥匙 (Passkeys):密码钥匙是一种基于 FIDO、抗钓鱼的凭证,用于替代密码。它利用非对称公钥加密技术提升安全性。它可以是硬件令牌或安全密钥,如 USB 或蓝牙设备。由于“密码钥匙 (Passkeys)”是展示给用户的认证 (Authentication) 方式,因此应在你的产品客户端中使用该术语。
  • WebAuthn:它是由 W3C 和 FIDO 联盟开发的 JavaScript API,使 Web 应用能够采用 FIDO2 标准进行认证 (Authentication)。密码钥匙 (Passkeys) 是 WebAuthn 支持的认证 (Authentication) 方式之一。在 Logto 控制台中,我们专业地将此集成称为“WebAuthn”。

WebAuthn 为用户提供了多样的认证器选择,分为本地和云端两种类型:

  • 平台认证器(内部认证器):它绑定于单一且特定的设备操作系统,如电脑、笔记本、手机或平板,用户通过该设备登录。它仅在该设备上通过生物识别或设备密码等方式进行授权,因此认证 (Authentication) 速度很快。例如,macOS 或 iOS 上通过 Touch ID、Face ID 或设备密码验证的 iCloud 钥匙串;Windows Hello 通过人脸识别、指纹或 PIN 验证。
  • 漫游认证器(外部认证器、跨平台认证器):它是独立的便携设备或软件应用,如硬件安全密钥或智能手机。需要通过 USB 连接设备或保持 NFC、蓝牙开启。漫游认证器不受限于单一设备或浏览器,提供更大的灵活性。

想深入了解 WebAuthn 的原理和流程,可以参考我们的博客:WebAuthn 和密码钥匙 (Passkeys) 101 以及 集成 WebAuthn 前你应该知道的事

配置用于 MFA 的密码钥匙验证

  1. 前往 控制台 > 多因素认证 (MFA)
  2. 启用“密码钥匙 (Passkeys)(WebAuthn)”因子。建议将密码钥匙与其他 MFA 因子(TOTP、短信、备份码)结合使用,以减少对单一因子的依赖。
  3. 配置你偏好的 MFA 策略(必需或可选)
  4. 保存你的配置更改
注意限制:

在实现 WebAuthn 时,务必注意以下一些限制:

  1. 平台和浏览器限制:需要注意,Logto 目前尚未为原生应用提供 WebAuthn 支持。此外,WebAuthn 认证器的可用性取决于浏览器和设备能力(查看支持列表)。因此,WebAuthn 并不是实现多因素认证 (MFA) 的唯一选项,否则你可以控制哪些浏览器和设备可以访问你的产品。
  2. 域名限制:更换域名会阻碍用户通过现有 WebAuthn 账户进行验证。密码钥匙 (Passkeys) 绑定于当前网页的特定域名,无法跨域使用。
  3. 设备限制:丢失设备可能导致用户无法访问其账户,尤其是依赖“此设备”平台认证器的用户。为提升认证 (Authentication) 可用性,建议为用户提供多种认证 (Authentication) 因子。

配置密码钥匙管理

你可以使用 Account API 构建自定义账户管理界面,让用户添加、查看、重命名和移除他们的密码钥匙 (Passkeys)。这对于打造个性化账户中心和实现跨设备备份场景非常有用。

详细的实现步骤和 API 端点,请参见 通过 Account API 进行账户设置

密码钥匙设置流程

密码钥匙 (Passkeys) 规范要求用户在当前页面主动点击按钮以启动认证 (Authentication) 组件。这意味着在设置和验证流程中,用户都应被重定向到落地页以启动 WebAuthn。

WebAuthn 设置流程

密码钥匙验证流程

当用户设置了包括密码钥匙 (Passkeys) 在内的多种 MFA 方式时,密码钥匙 (Passkeys) 会因其更高的安全性和便利性,在首屏作为推荐的 MFA 验证方式展示。用户可以点击下方的“尝试其他方式验证”切换到其他验证方式。阅读 配置 MFA 了解更多信息。

WebAuthn 验证流程 集成 WebAuthn 前你应该知道的事 WebAuthn 和密码钥匙 (Passkeys) 101