分享
 
 
 

教你学会XML Web Service 的安全性

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

鉴于安全性涉及诸多方面(例如身份验证和授权、数据隐私和完整性等),以及 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。

虚拟专用网络是专用网络的扩展,它可以连接共享网络或公共网络(如 Internet)。VPN 使您可以在两台安全连接的计算机之间发送数据。VPN 与 SSL 相似,但 VPN 是一个长期的点对点连接。这使 VPN 可以高效安全地应用于 XML Web Service,但要求建立长期的连接并保持运行才能达到这种效果。

身份验证和授权

身份验证:身份验证就是验证标识的过程,即验证某人(或某物)与其声称的人(或物)是否一致。该人或物称为“当事者”。身份验证要求证据,称为“凭据”。例如,客户端应用程序可以将密码用作凭据。假如客户端应用程序提供正确的凭据,则认为它与所声称的人或物一致。

授权:完成对当事者标识的身份验证后,便可以进行授权了。服务器通过检查有关当事者的某些访问控制信息(例如访问控制列表 [ACL])来确定访问权限。客户端可能具有不同的访问级别。例如,某些客户端可以完全访问 XML Web Service;而其他客户端则只能访问某些操作。某些客户端可以完全访问所有数据,某些客户端只能访问数据的子集,而某些客户端只能进行只读访问。

在 XML Web Service 中实现身份验证的一个简单而直接的方法是,利用信息交换所使用的协议的身份验证功能。对于大多数 XML Web Service 来说,这意味着利用 HTTP 的身份验证功能。将 Microsoft Internet Information Server (IIS) 和 ISA 服务器与 windows 2000 服务器配合使用,能为 HTTP 提供多种身份验证机制的集成支持。

基本身份验证 - 使用客户端的非安全或半安全标识,因为用户名和密码是以 base64 编码文本发送的,而该文本易于解码。假如凭据能与有效的用户帐户匹配,IIS 将授予客户端访问 XML Web Service 的权限。

SSL 上的基本身份验证 - 与基本身份验证相同,唯一区别在于通信通道被加密,从而保护了用户名和密码。对 Internet 方案而言,这是一个很好的选择,但使用 SSL 会对性能产生很大影响。

简要身份验证 - 使用散列以安全方式传送客户端凭据。但是,这种方法可能不会受到用于构建 XML Web Service 客户端的开发人员工具的广泛支持。假如凭据能与有效的用户帐户匹配,IIS 将授予客户端访问 XML Web Service 的权限。

集成 Windows 身份验证 - 主要用于 Intranet 方案。使用 NTLM 或 Kerberos。客户端必须属于服务器所在的域,或者属于服务器域的托管域。假如凭据能与有效的用户帐户匹配,IIS 将授予客户端访问 XML Web Service 的权限。

SSL 上的客户端证书 - 要求每个客户端获取一个证书。证书被映射至用户帐户,IIS 将使用这些证书来授权对 XML Web Service 的访问。尽管目前数字证书尚未广泛使用,但这仍然不失为 Internet 方案的一种可行选择。这种方法可能不会受到用于构建 XML Web Service 客户端的开发人员工具的广泛支持。只能通过 SSL 连接使用这种方法,因此性能可能是一个需要考虑的问题。

从 XML Web Service 实施者的角度来看,使用上述任何一种身份验证机制都有一个好处,即,无需在 XML Web Service 中进行代码更改,因为在调用 XML Web Service 之前,IIS/ISA 服务器将执行所有的身份验证和 ACL 授权检查。但是,在执行客户端时,还需要完成其他一些工作。客户端应用程序需要响应服务器的身份验证凭据请求。

在 XML Web Service 中进行身份验证的其他方法包括:使用第三方服务(例如 Microsoft? .NET Passport 中的服务),使用 Microsoft Asp.Net 的会话功能,或者创建自定义身份验证方法。

下一步:互操作性

您可能会发现,如今,用于 Web 应用程序安全保护的标准技术可以单独使用或组合使用,以建立安全的 XML Web Service。这些技术建立在丰富的经验基础之上,并且非常有效。不过,它们并没有在 XML Web Service 体系结构中提供集成解决方案。随着 XML Web Service 方案日益复杂(例如跨托管边界以及分布于多个系统或企业中),XML Web Service 实施者需要创建有效但并不提供普遍互操作性的自定义解决方案。

为满足这些需要并增强 XML Web Service 的互操作性,Microsoft 及其合作伙伴正在制定一套安全规范。该规范建立于 SOAP 规范的扩展性机制之上,提供集成至 XML Web Service 结构中的增强型安全保护功能。

这套安全规范的核心是 XML Web Service 安全语言 (WS-Security),它为 SOAP 消息提供了三种增强功能:凭据传送、消息集成和消息保密。这些功能自身不能提供完整的安全保护解决方案;但 WS-Security 是一个构建块,它可以与基础结构和其他 XML Web Service 协议结合使用,以满足各种应用程序的安全保护要求。Microsoft Global XML Web Service 体系结构是 WS-Security 和相关规范的主要内容,它为 XML Web Service 基础结构的发展提供框架。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有