生物识别认证实施

2023-12-30

我正在寻找有关使用指纹/touchID/FaceId 从我们的移动应用程序进行替代身份验证的最佳实践。

我们有以下架构:

  • 数据库 :PostgreSQL
  • 后端:.net core 2.2 中的 REST API
  • Clients :
    • Angular2 网络客户端
    • Xamarin Forms 中的移动应用程序

目前,我们的客户使用用户名/密码向 REST API 进行身份验证并接收 JWT 令牌。然后,该令牌会附加到对 API 的每个安全请求。

我想要实现的目标

用户从移动键盘输入密码并不总是很方便,因此我尝试使用指纹、faceID、touchID 等生物识别身份验证来实现一种更简单的登录方式...

在我看来,工作流程如下:

  • 用户首次使用用户名/密码组合从移动应用程序登录
  • 如果设备允许,请要求用户使用生物识别
  • 生成令牌并将其发送到 API
  • 将令牌存储在安全存储(密钥库/钥匙串)中
  • 使用此令牌代替密码登录

我们总是有经典的用户名/密码后备。

我在 stackoverflow 上阅读了很多帖子,并在 Google 上搜索了解决方案,但似乎没有一个解释后端安全实现的用例。

我已经在我的应用程序移动设备上实现了指纹扫描仪并获得成功回调。 我在我的 Xamarin 项目中使用这个库来获取生物识别身份验证:https://github.com/smstuebe/xamarin-fingerprint https://github.com/smstuebe/xamarin-fingerprint

您能告诉我如何实施吗?在后端和客户端之间存储通用令牌是最好的方法吗?密钥库/钥匙串安全吗?我错过了什么吗?

非常感谢,

Regards


钥匙串是您设备上最安全的地方。您可以添加越狱检测措施以提高安全性,并在检测到越狱时从钥匙串中删除令牌并从内存中清除它(混淆此代码)。 至于令牌,我会在后端生成它并将其作为身份验证调用响应传递回客户端。如果用户选择使用双识别提示进行访问,则将其存储在钥匙串中。然后,对于每次调用,您都会将此令牌添加到请求标头中。这就是后端识别您的方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

生物识别认证实施 的相关文章

随机推荐