XML Web Service 安全吗?
鉴于安全性涉及诸多方面(例如身份验证和授权、数据隐私和完整性等),以及 SOAP 规范中根本没有提及安全性这一事实,我们不难理解人们为什么认为答案是否定的。但是,请不要低估了 Microsoft® XML Web Service。如今,您可以采取许多措施来创建安全的 XML Web Service。
要解决 XML Web Service 的安全性问题,我们需要考虑以下问题:
要达到什么样的目的?- 仅允许授权用户访问 XML Web Service;禁止他人未经授权擅自查看消息等。
如何达到预期效果?- 网络、传输层、OS、服务或应用。
解决方案中需要什么级别的互操作性?- 局部或全局。
那么,我们如何确保当今 XML Web Service 的安全呢?答案就是:先回答上述问题,然后应用保护任何其他 Web 应用程序时所使用的相同技术,即:
保护连接安全
对交互操作进行身份验证和授权
正如您下面将要了解到的,这些技术提供了多种选择,您可以将这些选择结合起来以获得额外的效果。例如,可以将防火墙与 XML Web Service 一起使用,从而根据客户端的身份以及为他们所建立的相应规则来限制对某些功能(方法)的访问。
让我们先来回顾一下保护现有基础结构的各种选择,了解它们的功能。
保护基础结构的安全
一个安全的 XML Web Service 的核心是安全基础结构。Microsoft 提供了广泛的技术,如果把这些技术与总体安全保护计划结合起来,企业就可以有效地保护其 IT 结构的安全。正确实施的规划过程包括:
详细了解潜在的环境危险(例如病毒、黑客和自然灾害)。
对与危险有关的安全漏洞的后果进行预先分析并制定对策。
在这种理解和分析的基础上,创建一个精心规划的实现策略,将安全保护措施应用到企业网络的各个方面。
保护连接安全
保护 XML Web Service 安全的最简单的一种方法就是确保 XML Web Service 客户端与服务器之间的连接安全。根据网络的范围和交互操作的活动配置文件,我们可以通过多种技术来达到这一目的。最流行也最广泛使用的三种技术为:基于防火墙的规则、安全套接字层 (SSL) 和虚拟专用网络 (VPN)。
如果您确切知道哪些计算机需要访问您的 XML Web Service,则可以使用防火墙规则将访问限制在已知 IP 地址的计算机范围内。如果需要限制对专用网络(例如公司的 LAN/WAN)中的计算机的访问,并且不用担心将消息内容保留为秘密(加密),那么这种技术非常有用。防火墙(例如 Microsoft Internet Security and Acceleration [ISA] Server)可以提供先进的基于策略的规则,这些规则可以根据客户端的原始位置或标识,对不同的客户端提供不同的限制。当不同的客户端访问相同 XML Web Service 上的不同功能(方法)时,这种技术很有用。
安全套接字层可用于在非托管网络(例如 Internet)上建立安全连接。SSL 可以对客户端和服务器之间发送的消息进行加密和解密。通过加密数据,您可以防止消息在传送过程中被读取。SSL 先对客户端的消息进行加密,然后将其传送到服务器。服务器接收到消息后,SSL 将对其进行解密并验证消息是否来自正确的发送者(此过程称为身份验证)。服务器或者客户端和服务器可能具有证书,这些证书用作身份验证过程的一部分在连接加密的顶层提供身份验证功能。虽然 SSL 是创建安全通信的一种非常有效的方法,但应当考虑其性能成本。Microsoft XML Web Service 既支持客户端中的集成 SSL,也支持服务器中的集成 SSL。
