服务器端通行密钥实现简介

概览

使用同步的通行密钥时,用户可以通过通行密钥提供方进行身份验证。

若要创建通行密钥并使用通行密钥进行身份验证,请使用适用于网站的 WebAuthn API 或适用于 Android 应用的 Credential Manager API。这些 API 可处理客户端与通行密钥提供程序之间的通信。

虽然这些 API 是从客户端(例如网页或 Android 应用)调用的,但您需要在服务器上实现其余功能,才能完成身份验证用例。

通行密钥实现包括两项功能:

  1. 通行密钥注册。使用 WebAuthn API 或 Credential Manager API 让用户创建通行密钥。将关联的公钥存储在服务器上。
  2. 使用通行密钥进行身份验证。从服务器获取身份验证质询,并使用 WebAuthn API 或 Credential Manager API 让用户使用其通行密钥签署此质询。在服务器上验证签名。如果签名有效,则对用户进行身份验证。

服务器端库

虽然您可以从头开始实现服务器端通行密钥功能,但我们建议您改为依赖库。

支持通行密钥创建和身份验证的服务器称为 FIDO2 服务器,简称 FIDO 服务器。在这里,我们将实现通行密钥支持的服务器端库称为 FIDO 服务器端库

为什么要使用库?

使用 FIDO 服务器端库具有以下几项优势:

  • 时间和开发者经验。WebAuthn 规范非常复杂。FIDO 服务器端库可提供用于实现通行密钥的简单 API,从而为您节省时间和开发资源。
  • 可维护性WebAuthn 规范可能仍会发生变化。使用得到积极维护的库的最新版本有助于让您的实现保持最新状态。
  • 安全与合规性。您希望通行密钥实现符合 WebAuthn 规范及其安全要求。FIDO 服务器端库可帮助您确保实现的安全性并符合规范。根据您的产品和行业,您的实现可能还需要遵守要求您使用特定安全标准进行身份验证的法规。

如果可能,请考虑为产品所依赖的开源项目提供资金支持。

后续步骤