为了提供可靠的通行密钥体验,我们建议您的应用实现以下功能:
- 用户通行密钥管理:在应用的设置中添加专门的通行密钥管理部分,以便用户管理自己的通行密钥。
- 凭据提供方集成:为了与凭据提供方通信,应用服务器可以实现用于注册、身份验证和删除通行密钥的端点。
用户通行密钥管理
如需让用户管理自己的通行密钥,请在应用中添加一个专门的通行密钥管理部分,以便用户创建、查看、重命名和删除自己的通行密钥。
显示可用的通行密钥
在应用的通行密钥设置中,向用户提供相关信息,包括用于创建凭据的凭据提供方、创建日期和上次使用日期。
如需获取凭据提供方信息,请使用与相应通行密钥相关联的身份验证器证明全局唯一标识符 (AAGUID)。AAGUID 是在创建通行密钥时返回的 PublicKeyCredential 的一部分。借助 AAGUID,您可以识别创建通行密钥的凭据提供方。如需了解详情,请参阅使用 AAGUID 确定通行密钥提供程序。
您的应用可以显示有关通行密钥的以下详细信息:
- 通行密钥名称:显示注册通行密钥时指定的名称。理想名称基于凭据提供方(使用 AAGUID);如果无法识别提供方,请使用
android.os.Build中的设备型号信息。 - 提供方徽标:显示凭据提供方的徽标。此视觉提示有助于用户快速找到要管理的正确通行密钥。
- 时间戳:提供创建时间戳和上次使用时间戳。这些信息有助于用户管理自己的凭据,并识别旧的或未使用的通行密钥。
- 同步状态指示器:默认情况下,通行密钥会与凭据提供方同步,但同步功能可能会有所不同。为避免用户混淆,请明确指出某个通行密钥是否支持同步。
- 上次登录详细信息(可选):提供上次登录的浏览器、操作系统、IP 地址或位置等详细信息。这是一项有价值的可选功能,可帮助用户识别潜在的可疑活动。
除了这些详细信息之外,该界面还应包含一些按钮,让用户可以管理(删除或重命名)每个通行密钥。
创建多个通行密钥
虽然您应该在用户体验历程中为用户提供创建通行密钥的机会(例如在登录后立即提供),但应用的通行密钥设置部分应允许用户从自己选择的凭据提供方创建通行密钥。
为了降低账号被锁定的风险,请允许用户向不同的凭据提供方注册多个通行密钥。如果某个凭据提供方无法访问(例如,平台停止支持或用户失去访问权限),用户可以使用其他通行密钥登录。确保您的数据库支持为每个用户存储这些多重凭据。不过,您可以阻止用户使用同一凭据提供方为同一账号创建通行密钥。
删除通行密钥
应用的通行密钥设置部分应允许用户删除通行密钥。
凭据提供程序集成
为了使应用服务器和凭据提供方之间的通行密钥保持一致,请在应用服务器上通过预定义路径 /.well-known/passkey-endpoints 启用通行密钥管理。这样一来,凭据提供方就可以直接使用这些端点进行通行密钥管理。如需了解详情,请参阅添加通行密钥端点。
其他资源
- 通行密钥用户体验指南
- 视频:如何在支持通行密钥的 Android 应用中降低对密码的依赖
- Codelab:了解如何在 Android 应用中使用 Credential Manager API 简化身份验证流程
- 示例应用:CredentialManager