`
longgangbai
  • 浏览: 7340938 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

开发WebService 如何保证它的安全性

阅读更多

摘要: 概述 Microsoft XML Web Service 和未来开发努力方向

当我们谈及 XML Web Service 时人们最关心问题就是其安全性

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 客户端和服务器的间连接安全根据网络范围和交互操作活动配置文件我们可以通过多种技术来达到这目最流行也最广泛使用 3种技术为:基于防火墙规则、安全套接字层 (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 中进行身份验证其他思路方法包括:使用第 3方服务(例如 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 消息提供了 3种增强功能:凭据传送、消息集成和消息保密这些功能自身不能提供完整安全保护解决方案;但 WS-Security 是个构建块它可以和基础结构和其他 XML Web Service 协议结合使用以满足各种应用安全保护要求Microsoft Global XML Web Service 体系结构是 WS-Security 和相关规范标准主要内容它为 XML Web Service 基础结构发展提供框架

分享到:
评论
1 楼 airballbibi 2010-08-05  
楼主你这篇文章自己读过没?很多地方读不通嘛。

相关推荐

    WebService安全性之SoapHeader

    本示例“WebService安全性之SoapHeader”关注的是如何在VS2010环境下利用SoapHeader增强Web服务的安全性。Visual Studio 2010是一款强大的开发工具,支持创建、调试和部署各种类型的应用程序,包括Web服务。 在VS...

    webservice开发

    1. 安全性:WebService的安全性通常涉及认证、授权和数据加密。可以使用HTTPS、WS-Security(如WS-Trust和WS-SecureConversation)等机制增强安全。 2. 性能优化:减少XML大小、启用HTTP压缩、缓存策略等可以提高...

    开发webservice应用程序.pdf

    同时,了解和掌握安全性措施也非常重要,以保证数据在传输过程中的安全性和完整性。例如,SOAP消息可以被加密,并通过SSL/TLS协议来保证传输的安全。 随着云计算和微服务架构的兴起,WebService技术虽然逐渐被更...

    最新的web开发常用WebService

    在现代的Web开发中,WebService扮演着至关重要的角色,它是一种通过互联网进行通信的协议,允许不同的应用程序之间交换数据和协同工作。本资源"最新的web开发常用WebService"聚焦于为开发者提供一系列常用的Web服务...

    商用短信 开发 webservice

    同时,为了保证服务的稳定性和安全性,还需要考虑错误处理、身份验证、日志记录等方面的问题。 总之,商用短信接口开发WebService是一项涉及网络通信、XML解析和服务器管理的技术工作,它使得应用程序能够轻松地...

    基于CXF实现WebService开发.pdf

    Apache CXF是一个开源服务框架,它使得创建和开发WebService变得简单。CXF提供了完整的WebService功能,包括对JAX-WS的支持以及对旧版Celtix和XFire的集成。基于CXF开发WebService时,开发者可以采用不同的前端API,...

    WebService教程+实例+代码提示功能WebService实例.rar

    在实践中,理解WS-Security(用于保证通信安全)和WS-ReliableMessaging(确保消息传递的可靠性)等扩展标准也很重要。同时,随着技术的发展,RESTful API已经逐渐成为主流,但理解传统的SOAP-based WebService对于...

    webservice.概念架设webservice简单实例

    总结来说,Webservice的核心在于定义和暴露一套标准接口,使得不同系统间可以相互调用和协作,而XML作为数据交换格式,保证了数据传输的通用性和安全性。通过具体的实例,我们可以更好地理解Webservice的工作原理和...

    公积金监管系统WebService中间件

    另外,系统可能还具备日志记录功能,以便追踪和审计操作,进一步保障数据的安全性和合规性。 在系统设计和实施过程中,需要考虑到性能优化,如缓存策略的运用,以减少不必要的网络通信和数据库查询。同时,为了应对...

    1_webservice_

    在本场景中,SOAP消息可能包含薪资计算请求和响应,如员工ID、工作小时数、工资率等参数,通过HTTP或HTTPS进行传输,保证了数据的安全性。 2. WSDL(Web Services Description Language):WSDL是XML格式的规范,...

    WebService studio

    【WebService Studio】是一款强大的Web服务测试和开发工具,它允许用户轻松地与Web服务进行交互,获取并分析响应数据。这款工具对于开发人员在构建、调试以及测试基于Web Service的应用程序时,提供了极大的便利。 ...

    纯java调用ws-security+CXF实现的webservice安全接口

    6. **测试调用**:最后,你可以通过CXF客户端调用Web服务接口,此时ws-security的设置将会自动应用到请求中,保证了调用的安全性。 在提供的压缩包文件"WsClient"中,可能包含了实现以上步骤的示例代码,例如Java...

    WebService之CXF开发指南

    - 实现了基本的安全性机制,如WS-Security。 - **WS-Addressing**: - 用于解决消息路由和标识问题。 - **WS-Policy**: - 描述服务的策略需求。 - **WS-ReliableMessaging**: - 保证消息的可靠传输。 - **WS-...

    nc63集成webservice

    压缩包子文件的文件名称"nc63开发webService案例"可能包含了一些示例代码、教程文档或者是演示如何在nc63中实现Web服务集成的项目。这些资源对于开发者来说非常宝贵,可以帮助他们快速理解和应用Web服务技术到nc63...

    使用axis开发webservice使用的jar包

    同时,为了保证安全性,可以使用HTTPS和WS-Security标准来加密通信。 总之,使用Apache Axis开发Web服务涉及多个jar包,它们共同构成了一个强大的框架,帮助开发者轻松地创建、部署和消费Web服务。理解每个jar包的...

    WebService入门精选视频教程day3(极详细)

    此外,安全性也是WebService开发中不可忽视的一环。因为数据在互联网上传输,所以需要考虑如认证、授权、加密等安全措施。这部分内容可能会涉及HTTPS、WS-Security等安全标准,以及如何在实际项目中应用这些安全机制...

    Domino的WebService服务

    - SSL加密:通过HTTPS协议,保证数据传输过程中的安全性。 - 授权控制:通过Domino的访问控制列表(ACL),限制对WebService的访问权限。 7. 性能优化: - 缓存策略:合理设置缓存,减少不必要的网络通信,提高...

    pb11+webservice开发分布式三层应用培训

    同时,需要配置Web Service的安全性,例如身份验证、授权和加密,以保护服务不受非法访问。 **客户端调用Web Service** 在客户端,PowerBuilder 11.x提供了SOAP Toolkit,使开发者能够轻松地调用远程Web Service。...

    webservice 验证框架

    总的来说,"webservice 验证框架"是Web服务开发中不可或缺的部分,它确保了数据的质量和系统的安全性。"PCOP连库"作为这样的框架,它的快速性能和全面功能对于优化Web服务的开发和运行具有重要意义。通过使用这种...

    WebService.zip

    4. **安全性**:支持SSL/TLS加密,保证数据传输的安全。 5. **HTTP/HTTPS功能**:支持HTTP/1.x和HTTP/2,以及POST、PUT、DELETE等HTTP方法,符合RESTful API的设计原则。 【使用流程】 在本示例中,"WebService....

Global site tag (gtag.js) - Google Analytics