我是WebAPI的新手,在深入研究之前,我想首先保护Web API应用程序。经过几天的研究,我发现了一种直接的方法。
仔细阅读这篇文章How to secure an ASP.NET Web API,我总体上了解它是如何工作的,而且它也有很好的github源代码。 (我发现的大多数答案只描述了通用概念,没有代码来支持它)
我的问题是,如何在服务器上存储这个“共享密钥”,通常是用户的密码?我正在使用提供的成员资格提供程序执行ASP.NET MVC 4应用程序,并使用salt存储用户密码。
显然,每个用户随机生成盐值,最终用户不太可能知道他们的盐值是多少。
那么,你做了什么?
PS:我错过了一些众所周知的框架来处理这个问题吗?我知道微软鼓励移动应用程序开发并希望开发人员创建新的应用程序,但是当我甚至无法轻松地为Web API构建身份验证时,我怎么想这样做呢?对不起,有点沮丧。答案 0 :(得分:0)
HMAC通常不用于对API的用户进行身份验证。它通常用于向API验证“可信”系统。示例:公司A想要访问公司B的受保护API,但不需要在用户级别进行身份验证。
在进行HMAC时,您需要在客户端和服务器上以明文形式提供共享密钥,以便两个系统都可以创建完全相同的请求签名哈希。虽然可能希望以加密格式存储共享密钥,但它必须是双向(可逆)加密。