如何为您的iOS应用设置生物特征认证

多年来,安全一直是苹果的主要关注点,他们一直在倡导为iOS和整个Apple生态系统提供更好的安全性。 Touch ID于2013年从iPhone 5s开始引入,最近发布的iPhone X用Face ID代替了它,用户可以使用其面部来进行生物特征登录,而不是Touch ID。

Touch ID使用先进的电容式触摸来检测用户的指纹,因为Face ID使用iPhone X中的正面真实深度摄像头,并且在两种情况下,数据都被发送到Apple处理器内部的安全区域,该区域与其他系统隔离包括iOS。 没有数据存储在Apple服务器或任何iCloud服务器中。 苹果公司声称某人能够使用Face ID打开手机的可能性为1,000,000分之一(与您拥有相同指纹的概率为50,000,十分之一)。

如何在应用程序中添加Touch ID / Face ID

为了为用户提供更好的安全性和简化的登录,您可以在自己的应用程序中使用Touch ID / Face ID。 Apple提供了一个名为“ 本地身份验证”的框架,用于将生物识别登录集成到您的应用程序中。 在您的应用程序中导入本地身份验证框架,即可开始使用。

您需要做的第一件事是创建LAContext类的引用,如下所示。 LAContext具有一个名为biometryType的属性,可让您在Face ID和Touch ID之间进行选择。

 让上下文= LAContext() 

下一步是检查当前设备是否支持生物特征认证。 您可以使用LAContext类提供的以下功能。 它返回布尔值,指示是否支持生物特征认证。

  context.canEvaluatePolicy(.deviceOwnerAuthentication,错误:无) 

最后,您可以调用validatePolicy方法以使用Touch ID / Face ID实施实际的身份验证。 有关实现,请参考以下代码段。

在您的应用程序中使用生物识别身份验证时有一些注意事项,我将在下面进行解释。

在正常情况下,您将通过API将用户凭据发送到服务器来对用户进行身份验证,并在成功从服务器进行验证后,将对用户进行身份验证。 在这里,服务器实际上是使用存储在数据库中的凭据来验证API中传递的凭据。 对于生物特征认证,验证发生在设备级别。 本地身份验证框架提供的context.evaluatePolicy仅返回成功或错误,指示用户的指纹或面部是否已在设备上注册。 这里要注意的重要一点是,如果用户的设备中配置了其他人的指纹,则他/她将获得成功的身份验证。 您可以添加免责声明,以通知用户相同的内容。 查看PayPal iOS应用程序以供参考。

由于生物特征识别登录不提供识别用户的选项,因此我们需要针对该场景找到替代方案。 一种方法是将用户凭据存储在应用程序内部,并通过Touch ID或Face ID成功登录后将其发送到服务器。 服务器依次返回一个访问令牌 ,该令牌可用于后续的API调用。 另一个选项是提示用户首次使用Touch ID / Face ID输入其凭据并保存返回的访问令牌 在永久存储中,例如“用户默认值”。 由您决定哪个适合您的应用程序。 理想情况下,将用户凭据存储在应用程序中不是一个好习惯。

请参阅Ray Wenderlich的这篇文章,以获取有关iOS应用中生物识别身份验证的更多信息。

如何保护iOS用户数据的安全:钥匙串和生物识别–面部ID或触摸ID
了解如何使用钥匙串和生物识别技术保护您的应用程序安全以及使用Face ID或Touch ID。 更新说明:本教程… www.raywenderlich.com

我希望本文能使您对应用程序中的Touch ID / Face ID集成有所了解。 谢谢阅读。