我们有以下架构:
- 数据库:PostgreSQL - 后端:.NET Core 2.2 中的 REST API - 客户端: - Angular2 Web 客户端 - 一个在 Xamarin Forms 上的移动应用程序 <--- 这就是魔法发生的地方 目前,我们的客户端使用用户名/密码进行身份验证并接收 JWT 令牌。然后将该令牌附加到每个安全请求中传递给 API。
我想要实现的是
对于用户来说,从移动键盘键入密码并不总是方便的,因此我正在尝试通过使用指纹、面容 ID、TouchID 等生物识别身份验证来实现更简单的登录方式。
在我看来,工作流程如下:
- 用户第一次使用用户名/密码组合从移动应用程序登录
- 如果设备允许,要求用户使用生物识别
- 生成令牌并将其发送到API
- 将令牌存储在安全存储(Keystore / Keychain)中
- 使用此令牌登录而不是密码
我们始终具有经典的用户名/密码回退。
我在stackoverflow上阅读了很多文章,并在Google上搜索了解决方案,但似乎没有一个解释与后端安全实现相关的用例。
我已在我的移动应用程序中实现了指纹扫描仪,并获得了成功的回调。 我正在使用此库在我的Xamarin项目中进行生物识别身份验证:https://github.com/smstuebe/xamarin-fingerprint
请问如何实施?在客户端和后端之间存储公共令牌是最好的方法吗?Keystore / Keychain是否安全?我有遗漏的地方吗?
非常感谢,
敬礼