我正在开发一个安卓和iOS应用程序,需要有一个无密码的登录解决方案。我们正在尝试实现WebAuthn/Fido2 2设备。
问题是Fido仍然是新的,并且没有实现这一功能的本地库。所以我有几个问题要问。
我们能在Fido2设备中读写我们自己的密钥吗?=>,直到我们得到一个合适的库,我想将加密的密码作为密钥存储在fido2设备上,每次登录时读取,然后解密。它听起来很好实现,它有可能做到吗?
发布于 2022-05-26 20:28:23
@DevPy
要从您的本机iOS应用程序中支持WebAuthn/FIDO2 2,建议的解决方案是集成两个支持WebAuthn API的苹果iOS系统浏览器(ASWebAuthenticationSession或SFSafariViewController)之一。ASWebAuthenticationSession将是我的首选,因为此浏览器用于通过web服务(特别是OAuth 2流)进行身份验证。这提供了与FIDO2身份验证器(如YubiKey )交互的接口、内置API,并为开发人员提供了会话回调和身份验证令牌的控件。集成WebAuthn的另一种方法是利用第三方SDK与OAuth 2提供程序进行通信。例如,AppAuth for iOS有一个,即可用的这里。我相信AppAuth SDK使用ASWebAuthenticationSession。
至于写入/读取您自己的自定义密钥的最初问题,FIDO2设备在存储空间上是有限的,但是YubiKey提供了两个可能对您有用的选项。一个是创建静态密码 (未加密)或利用Yubico OTP的选项。这两个选项都使用系统键盘在应用程序中的任何文本/密码字段中键入密码或OTP。不需要SDK或系统浏览器。
发布于 2022-05-24 16:14:53
FIDO2 2/WebAuthn是一个专门的浏览器API。由于您正在讨论的是(React)本地应用程序中的身份验证,那么您可能希望回到等效的本机OS。
对于Android,您可以使用Fido2ApiClient,这将允许您利用服务器上现有的FIDO2凭据进行应用程序内身份验证:
我认为,在本地应用程序开发的iOS方面,等同于身份验证服务。他们有一页专门关于利用你的应用程序中的“密码”的页面,这可能会帮助你入门:
https://stackoverflow.com/questions/72362266
复制相似问题