我已经测试过了https://webauthn.io/在我的mac和iphone上。在iPhone上,我可以在Chrome上注册,也可以在Safari上登录,但在macos上,我必须在Chrome和Safari上分别注册。
我想知道公钥存储在哪里,为什么macos和ios的行为不同?
通过macOS Big Sur WebAuthn凭据确实独立于各个浏览器。实际上,这意味着在Safari中注册的Touch ID凭据不能在Chrome中进行身份验证,也不能在Edge(Chromium(中使用Chrome凭据。每个浏览器必须注册Touch ID,凭证ID仅对其注册的浏览器有效。
正如您所指出的,iOS在14.5中获得了操作系统级别的凭据存储(如果我没记错的话(,类似于Windows Hello。这还有一个额外的好处,即允许WebAuthn在所有浏览器应用程序中使用,而不仅仅是Safari.app,并且Touch ID只需要在任何浏览器应用程序上注册一次即可进行身份验证。
最后,我要说的是,即将推出的苹果iCloud钥匙链支持的"密钥"预览版似乎在macOS Monterey中提供了一个急需的Windows Hello风格的操作系统级凭据存储:
https://developer.apple.com/wwdc21/10106