繁体   English   中英

如何使用基本身份验证保护Android / ios应用程序的Web API

[英]How to secure Web API for android/ios apps with basic authentication

我正在尝试保护一个Web API ,该Web API将由在AndroidiOS上运行的移动应用程序使用。 它现在的工作方式是使用SSL进行Basic Authentication ,它会将每个请求的usernamepassword发送到Web API 在调用action之前,我在filter验证Web API中的凭据。 这非常有效。 问题是,在用户登录后,我必须将密码存储在设备( Android / iOS )上以保存会话,否则他们将不得不一直登录。 这不安全,因为如果设备被黑客入侵,则可以访问凭证。 我正在寻找一种方法来使用基本身份验证,而无需在设备上存储密码。

我认为在解决这个文章可以工作,但我不清楚如何使它发挥作用。 在接受的答案中,它说

为每个应用生成一个密钥,让他们将每个请求中的密钥作为令牌传递。 然后,您的服务器可以验证密钥并验证请求。

请查看ASP.NET站点中的“ 基本身份验证”模块。 该示例使用'basic'作为授权方案,但您可以使用'token'来改变它。

我不清楚这里的过程。 在此示例中,即使在初始登录期间也似乎没有涉及任何用户名/密码。 用户如何在不登录的情况下获取密钥? 然后,报价中提到的“关键”究竟是什么。 那可能是像Guid这样的东西? 我也不理解这比如果被黑客攻击在设备上存储用户名和密码更安全。 黑客可以使用“密钥”,就像用户名和密码一样正确吗?

这是身份验证的基础知识,我将以简单的方式解释这个过程。 希望你能理解。

  • 用户键入名称和密码,然后点击登录。
  • 设备向服务器发送名称和密码。
  • 服务器使用长的随机唯一字符序列(也称为密钥)进行身份验证和响应。
  • 设备和服务器都存储密钥。
  • 所有其他请求都使用密钥进行身份验证。
  • 对于每个呼叫,服务器检查密钥是否与其存储的密钥匹配。
  • 设备永远不会存储用户名或密码。
  • 如果怀疑是违规,服务器可以禁用/删除该密钥,在这种情况下,用户必须再次登录

使用加密完成所有这些操作。 一切!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM