iOS Touch ID-我应该选择本地身份验证API还是钥匙串访问API?

问题描述:

我们有一个现有的iOS应用程序,其中基于用户名/密码的身份验证过程已到位。现在,我们计划整合生物识别/触摸身份验证。下面是我们的要求是短期的iOS Touch ID-我应该选择本地身份验证API还是钥匙串访问API?

  1. 使用指纹认证,而不是现有的基于用户名/密码登录
  2. 预置至现有的用户名/基于密码的登录页面,如果用户取消了触摸ID弹出窗口或如果指纹扫描失败或者设备不支持Touch ID。

  3. 我们还希望在设备上存储用户名&密码,这样我们就可以在用户完成生物识别身份验证后触发身份验证Web服务。

我们都知道,有实现iOS中使用Touch ID两种可能的方式,即本地认证(LAContext)带触摸ID保护钥匙扣服务(使用访问控制列表)

我们首先想到的是我们将实现本地身份验证方法并使用钥匙串来单独存储用户凭证。但是由于我们需要在设备上存储用户凭证,钥匙串访问控制列表是否更好?

我对使用哪种方法和哪种方法最适合我们感到困惑。有这方面知识的人请帮我决定。如果您需要任何特定信息,请在评论中告诉我。

我会向你推荐钥匙链解决方案。 Keychain中的凭证将受TouchID保护。当有人破解你的应用程序时,对凭证的访问仍将受到用户指纹的保护。

我不建议您将密码保存在钥匙串中。至少保存密码哈希或更好地保存登录令牌。

+0

感谢您的回答!你有任何图书馆/框架推荐在iOS上使用基于令牌的登录? –

+0

登录令牌系统取决于服务器实现。也许有些图书馆存在,但我不知道它们。对不起。 –

+0

@KryštofMatěj如何使用Touch ID保护显示钥匙串服务中的Touch ID弹出窗口?我相信您仍然需要使用本地身份验证API。 – lifemoveson