flutter 如何在Android和IOS上实现FIDO2(WebAuthn)

suzh9iv8  于 2023-01-14  发布在  Flutter
关注(0)|答案(3)|浏览(415)

我开发了一个Web应用程序,它使用WebAuthn API来使用硬件安全密钥进行身份验证。它工作得很好。
我尝试使用Flutter原生实现它,兼容IOS和Android。这些平台是否有任何库或起点?我不想使用ChromeTabs或SFSafariViewController。
请指教。

vaj7vani

vaj7vani1#

对于Android,您有他们的FIDO2 API。一些示例代码库和实现已经存在:

  1. codelab
  2. kotlin example
  3. java example.
    然而,在iOS上,FIDO2仅在Safari浏览器中受支持(不确定其他浏览器),并且仅在iOS 13.3之后受支持(链接)。
    您可以考虑在Android上使用原生FIDO2 API,并在iOS上打开Safari,直到添加底层平台支持。
    然而,正如@mackie指出的那样,如果你在OAuth流程的认证部分使用FIDO2,推荐的路径是使用带有ASWebAuthenticationSession或Chrome自定义标签的Web浏览器。
3zwtqj6y

3zwtqj6y2#

您应打开浏览器窗口以进行用户身份验证,并在成功登录后使用my-app://myapp/auth/success =true&token=xyz作为重定向URL(私用URI方案重定向),在此之前将应用的URL模式“my-app”注册为协议。浏览器将自动打开具有给定重定向URL的应用,您必须处理该URL以使应用处于适当状态...

5gfr0r5j

5gfr0r5j3#

iOS/MacOS的新选项是Passkeys。但它依赖于iCloud。
万能钥匙使用iCloud钥匙串公钥凭证,无需密码,而是依靠生物识别,如iOS中的Touch ID和Face ID,或macOS中的特定确认来生成和验证帐户。
作为验证器,Apple设备会为它在服务上创建的每个帐户生成唯一的公钥-私钥对。验证器保留私钥,并与服务器(称为依赖方)共享其公钥。

相关问题