通行密钥是一种更安全、更简单、更快速的登录方式,可替代密码,为用户提供更强大的安全保障和更便捷的使用体验。为了充分发挥通行密钥的潜力,必须仔细考虑与其管理相关的用户体验。本文档概述了设计直观、安全且可靠的通行密钥管理系统的准则和可选功能。
管理多个通行密钥
允许用户添加多个通行密钥,并使用多个提供程序。 但不要让他们为同一账号使用同一提供商添加多个通行密钥。 如果用户失去对某个提供商的访问权限(例如,平台不支持该提供商,或者用户失去对该提供商的访问权限),则仍可以使用其他提供商提供的其他通行密钥登录。此设置可降低账号被锁定的风险。确保您的数据库支持为每位用户存储多个通行密钥。
显示已注册通行密钥的列表
您的网站或应用应在列表中显示已注册的通行密钥及其关键详细信息,以帮助用户有效地管理这些通行密钥。此屏幕截图展示了此类专用通行密钥管理页面的可能外观。该页面展示了用户如何在多个平台上创建通行密钥,并提供了集中式位置来管理这些通行密钥。

以下是网站和应用可以显示的有关通行密钥的一些常见详细信息和功能:
- 通行密钥名称:显示注册时提供的通行密钥名称。理想情况下,此名称应与基于 AAGUID 创建的通行密钥提供程序一致。如果找不到匹配的通行密钥提供程序,则可以根据用户代理字符串根据设备信息进行命名。
- 通行密钥提供商徽标:显示通行密钥提供商徽标。这有助于用户识别要管理的通行密钥。
- 通行密钥的创建时间和上次使用时间戳:记录和显示通行密钥的创建时间戳和上次使用时间戳还有助于用户识别要管理的通行密钥。
- 非同步指示器:通行密钥默认会同步,但通行密钥提供程序同步功能仍在不断发展。通行密钥未按用户预期同步是常见的困惑。显示通行密钥无法同步有助于用户消除这种困惑。
- 删除按钮:允许用户删除通行密钥。如需了解详情,请参阅允许删除通行密钥。
- “修改”按钮:许多用户都希望能够重命名通行密钥。 例如,当有来自同一通行密钥提供商但具有不同提供商账号的多个通行密钥时。假设您将多个通行密钥保存到不同的 Google 账号中。允许用户重命名通行密钥,这样他们就可以将其更改为自己喜欢的名称。
- 上次登录的浏览器、操作系统或 IP 地址:可选提供有关上次登录的详细信息,有助于用户识别可疑的登录。用于登录的浏览器、操作系统或 IP 地址(或位置)可能非常有用。
允许删除通行密钥
允许用户删除通行密钥。这有助于他们整理列表,例如,当用户切换到新设备但关联的通行密钥绑定到旧设备时。如果攻击者盗用用户账号并创建通行密钥以供日后使用,此功能也非常有用。
指示更新后的通行密钥列表
删除通行密钥会从服务器数据库中移除其凭据条目和公钥。这样,通行密钥就会从已注册的通行密钥列表中消失,并且系统会向用户显示通行密钥已被删除。不过,实际上,系统只会从服务器中移除通行密钥,存储在通行密钥提供程序中的通行密钥仍会保留,这可能会造成混淆。当用户下次尝试登录时,已移除的通行密钥仍会显示为登录选项。但是,使用该密钥进行身份验证将会失败,因为匹配的公钥已从服务器中删除。
为避免混淆,请务必让通行密钥提供程序上的通行密钥与服务器上的公钥保持一致。为此,您可以向通行密钥提供程序发送更新后的通行密钥列表。如果浏览器和通行密钥提供程序支持 Signal API,则可以更新通行密钥列表并删除不必要的通行密钥。如果用户不支持该 API,请鼓励用户手动删除通行密钥。
删除上一个通行密钥
如果用户尝试删除指定账号的最后一个通行密钥,请确保他们了解自己将不得不改用其他登录方式,这种方式会更麻烦,并且可能提供的保护程度较低。如果这是用户登录您网站的唯一方式,他们将无法再次登录。告知用户下次如何登录,例如使用备用方法(如果有)或提示他们在继续之前注册另一个通行密钥。这是一个很好的机会,可以收集用户选择不使用通行密钥的原因的反馈。
允许创建新的通行密钥
虽然在用户体验历程中有机会创建通行密钥(例如在登录后立即创建),但拥有一个集中的枢纽至关重要,用户可以随时前往该枢纽创建新的通行密钥、删除通行密钥和管理通行密钥。通行密钥管理界面是展示此信息的最佳位置。
如需创建通行密钥用户流程,请参阅创建通行密钥以实现无密码登录开发者指南。如需增强安全性,不妨考虑允许用户在实体安全令牌上创建通行密钥。您可以预料到,愿意管理通行密钥的用户会更有知识或经验,因此允许他们在安全密钥上创建通行密钥可以提高灵活性。
如需允许将通行密钥保存到硬件安全令牌,请在通行密钥创建请求中将 authenticatorSelection.authenticatorAttachment
保持未设置状态,而不是将其设置为 "platform"
。这样一来,浏览器既接受平台(设备)身份验证器,也接受漫游身份验证器(安全密钥),而用户体验与仅允许平台身份验证器相比没有明显差异。在安全密钥上创建通行密钥的选项会显示为次要选项。
核对清单
- 允许用户在通行密钥管理页面中管理通行密钥。
- 支持注册多个通行密钥。
- 允许用户在管理页面上添加灵活的新通行密钥类型。
- 显示通行密钥名称。
- 指示通行密钥是否可同步。
- 允许用户从服务器中移除公钥。
- 从服务器中移除关联的公钥时,向通行密钥列表发送信号。
其他用户体验指南
- 通行密钥常规用户体验指南
- Android 指南