【发布时间】:2020-04-19 23:04:52
【问题描述】:
我正在寻找有关通过我们的移动应用使用指纹/touchID/FaceId 进行替代身份验证的最佳做法。
我们有以下架构:
- 数据库: PostgreSQL
- 后端: .net core 2.2 中的 REST API
-
客户:
- Angular2 网络客户端
- Xamarin Forms 中的移动应用程序
目前,我们的客户端使用用户名/密码向 REST API 进行身份验证并接收 JWT 令牌。然后将令牌附加到对 API 的每个安全请求。
我正在努力实现的目标
用户从手机键盘输入密码并不总是很方便,所以我尝试使用指纹、faceID、touchID等生物认证实现更简单的登录方式...
在我看来,工作流程如下:
- 用户首次使用用户名/密码组合从移动应用程序登录
- 如果设备允许,请让用户使用生物识别
- 生成令牌并将其发送到 API
- 将令牌存储在安全存储(Keystore / Keychain)中
- 使用此令牌代替密码登录
我们总是有经典的用户名/密码后备。
我在 stackoverflow 上阅读了很多帖子,并在 Google 上搜索了解决方案,但似乎没有一个可以解释后端安全实施的用例。
我已经在我的手机应用上实现了指纹扫描仪并获得了成功回调。 我在我的 Xamarin 项目中使用这个库来获得生物特征认证:https://github.com/smstuebe/xamarin-fingerprint
您能告诉我如何实施它吗?在后端和客户端之间存储一个公共令牌是最好的方法吗?密钥库/钥匙串安全吗?我错过了什么吗?
非常感谢,
问候
【问题讨论】:
-
嗨,亚历克斯,我的情况完全一样。你最后是怎么解决的?谢谢!
标签: android ios security xamarin