Webauthn在iOS/Safari上的状态是什么?

10

我几天后要做一次关于FIDO2/Webauthn标准的演示,很高兴看到Yubico网站上的这篇文章称,像Android一样,苹果已经通过NFC添加了对FIDO身份验证的支持。我让我的一些同事在运行iOS 13.1的新设备上去了各种Webauthn测试网站(webauthn.me、webauthn.io等),但它们都显示浏览器不受支持的错误(safari和chrome皆然)。是否需要执行某些操作才能启用此功能,还是我们正在等待苹果更新以启用该功能?


请看我的更新答案。 - mackie
4个回答

4
我们也在等待。值得注意的是,iOS 13中新增了NFC写入支持,这是个好消息。WebAuthn JavaScript API也作为实验功能在Safari中可用,但暂时还不能执行FIDO2/CTAP2操作。
我完全期待不久的将来会出现原生支持(使用NFC、Lightning和内置PIN/Touch/Face ID)——特别是考虑到苹果已经开始支持,桌面版Safari的支持也不错。
问题是什么时候……
编辑添加于2019年12月15日:
截至2019年12月10日,iOS 13.3上的Safari支持使用NFC、Lightning或USB安全密钥进行第二因素(即非用户名/无密码)登录。我使用了两个支持NFC的不同Yubico密钥进行了测试。
不幸的是,在此时似乎不能通过WebAuthn API进行注册。它会弹出一个UI提示,让你插入或轻触密钥,但似乎没有任何反应。
目前还不支持使用手机本身作为安全密钥,使用PIN、Touch ID或Face ID。
尽管如此,这仍然是一个重要的进展,我只能希望苹果继续扩展支持的功能集。
文章链接:https://www.yubico.com/2019/12/native-support-for-webauthn-and-fido-is-finally-here-on-iphones-and-ipads/ 更新添加了iOS上Touch ID和Face ID的公告: https://developer.apple.com/videos/play/wwdc2020/10670/

Mac 上的 TouchID 已经可用。另外:如果您在 yubikey 上关闭了密码,USB 密钥可以在 Safari 中使用。由于某种原因,苹果目前尚未支持登录时的 PIN 码:/ - zackify

3
更新: 从iOS 13.3开始,Safari增加了WebAuthn支持。使用NFC、Lightning或USB的兼容安全密钥应该可以与当前API实现一起工作。我已经能够使用我的Yubikey 5Ci使用Lightning进行验证。
原回答: 目前,iOS/iPadOS中没有对WebAuthn API的支持,也没有启用它的方法。据我所知,iOS上的FIDO身份验证目前仅适用于已集成它的应用程序。
此页面上,您可以看到目前哪些浏览器支持WebAuthn API(或任何其他Web API)。

3

在iOS 13中,仍然无法使用FaceID进行身份验证。我向Chrome团队提交了一个请求:https://bugs.chromium.org/p/chromium/issues/detail?id=1101804 - Thang Le

0

我已经使用一年左右的NFC钥匙(FEITAN ePass FIDO - NFC安全钥匙)与我的iPhone 7一起使用,使用的是最新的iOS版本。此外,我的iPhone 7和iPad Air 2上的Touch ID也运行良好(这些设备没有Face ID,因此无法测试)。

关于Touch ID,它有点棘手。如果您使用回调而不是与按钮事件相同的线程来调用navigator.credentials.create({publicKey}),则它不会作为在Safari javascript中注册的选项出现。发现这一点很麻烦!因此,不能使用“setTimeout(register...)”或承诺(.then/await)来启动使用Touch ID进行注册。

我在服务器端使用https://www.npmjs.com/package/fido2-lib作为后备库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接