首页 > 解决方案 > Android 上的 Chrome 是否支持使用 Webauthn / FIDO2 对安全密钥进行用户验证?

问题描述

我正在构建一个使用Webauthn进行无密码登录的网站。目前,这在适用于 Windows 和 macOS 的 Chrome 上运行良好。

我正在使用 YubiKey 5 来测试我的实现,它支持使用 PIN 来提供用户验证,而不仅仅是普通的用户存在(即用户触摸键的按钮)。

Windows PIN 提示符

但是,当我尝试在 Android 9 上的 Chrome 76 上使用同一站点时,系统不会提示我输入密码,因此未设置用户验证标志,并且我的登录(按设计)失败。

谷歌在 Android 7+ 兼容 FIDO2 方面做了很多工作,但除了一篇过时的文章提到:

我们还在研究 CTAP 2 和 WebAuthn 支持的更高级流程,例如 PIN 保护的身份验证器、本地帐户选择(而不是输入用户名或密码)和指纹注册。

现在支持指纹注册;即使 Windows 和 macOS 版本的 Chrome 76 支持PIN 保护的身份验证器,是否仍然不受支持?

这是我呼吁的相关部分navigator.credentials.create(),应该要求用户验证:

"authenticatorSelection": {"requireResidentKey": false, "userVerification": "required"}

标签: androidgoogle-chromefido-u2fwebauthnfido

解决方案


事实证明,这目前还没有在 Android 的 Google Play Services 中实现。我已经向 Chromium 项目提交了一个错误,该项目正在跟踪其最终实施。


推荐阅读