用途:为 iOS 应用添加通行密钥登录,用 WebAuthn 替代密码认证,并支持从密码体系迁移。
主要能力:配置 ASAuthorizationController 完成通行密钥注册与断言;设置 AutoFill 辅助请求(QuickType 栏);iOS 18+ 自动通行密钥升级;组合凭证请求(通行密钥 + 密码 + Sign in with Apple);配置 webauthn/webcredentials 关联域;排查断言失败或 QuickType 不显示建议。
必要用法:需配置关联域,在 Xcode 添加 webcredentials:example.com,并在域名根路径以 HTTPS、Content-Type: application/json 提供 /.well-known/apple-app-site-association,内容含 webcredentials.apps 与 TEAMID。注册使用 performRequests()(模态),断言主路径使用 performAutoFillAssistedRequests(),且用户名输入框需设置 .textContentType = .username。注册参数中 relyingPartyIdentifier 不带 https:// 前缀,challenge 至少 16 随机字节且不可复用,userID 用随机 UUID 而非邮箱。自动升级需 requestStyle = .conditional,在密码登录成功后调用。
适用场景:iOS 应用通行密钥注册与登录、密码用户渐进迁移、跨设备登录(系统级,需蓝牙邻近验证)、Passwords 应用集成(iOS 18+,通过 OpenGraph 元数据展示名称与图标)。
限制:通行密钥创建需主应用 target,扩展只能执行断言;服务端 userVerification 建议用 preferred 而非 required;AASA 文件经 Apple CDN 缓存,变更最长约 24 小时生效;跨设备登录要求两台设备均开启蓝牙。资料未提供具体收费、价格或平台支持范围等信息。