了解 ios、ipados、macos 和 visionos 26 在通行密钥方面的增强功能。我们将探索的重要更新包括:简化注册流程的全新账户创建 api、确保通行密钥保持最新的措施、通过自动通行密钥升级和通行密钥管理端点驱动通行密钥升级的新方式,以及通行密钥的安全导入/导出。了解这些改进如何提升用户体验和安全性,以及如何在 app 中实施这些更新以便提供更流畅、更安全的身份验证体验。为了充分从这个讲座中获益,请先观看 wwdc22 讲座“通行密钥简介”。

视频封面
视频地址

此文章由AI生成,可能存在错误,如有问题,请联系djs66256@163.com

iOS、iPadOS、macOS 和 visionOS 26 中通行密钥的新功能

苹果公司在 WWDC24 上展示了 iOS、iPadOS、macOS 和 visionOS 26 中针对通行密钥的五大重要更新,旨在进一步提升身份认证的安全性和用户体验。

引言:迈向无密码未来

通行密钥作为密码的替代方案,从根本上解决了传统密码认证的安全性和可用性问题。根据 FIDO Alliance 2025年的研究,69%的受访者至少拥有一个通行密钥。Google的数据显示,使用通行密钥登录的成功率是密码的四倍,而TikTok更是达到了97%的成功率。

随着行业向仅由不可钓鱼因素保护的身份认证转型,苹果在新系统中推出了五项关键改进,帮助开发者更轻松地实现这一目标。

1. 账户创建 API:快速安全的注册体验

全新的账户创建 API 彻底简化了用户注册流程。与传统需要填写复杂表格的方式不同,新API提供了预填信息的简化界面:

let provider = ASAuthorizationAccountCreationProvider()
let request = provider.createPlatformPublicKeyCredentialRegistrationRequest(
    acceptedContactIdentifiers: [.email, .phoneNumber],
    shouldRequestName: true,
    relyingPartyIdentifier: "example.com",
    challenge: try await fetchChallenge(),
    userID: try await fetchUserID()
)

这种注册方式消除了密码创建的步骤,整个过程快速、简单且安全。用户注册后,其通行密钥会自动保存在密码应用中,并在所有设备上可用。

2. 保持通行密钥更新:确保信息准确性

账户信息会随时间变化,新的API允许应用通知凭证管理器这些变更:

// 更新用户名
try await ASCredentialUpdater()
    .reportPublicKeyCredentialUpdate(
        relyingPartyIdentifier: "example.com",
        userHandle: userHandle,
        newName: "new@example.com"
    )
    
// 撤销通行密钥
try await ASCredentialUpdater()
    .reportAllAcceptedPublicKeyCredentials(
        relyingPartyIdentifier: "example.com",
        userHandle: userHandle,
        acceptedCredentialIDs: acceptedCredentialIDs
    )

这些API确保凭证管理器显示的信息始终是最新的,防止因过时信息导致的登录问题。

3. 自动通行密钥升级:无缝过渡到更安全认证

对于仍使用密码的账户,系统提供了自动升级为通行密钥的无缝路径:

let request = provider.createCredentialRegistrationRequest(
    challenge: try await fetchChallenge(),
    name: accountDetails.userName,
    userID: accountDetails.userID,
    requestStyle: .conditional
)

当用户用密码登录后,如果账户没有通行密钥,系统会自动尝试创建,整个过程在后台完成,不会中断用户体验。

4. 通行密钥管理端点:提升可发现性

通过实现well-known URL端点,应用可以:

  • 提供通行密钥注册页面的链接
  • 让用户直接从凭证管理器升级到通行密钥
  • 不需要任何客户端代码修改

这个标准化的方法适用于所有参与凭证管理器。

5. 安全导入/导出通行密钥

新系统允许通行密钥在参与凭证管理器之间安全传输:

  • 用户发起且受Face ID等本地认证保护
  • 不使用不安全的中介文件
  • 基于FIDO Alliance标准的数据格式
  • 无需应用做任何适配

结论:共同构建无密码未来

这些改进使通行密钥更易于创建、使用和管理。开发者可以通过以下步骤改善用户体验:

  1. 采用账户创建API简化注册
  2. 使用信号API保持信息更新
  3. 启用自动通行密钥升级
  4. 提供通行密钥管理端点

随着行业共同努力,无密码的未来正在成为现实。

相关视频

利用通行密钥升级和凭证管理器简化登录体验
通行密钥简介

文档

ASCredentialExportManager
ASCredentialProviderViewController
Performing fast account creation with passkeys