我正在创建一个包含大量公共方法的API,以便在Web上发布,我需要保护它们。在这种情况下,它不是加密而是认证。
这个想法是,任何使用Web服务的人都是DataBase上的注册用户,这样我们就可以阻止外人了。我正在阅读关于API密钥但我不知道它们是否是我的问题的正确方法,也不知道如何实现它们。
所以,问题是:如何让不知名的人不再使用网络服务?
注意:可能会对已知用户发出的请求进行日志记录,以跟踪他们的操作并终止可疑活动的连接。我也在使用ASP.NET。
答案 0 :(得分:1)
ASP.net Web Service Extensions支持基于客户端证书的身份验证。更新的equivelent是WCF,它也支持客户端证书。
答案 1 :(得分:1)
API密钥是一个好主意。
这个想法只是为每个用户分配一个他们必须提供的私钥(或者,更好的是,通过质询 - 响应提供占有证明),以便进行API调用。
答案 2 :(得分:0)
我回来解释我是怎么做到的。
首先,我使用了每个应用程序API密钥的(自定义实现),因此对于每个将使用我创建的Web服务并为其提供密钥的应用程序。必须提供这样的密钥以及重新生成密钥所需的一些应用程序数据,并与应用程序提供的内容进行匹配。
其次,我使用了SoapHeader和this方法的变体来实现我的目标。基本上,密钥和应用程序数据随消息一起作为每次调用方法的标题的一部分。因此,每次应用程序调用公共方法时都会发生验证过程。
我很感激给我的答案,而且接近真的很有意思,我之所以这么做是因为Web服务已经启动并运行,而且是.NET 3.5 ...所以既不是WCF也不是ASP。 WSE可以为我提供最好,更容易实施的解决方案。
感谢。