欢迎来到天天文库
浏览记录
ID:18121627
大小:215.50 KB
页数:35页
时间:2018-09-14
《基于xfire实施ws-security》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于XFire实施WS-Security概述WebService是安全的吗?鉴于安全性涉及诸多方面(例如身份验证和授权、数据隐私和完整性等),而SOAP规范中根本没有提及安全性这一事实,所以我们不难理解人们为什么认为答案是否定的。很少有不需要某种形式的安全性保证的企业级系统。在WebService中,处理WebService安全的过程比处理其他领域应用的安全问题更为复杂,因为WebService具有分布式、无状态的特性。WS-Security是解决WebService安全问题的规范,大多数商业的JavaEE应用服务器都实现了WS-Security规范,Apac
2、heWSS4J是WS-Security的开源实现,WSS4J通过SOAP中WS-Security相关的信息对SOAP报文进行验证和签名,XFire通过WSS4J对WS-Security提供了支持。你可以从http://ws.apache.org/wss4j了解更多关于WSS4J的信息。认识WS-Security2002年4月,IBM、Microsoft和VeriSign在他们的Web站点上提议建立WebServicesSecurity(WS-Security)规范。此规范包括安全凭证、XML签名和XML加密的安全性问题。此规范还定义了用户名凭证和已编码的二进制
3、安全性凭证的格式。2002年6月,OASIS从IBM、Microsoft和Verisign接收到了提议的WS-Security安全性规范。不久之后就在OASIS成立了“WebService安全性技术委员会”(WSSTC)。2006年2月15日,OASIS通过了WS-Security1.1安全规范,1.1规范突出了对安全权标支持、消息附件和权限管理的增强。1.1规范包括WS-Security核心规范及用户名权标规范1.1、X.509权标规范1.1、Kerberos权标规范1.1、SAML权标规范1.1、权限表达(REL)权标规范1.1、带附件的SOAP(SWA)
4、规范1.1和模式1.1。也许读者会提出这样的问题:SSL也具有完整性和机密性,为什么还需要另外一个WS-Security规范呢?之所以要制定WS-Security规范,是SSL存在以下的问题:·端对端的通信,脱离传输层就无法保证安全性;·消息必须全部加密/或者全部签名,而不能针对消息的某部分,没有考虑XML处理。SSL对应OSI的传输层,前面我们提到过WebService是和传输层无关的,将安全问题依附在SSL上就违反了WebSerivce与传输层无关的原则。而WS-Security对应于OSI的应用层,建立消息层SOAP之上。针对不同领域的细分问题,OASI
5、S在WS-Security的基础上又制定了几十个规范,其中包括WS-SecureConversation、WS-Federation、WS-Authorisation、WS-Policy、WS-Trust、WS-Privacy等,形成了一个庞大WebService安全性协议家族。图1WS-Security所在位置有了WS-Security规范,用户就拥有在WebService应用中实施完整性、机密性和身份验证等安全需求的规范方法。XFire应用WS-Security的总体方案XFire通过Apache的WSS4J对WS-Security提供支持,XFire完整
6、发布包中包含了WSS4J的类包。我们知道XFire在发送和接收SOAP报文前拥有多个阶段,每个阶段都可以注册Handler,对SOAP报文进行前置和后置处理的加工操作。XFire即通过Handler实施WSS4J,当发送SOAP报文时,通过注册一系列OutHandler,对SOAP报文进行加密、签名、添加用户身份信息等后置处理操作。而在接收SOAP报文时,则通过注册一系列的InHandler对SOAP进行解密、验证签名,用户身份认证等前置操作。图2XFire应用WS-Security的方案请求和响应的SOAP在发送之前可以通过注册的OutHanlder进行加工
7、处理,让SOAP转换为WS-Security的保护格式。而服务端和客户端的接收SOAP报文之前,可以通过注册的InHandler,将WS-Security格式的SOAP转换正常的SOAP进行处理。由于XFire在SOAP收发过程中定义了多个不同的生命阶段,所以可以在发送前和接收前完成SOAP报文安全处理的工作,这些操作完全独立于业务处理逻辑,实施WS-Security对于WebService的业务操作是透明的。使用WS-Security在前面内容中,我们通过各种方式将BbtForum中的方法以BbtForumSerivice窄接口开放为WebService服务
8、,但个WebService是没有任何安
此文档下载收益归作者所有