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

概览

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

若要创建通行密钥并使用通行密钥进行身份验证,您需要针对网页使用 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 服务器端库可帮助您确保实现的安全性并符合相关规范。根据您的产品和行业,您的实现可能还需要遵守法规,要求您使用特定的安全标准进行身份验证。

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

后续步骤