现在的位置: 首页 > 综合 > 正文

XML和Web服务安全

2013年09月03日 ⁄ 综合 ⁄ 共 2883字 ⁄ 字号 评论关闭

本文介绍在Sun公司提供的JWSDP1.6版本中提供的消息级别安全.

本版为XML和Web服务提供消息级别安全(XWS-Security).在消息级别安全中,安全信息包含在SOAP消息和/或SOAP消息附件中,这允许安全信息和消息或附件一起传递.例如消息的一部分由发送者签名并加密给一个特定的接收者,当消息从最初的发送者发送时,在抵达它期望的接收者之前它要通过中间节点.在这个场景中,加密的部分对中间节点一直是不透明的并且只能由期望的接收者解密,由于这个原因,消息级别的安全有时也称为端到端安全.

概览

Sun 公司发布的XWS-Security,包括下列特性:

  • 在service, port, and operation级别上支持保护JAX-RPC应用.
    XWS-Security APIs 既保护JAX-RPC应用也保护利用SAAJ APIs的单独应用,这个应用要是没有使用SOAP消息的话.一个JAX-RPC应用开发者能保护应用通过签名,查核,加密和/或解密部分SOAP消息和附件的样本安全框架.消息发送者也能声明安全属性通过和消息关联的安全标记,一个安全声明的例子是发送者的标记,通过用户名称和口令标记的.
  • 支持SAML标记和部分WSS SAML标记概要.
  • 支持基于WSS SwA概要草案的附件保护.
  • 部分支持发送和接收WS-I基本安全概要(BSP) 1.0兼容的消息.
  • 增强SecurityConfiguration方案.
  • 使用这个框架的例子程序演示.
  • 为keystore管理提供了实用的命令行工具,包括pkcs12import和keyexport.

本XWS-Security实现基于Oasis Web Services Security (WSS) 规范,你能查看下面这个URL:
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf

XWS-Security实现的规范
XWS-Security是一个实现了OASIS的WSS规范,WSS定义一个SOAP扩展,用于通过消息完整性,消息机密度以及消息认证来提供保护品质.WSS 机制能用于完成各种广泛的安全模型和加密技术.WSS规范还定义了一个端到端安全框架,它提供支持中间安全处理.消息完整性通过使用XML签名连同安全标识来确保消息在传输过程中不被篡改.消息机密性通过XML加密连同作为SOAP消息秘密部分的安全标识提供.

在本版中,XWS-Security框架提供下面的选项来保护JAX-RPC应用:
XML Digital Signature (DSig)
XML Encryption (XML-Enc)
UsernameToken Verification
XWS-Security Framework APIs
XWS-Security基于的技术
XWS-Security APIs 用来保护基于JAX-RPC的Web services和基于SAAJ的单独应用程序,本版XWS-Security基于标准的XML Digital Signature和非标准XML Encryption APIs,它受新版技术的影响.随着JSR-106的确定,JSR-106-XML Digital Encryption APIs将会取代它.

和其它Web服务的互操作性
本发布部分支持WS-I Basic Security Profile 1.0 (BSP)来实现互操作性,计划在XWS-Security2的FCS版中完全支持.

XWS-Security框架是什么?
它用来保护JAX-RPC和单独SAAJ应用程序.使用XWS-Security保护SOAP消息(请求和响应)通过签名某些部分,或者加密某些部分,或者发送用户口令鉴定信息,或者这些项的杂合.
使用XWS-Security框架保护JAX-RPC应用是通过wscompile工具的-security选项,当你为JAX-RPC客户和服务创建一个asant (or ant)目标的时候,wscompile工具生成stubs,ties, serializers, 和WSDL等文件.
注意:对于JAX-RPC的2.0版,JAX-RPC将重命名为JAX-WS.在今年晚些时候JAX-WS将成为XWS-Security 2.0 FCS的一部分.发生这些情况的时候, wscompile工具将被替换,因此为那些例子应用设计的步骤和build.xml等文件都将需要修改.

XWS-Security通过使用security configuration文件被集成到JAX-RPC中了. 在客户端和服务器端执行安全操作的代码由JAXRPC wscompile工具生成,它接收-security选项提供的security configuration文件.wscompile工具借助-security选项指定的security configuration文件指示生成安全代码.
要使用XWS-Security 框架,就要设置客户端和服务器端基础结构.为XWS-Security设置你的系统的一个关键部件就是为你要使用的安全类型(DSig, XML-Enc, UserName Token)设置适当的数据库,这依赖于你的应用结构,那么数据库是一些keystore文件,truststore文件以及usernamepassword等文件的组合.

配置安全配置文件
XWS-Security使用安全配置文件描述安全配置以简化指定客户和服务器端配置.
在本指南中,build, package, and deploy targets等过程使用asant工具定义和运行.工具asant是Apache Ant基于java的构建工具特定于SJSAS的定制版本,如果要发布到不同的容器,需要使用Apache Ant工具代替.
配置安全配置文件有以下步骤:

  • 创建一个安全配置文件.
  • 在build.xml文件中为你的应用创建一个asant (或ant)目标,它使用安全配置文件.
  • 在创建build.properties文件中创建一个属性来指定客户和服务器端分别使用的安全配置文件.

理解安全配置文件,可参看JWSDP1.6中提供的详细说明.
怎样给Build文件指定安全配置?

相关操作说明:

在具体构建安全的Web服务时,不管是生成服务器端制品还是要生成客户端制品,都要在wscompile中使用选项-security <安全配置文件>,根据要求的不同安全策略,服务器端和客户端的配置文件不一定是要配置对称,比如用户认证就是一个不对称配置,加密压缩等就需要对称的配置.wsdeploy没有变化,用法和以前一样.

在JWSDP1.6中提供的JAX-RPC中提供的wscompile工具里没有对-security 的支持,而是通过插件的方式提供了支持,该插件位于<JWSDP.HOME>/xws-security/lib/security-plugin.jar,在使用Ant构建时要注意加入到类路径中来.

另外,在实际使用中,一定要注意所使用的jar版本的兼容性和一致性,否则会遇到不少问题.

抱歉!评论已关闭.