我将创建一个将通过网络传递机密信息的Web服务。
保护网络服务的最佳方法是什么? 我怎么知道请求信息的应用程序是否是它所说的那个,并且不是另一个应用程序正在使用另一个用户名和密码?
答案 0 :(得分:3)
将WCF用于您的网络服务!它具有大量的安全功能:
你可以
通过证书保护您的客户 - 只有拥有相应证书的人才可以处理他们的电话
通过在您的内部Active Directory域中查找来保护您的客户 - 只有那些拥有AD帐户的人才能处理他们的请求
使用自定义用户名/密码保护您的客户,您可以根据自己的需要查看这些用户名/密码(这是最灵活,但也是最复杂的选项,如果出错则提供最大的失败可能性)
另外,使用WCF,您还有许多选项可以保护客户端和服务之间的传输,或加密和签名来回传递的消息。
将WCF Developer Center视为WCF所有事情的一个很好的起点。
如果您认真安全地编写WCF服务,请抓住Juval Lowy的Programming WCF Services书的副本 - 这是WCF的圣经。
答案 1 :(得分:1)
我过去曾经做过一两次这样的事情:
在一定数量的网络服务请求或随机间隔后,更改所需的令牌,从而强制重新进行身份验证。
如果您愿意,可以使用双方都理解的加密方法加密ssl流中的数据。 (如果你是偏执狂。)
答案 2 :(得分:1)
您没有编写您打算使用的实现技术,因此我首先建议您使用 Windows Communication Foundation (WCF)而不是asmx Web服务。
使用WCF,您可以在许多不同的绑定之间进行选择,其中许多绑定都提供数据保护。总体而言,Web服务有两种不同类型的数据保护:
WsHttpBinding 根据开放标准提供邮件保护。这就是我要开始的地方。
答案 3 :(得分:0)
看看WIF(又名日内瓦框架)。其目的是解决您描述的确切问题。 http://msdn.microsoft.com/en-us/security/aa570351.aspx