从 Chrome 118 或 macOS 13.5 或更高版本开始,Chrome 支持在 iCloud 钥匙串中使用通行密钥。
通行密钥是一种更安全、更易于使用的登录方式,可作为密码登录的替代方法。借助通行密钥,用户可以通过生物识别传感器(如指纹或人脸识别)、PIN 码或图案解锁设备屏幕,从而登录应用和网站。有了通行密钥,用户不再需要记住和管理密码。Chrome 已支持在许多操作系统上使用通行密钥。
此前,在 macOS 上创建的通行密钥仅存储在用户的 Chrome 个人资料本地。这些凭据不会同步,即使它们是可检测到的凭据也是如此。
![Chrome 的通行密钥对话框,用于创建新的通行密钥。通行密钥将保存到本地的 Chrome 个人资料中。](https://developer.chrome.google.cn/static/blog/passkeys-on-icloud-keychain/image/create-new-passkey.png?authuser=5&hl=sk)
从 Chrome 118 开始,在 macOS 13.5 或更高版本上,用户可以选择将通行密钥保存在 iCloud 钥匙串中,以及从 iCloud 钥匙串中使用这些密钥。存储在 iCloud 钥匙串中的通行密钥会在 Apple 生态系统中同步。
Chrome 如何支持 iCloud 钥匙串
开发者无需进行任何更改即可将其通行密钥实现与 iCloud 钥匙串保持一致。Safari 和 Chrome 上采用 iCloud 钥匙串的 API 行为是相同的。使用 Chrome 118 及更高版本且使用 macOS 13.5 或更高版本的用户将看到以下更改:
注册
创建新的通行密钥时,系统会显示 macOS 的系统用户验证对话框。此对话框与 Safari 的对话框相同。
![macOS 的系统用户验证对话框,要求使用触控 ID 来创建新通行密钥。](https://developer.chrome.google.cn/static/blog/passkeys-on-icloud-keychain/image/macoss-system-user-verif-26f94e333cfb9.png?authuser=5&hl=sk)
界面因设备上支持的用户验证方法(例如 Apple Watch、触控 ID 或系统密码)而异。用户验证其身份后,系统会创建一个新的通行密钥并将其保存到 iCloud 钥匙串。
iCloud 钥匙串可将已保存的通行密钥同步到运行 macOS、iOS 或 iPadOS(用户使用同一 iCloud 帐号登录的其他 Apple 设备)上,这样用户就可以使用该通行密钥登录网站和应用。
存储在 iCloud 钥匙串中的通行密钥也可用于不同的浏览器。 例如,在 Safari 中创建的通行密钥可在 macOS 上的 Chrome 中使用,反之亦然。
身份验证
用户还可以使用 iCloud 钥匙串中存储的通行密钥来访问您的网站。
![macOS 的系统用户验证对话框,会要求触控 ID 使用已保存到 iCloud 钥匙串中的通行密钥进行登录。](https://developer.chrome.google.cn/static/blog/passkeys-on-icloud-keychain/image/macoss-system-user-verif-82a5831022128.png?authuser=5&hl=sk)
请注意,之前存储在 Chrome 个人资料中的通行密钥仍可继续使用,但会优先使用存储在 iCloud 钥匙串中的通行密钥。如果只有 Chrome 个人资料中的通行密钥可用,它将用于对用户进行身份验证。
![Chrome 的通行密钥对话框,可使用已保存到 Chrome 个人资料的通行密钥进行登录。](https://developer.chrome.google.cn/static/blog/passkeys-on-icloud-keychain/image/chromes-passkey-dialog-549dbc44fb7f6.png?authuser=5&hl=sk)
如果使用表单自动填充功能(条件界面)请求身份验证,且用户已向 Chrome 授予必要的权限,则 iCloud 钥匙串中的通行密钥会列在自动填充建议中。如果 Chrome 个人资料中存储了通行密钥,系统也会建议这些密钥。
![表单自动填充功能会建议 iCloud 钥匙串和 Chrome 个人资料中的通行密钥。](https://developer.chrome.google.cn/static/blog/passkeys-on-icloud-keychain/image/form-autofill-suggests-pa-62f1ec393f92a.png?authuser=5&hl=sk)
正在将通行密钥保存到 Chrome 个人资料
即使支持 iCloud 钥匙串,用户也可以选择默认将通行密钥保存到其 Chrome 个人资料。
- 在 Chrome 中,访问
chrome://password-manager/settings
- 关闭在您的 Apple 设备上使用通行密钥切换开关,以便默认将通行密钥显式存储到 Chrome 个人资料。
![用户可以选择将通行密钥存储在 Chrome 个人资料中(仅在本地提供,不会同步)。](https://developer.chrome.google.cn/static/blog/passkeys-on-icloud-keychain/image/the-user-choose-store-p-4108856a35e6f.png?authuser=5&hl=sk)
用户也可以取消 macOS 的用户验证对话框,然后选择“iCloud 钥匙串”或“Chrome 个人资料”以保存新的通行密钥。
![如果用户取消该对话框,Chrome 会要求选择如何创建通行密钥。](https://developer.chrome.google.cn/static/blog/passkeys-on-icloud-keychain/image/if-user-cancels-dialog-207d8b21c3b88.png?authuser=5&hl=sk)
区分通行密钥的来源
同样,开发者无需进行任何更改即可将其通行密钥实现与 iCloud 钥匙串保持一致。Chrome 个人资料和 iCloud 钥匙串之间的 API 行为完全相同。
信赖方可以找出通行密钥的来源,并通过查看凭据的身份验证器数据中的 AAGUID(用于指示身份验证器类型的标识符)来区分通行密钥是创建在 iCloud 钥匙串还是 Chrome 个人资料上。
在 Chrome 个人资料中创建的通行密钥的 AAGUID 为:adce0002-35bc-c60a-648b-0b25f1f05503
。截至 2023 年 9 月,iCloud 钥匙串的格式为 00000000-0000-0000-0000-000000000000
。您可以在众包 AAGUID 代码库中找到已知的 AAGUID。
iCloud 钥匙串激活
用户首次尝试时,必须授予 Chrome 在 macOS 上使用 iCloud 钥匙串的权限。
如果用户尝试使用 iCloud 钥匙串通行密钥但未登录 iCloud 或未启用 iCloud 钥匙串同步功能,系统会将其定向到“系统设置”。
![当用户的 macOS 上未启用 iCloud 钥匙串时显示的对话框。](https://developer.chrome.google.cn/static/blog/passkeys-on-icloud-keychain/image/a-dialog-shown-icloud-ke-501a3e89f3912.png?authuser=5&hl=sk)