保护Web服务

时间:2020-03-06 14:36:00  来源:igfitidea点击:

我的生产Web服务器上有一个带有一些Web方法的Web服务(ASMX)。在单独的内部Web服务器(未公开)上,我有另一个网站,它将使用ASMX的公共Web方法。确保Web服务安全以使仅内部Web服务器可以访问在公开Web服务器上运行的Web Service的最佳方法是什么?

解决方案

假设我们没有使用WCF的选项,我建议我们使用WSE 3(Web服务增强功能)。我们可以在MS的网站上获得工具包/ SDK的东西

为了限制仅对内部计算机的访问(按照我认为问题的要求),我将在IIS中设置一个单独的网站并将其设置为仅响应服务器的内部IP地址。

我将设置防火墙规则以限制对IP地址白名单的访问。

使用IIS的目录安全IP地址限制,并限制仅对该内部Web服务器IP地址的访问。

如果我们不能执行此操作,并且无法在目录上设置用户名/密码,则使用WSE并将用户名/密码添加到服务中,或者查看证书(如果我们想笑些)

也许我没有正确理解,但是如果只供内部服务器使用,为什么还要公开公开Web方法?

在这一刻,我想到的是IIS上的IP过滤。快速应用,应该可以在情况下工作。

带有客户端证书的TLS。请参阅Wikipedia入门。

一个简单的HTTP模块将起作用。只需硬编码(或者从配置中)允许的IP /主机,然后拒绝所有其他IP /主机。

最简单的方法之一是在邮件的肥皂标头中传递凭据。因此,每个呼叫都会传递确定用户是否被授权所需的信息。 WSE使某些事情变得更加容易,但是可以在Rocky Lhotka的《 Business Objects》一书中找到关于此过程的最简洁的描述之一。我收到了很多书供出版商审阅,而这本书有最好的解释

请注意,有多种方法可以将IP列入白名单。不要误会我的意思,这是个好主意,我们应该明确地做到这一点,但是如果预算/资源允许,则可以扩展威胁模型。

是否只有内部服务器才能访问asmx文件?我们可以在IIS的单独网站或者虚拟目录下进行设置,然后在该网站上设置一些IP限制。在属性中,进入"目录安全性",然后进入" IP地址和域名限制"。

另外,对于密码,WSE 3是新的入门工具,但是我确实在Apress的一本书中找到了一种简单的方法,即" C2005中的Pro ASP.NET 2.0"第34章。一章。)该部分是基于票证的定制身份验证。