当前位置:首页 > 心得体会 > 支架式教学策略提供什么框架【通过WSE的策略框架实现WEB服务安全】
 

支架式教学策略提供什么框架【通过WSE的策略框架实现WEB服务安全】

发布时间:2019-01-10 04:18:35 影响了:

  摘要:Web Services Enhancements(WSE)策略框架提供了一种机制,以描述Web服务需要执行的约束和要求。文章将介绍WSE中策略框架的工作方式,讨论WSE3.0支持的安全方案。
  关键词:WSE;策略框架;Web服务;安全
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)18-31542-01
  Secure Web Services Through The Policy Framework In WSE
  HUA Hui,CHEN Jia-hong
  (Jinling Institute of Technology,Nanjing 210001,China)
  Abstract:The Web Services Enhancements(WSE) policy framework provides a mechanism to describe the constraints and requirements that need to be enforced for a Web service. In this paper, I will describe how the policy framework works in WSE. and discuss security scenarios supported by WSE 3.0.
  Key words:WSE;Policy Framework;Web services;Security
  
  1 引言
  
  Web服务是通过HTTP执行远程方法调用的一种新方法,是分布式计算的重要标准,也是未来软件开发的技术趋势。通过Web服务,应用软件之间可以实现跨平台、跨编程语言的联接和互操作。Web 服务基于一套描述软件通信语法和语义的核心标准,其中,XML 提供表示数据的通用语法;简单对象访问协议 (SOAP) 提供数据交换的语义;Web 服务描述语言 (WSDL) 提供描述 Web 服务功能的机制。其他规范统称为 WS-* 体系结构,其中的WS-Security 规范用于定义Web 服务安全性方面的功能。SOAP是基于XML的 Web服务的通信协议,定义了机器间通信的消息传送格式,SOAP消息采用 XML 格式,在Web服务提供者和消费者之间传送的消息就是SOAP消息。Web服务基于消息的体系结构和跨越信任边界的异构环境需要我们处理消息级的安全问题,以支持跨平台的互用性和通过多个中间节点进行路由。在默认情况下,SOAP消息以明文方式传递。因此保护SOAP 消息的安全就保护了Web服务消息级的安全。
  为了构建安全的Web 服务,需要了解相关的威胁。如今,针对 Web 服务的最大威胁主要有:未授权访问、参数操作、网络侦听、配置数据泄漏和消息重放。因此,在设计Web服务时,我们需要重点考虑的安全性要求有:身份验证要求、私密性和完整性要求、资源访问标识和代码访问安全。
  Microsoft 发布了Web 服务安全性开发工具包(Web Services Enhancements) 的3. 0 版(WSE 3. 0) ,主要目的就是为开发人员提供用来开发符合WS - Security 规范的消息级安全性的解决方案。因此,本文主要阐述如何使用WSE3.0的策略框架中提供的安全断言,实现上述安全性要求中的消息私密性、完整性和身份验证。
  
  2 WSE策略框架
  
  WSE 策略框架描述了Web 服务进行通信的约束和要求。在Web服务的客户端和服务之间交换任何消息之前,策略的一个实例被转换成运行时组件,这个过程称为策略编译。这些组件在消息发送方和接收方应用和执行策略中的要求。
  一个策略包含一个有序的策略断言列表。每个策略断言定义一个对 Web 服务的要求。由每个策略断言生成的筛选器负责对进入和离开终结点的SOAP 消息进行截获和处理,来执行对Web 服务的要求。策略断言生成筛选器遵循策略中断言的顺序,而管线表示了这个输入筛选器和输出筛选器的集合。图1显示了策略编译在管线中按照SOAP筛选器的顺序表示成策略断言的要求和顺序。
  图1 通过SOAP筛选器的断言实现的策略
  
  3 策略的定义和应用
  
  WSE中,策略的定义方式有两种:在代码中定义和在外部XML文件中定义。在代码中定义策略时,可以完全控制对使用服务时需要满足的要求的定义。但是,应用程序发布之后,我们就不能再更改这些策略定义了。
  相反,当策略要求不能固定时,我们就可以在外部XML文件中声明策略。这样,我们就可以在代码中只提供应用程序的逻辑,策略的要求可以随时改变,因此实现了程序逻辑和策略的相互独立。这种方式具有更大的灵活性,本文即采用这种方式来定义一个策略,在XML文件wse3policy.config中有这样的定义:
  
  
  
  
  
  为了将定义好的策略应用于web服务或服务代理,我们首先需要在该应用程序的配置文件中提供包含策略声明的XML文件的名称,如下所示:
  
  
  
   本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文   4.1 AnonymousForCertificateAssertion安全断言
  该安全断言只针对web服务使用X.509证书对其自身进行到客户端的验证,对客户端不验证。例如,我们在网上书店购买某本书时,服务端对书的价格等信息进行了签名和加密,服务端就不可以对书的价格等信息抵赖。但是,由于书店的客户很多,不可能对每个客户逐一验证,此时就可以把信用卡等信息的验证责任转给银行来完成。
  4.2 MutualCertificate10Assertion安全断言和MutualCertificate11Assertion安全断言
  在企业对企业的Web服务中,客户和服务器都好控制,客户和服务器都可以分配有证书,这时,就可以选择MutualCertificate10Assertion或MutualCertificate11Assertion安全断言。这两种断言逻辑上很相似,但第一种依赖于WS-Security 1.0规范,第二种则使用较新的WS-Security 1.1规范。
  4.3 UsernameForCertificateAssertion安全断言和UsernameOverTransportAssertion安全断言
  虽然使用证书对客户端进行验证很方便,但会带来维护公钥基础结构(PKI)的成本。所以,所以,我们一般会使用简单的用户名和密码对客户端进行验证。UsernameForCertificateAssertion和UsernameOverTransportAssertion支持此类验证。它们之间的区别是:UsernameOverTransportAssertion要依赖安全的传输协议(如HTTPS)来提供完整性、保密性和服务器身份验证保证。但是,当消息需要在不可控的中间结点路由并且要进行端到端的验证时,基于点对点的安全传输机制(如SSL、IPSec)不再适用,此时我们就可以使用UsernameForCertificateAssertion。在使用UsernameForCertificateAssertion时,服务端使用X.509证书进行验证,客户端则使用用户名令牌(UsernameToken)进行验证。
  4.4 KerberosAssertion安全断言
  当客户端和服务端位于同一个支持Kerberos票证的Intranet中时(例如,它们加入到同一个Windows信任域),就可以使用KerberosAssertion进行身份验证。
  5 结束语
  面向服务的软件开发方法正在成为软件开发中的重要方法。Web 服务的安全问题一直是阻碍Web 服务发展的主要问题。通过使用WSE3.0的策略框架,我们就可以方便快捷的构建安全的Web服务。
  
  参考文献:
  [1]Keith Brown.Security Features in WSE 3.0.[EB/OL]. https://msdn.省略/msdnmag/issues/05/11/SecurityBriefs/default.aspx,2005-12.
  [2]Tomasz Janczuk. Protect Your Web Services Through The Extensible Policy Framework In WSE 3.0.[EB/OL]. https://msdn.省略/msdnmag/issues/06/02/WSE30/default.aspx, 2006-2.
  [3]柴晓路.架构Web Service: 什么是Web 服务?[EB/OL].https:// www.省略/developerworks/cn/webservices/ws-wsar/part2/,2001.
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3