【发布时间】:2015-07-29 21:40:21
【问题描述】:
我正在尝试保护Web API,它将被在Android 和iOS 上运行的移动应用程序使用。它现在的工作方式是使用Basic Authentication 和SSL,它将username 和password 与每个请求一起发送到Web API。在调用action 之前,我在filter 中验证Web API 中的凭据。这很好用。问题是,用户登录后,我必须将密码存储在设备上(Android/iOS)以保存会话,否则他们将不得不一直登录。这不安全,因为如果设备被黑客入侵,则可以访问凭据。我正在寻找一种无需在设备上存储密码即可进行用户基本身份验证的方法。
我认为this 文章中的解决方案可以工作,但我不清楚如何使其工作。在接受的答案中它说
为您的每个应用生成一个密钥,并让它们在每个请求中将密钥作为令牌传递。然后,您的服务器可以验证密钥并验证请求。
查看 ASP.NET 站点中的 Basic Authentication 模块。该示例使用“基本”作为授权方案,但您可以改用“令牌”来更改它。
我不清楚这里的过程。在此示例中,即使在初始登录期间似乎也没有涉及任何用户名/密码。用户如何在不登录的情况下获取密钥?那么,引文中提到的“关键”究竟是什么。那可能是诸如Guid 之类的东西?如果被黑客入侵,我也不明白这比在设备上存储用户名和密码更安全。黑客可以使用“密钥”作为用户名和密码正确吗?
【问题讨论】:
标签: android ios asp.net-web-api basic-authentication