服务器端通行密钥实现简介
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
概览
使用已同步的通行密钥时,用户会通过通行密钥提供方进行身份验证。
若要创建通行密钥并使用通行密钥进行身份验证,您需要针对网页使用 WebAuthn API,或针对 Android 应用使用 Credential Manager API。这些 API 可处理客户端与通行密钥提供程序之间的通信。
虽然这些 API 是从网页或 Android 应用等客户端调用的,但您需要在服务器上实现其余功能才能完成身份验证用例。
通行密钥实现包含两个功能:
- 通行密钥注册。使用 WebAuthn API 或 Credential Manager API 让用户创建通行密钥。将关联的公钥存储在服务器上。
- 使用通行密钥进行身份验证。从服务器获取身份验证质询,并使用 WebAuthn API 或 Credential Manager API 让用户使用其通行密钥对此质询进行签名。在服务器上验证签名。如果签名有效,请对用户进行身份验证。
服务器端库
虽然您可以从头开始实现服务器端通行密钥功能,但我们建议您改用库。
支持通行密钥创建和身份验证的服务器称为 FIDO2 服务器(简称 FIDO 服务器)。概括而言,我们将在这里将实现通行密钥支持的服务器端库称为 FIDO 服务器端库。
为什么要使用库?
使用 FIDO 服务器端库具有多项优势:
- 时间和开发者体验。WebAuthn 规范非常复杂。FIDO 服务器端库可提供简单的 API 来实现通行密钥,从而节省时间和开发资源。
- 可维护性。WebAuthn 规范仍可能会发生变化。使用积极维护的库的最新版本有助于让您的实现保持最新状态。
- 安全与合规性。您希望通行密钥实现符合 WebAuthn 规范及其安全要求。FIDO 服务器端库可帮助您确保实现的安全性并符合相关规范。根据您的产品和行业,您的实现可能还需要遵守法规,要求您使用特定的安全标准进行身份验证。
如果可能,考虑为您的产品所依赖的开源项目提供资金支持。
库
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-06-27。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2024-06-27\u3002"}
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-06-27。"]]