最佳实践身份验证/授权本地移动应用

时间:2018-07-22 18:19:14

标签: android ios authentication oauth-2.0 authorization

当前,我们正在研究移动应用程序(本机)的开发,并希望将客户登录到具有REST API的后端(Java),该后端使用5位数字代码(仅指纹或面部ID)。现在,我读了RFC 8252(https://tools.ietf.org/html/rfc8252),它说这是对本机移动应用程序的最佳授权方法,但是我想知道在这种情况下身份验证步骤应该如何工作。当然,我已经找到了一些关于stackoverflow的主题,但是其中大多数都已经很老了并且可能已经过时(?),例如Rails api and native mobile app authentication

我希望它应该按以下方式工作,但不确定是否正确。当客户在移动应用程序中注册时,我们应该在后端生成令牌(UUID),并将其存储在移动应用程序的钥匙串中的数据库中,该数据库只能通过输入PIN或生物特征进行访问。当客户通过任一生物识别PIN对自己的身份进行身份验证时,我们可以抓取令牌并将其发送到后端以验证其是否有效。只有我对此方法有一些担心:

  • 由于我们将仅基于令牌对客户进行身份验证,这意味着,如果您可以获取令牌,则可以在每台设备上登录。为避免这种情况,我们可以存储设备ID或其他使设备唯一的ID,尽管从GDPR角度来看,存储设备ID并不理想,因为您可以根据此ID识别客户。

  • 如果客户将设备设为root,则他们可以访问钥匙串,因此可以获取/窃取令牌

因此,据您了解,我不确定这是否是最省钱的方法,并且我想知道是否存在更好的做法来为本地移动应用创建身份验证/授权流程,例如移动银行应用如何进行身份验证/授权流程?

谢谢

0 个答案:

没有答案