了解 Web 服务规范_第 4 部分:WS-Security.
### 了解 Web 服务规范_第 4 部分:WS-Security #### 概述 在深入了解WS-Security之前,我们先回顾一下DailyMoon报社的员工如何探索使用Web服务这一新工作方式。该报社的Classifieds Department决定允许外部用户通过SOAP消息访问其系统。SOAP消息是一种可以通过HTTP发送的XML格式的消息。例如,查询“forsale”子类别中的分类广告数量的请求可能类似于清单1所示。 **清单1. 示例SOAP消息** ```xml <?xml version='1.0'?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/SOAP-envelope"> <env:Header> </env:Header> <env:Body> <cms:getNumberOfArticles xmlns:cms="http://www.daily-moon.com/cms"> <cms:category>classifieds</cms:category> <cms:subcategory>forsale</cms:subcategory> </cms:getNumberOfArticles> </env:Body> </env:Envelope> ``` 这个SOAP消息被称为“信封”,包含了Header和Body两部分。Header通常包含有关消息本身的信息(如路由信息)或者是由位于发送方和接收方之间的“SOAP中间件”处理的信息。Body部分则包含实际的数据或请求,如上述例子中的`getNumberOfArticles`元素。 #### 安全性需求 随着Web服务的应用越来越广泛,安全性成为一个关键的问题。基础的SOAP规范并未提供保护消息安全性的功能,而是将其留给扩展规范来完成。Web服务应用程序通常基于SOAP over HTTP,这使得每个消息都可能经过一个或多个中间节点,在这些节点上消息可能会被读取或篡改。 因此,安全性需求主要包括: 1. **防止窃听**:确保敏感信息仅能被预定接收者读取。 2. **防止未授权访问**:确保只有预定发送者能够发送消息。 为了满足这些需求,我们需要引入WS-Security。 #### WS-Security的内容 WS-Security解决了SOAP消息交换中遇到的主要安全问题,并提供了解决方案,尽管不是直接解决问题的方法。WS-Security关注的是如何让接收方知道发送方是如何保护消息的。具体来说,它涉及以下三个方面: 1. **客户机标识和身份验证**:WS-Security定义了如何在SOAP消息中传输不同的安全令牌,但并未指定具体的身份验证机制。 2. **消息完整性**:WS-Security通过使用XML Signature规范来确保消息的完整性。XML Signature是一项W3C推荐的标准,它提供了一种对XML文档进行数字签名的方式。 3. **消息加密**:为了保护消息在传输过程中的隐私,WS-Security利用XML Encryption规范,这是一个W3C标准,提供了一种加密XML文档的方法。 #### 当前服务 在深入探讨如何实施WS-Security之前,让我们先了解一下DailyMoon报社现有的Classifieds服务的架构。该服务使用Axis2实现,并存储在一个*.aar文件中。例如,CMSService.aar文件包含了三个文件,如清单2所示。 **清单2. 原始服务的内容** ``` CMSService.class meta-inf/services/org.apache.axis2.AxisService META-INF/MANIFEST.MF ``` 这些文件构成了服务的基础结构,包括了服务的类文件、服务配置文件以及必要的元数据。 #### 实施WS-Security 为了实施WS-Security,Gene和Frances需要采取一系列步骤来保护现有的Classifieds服务。这包括但不限于: - 在SOAP消息的Header中嵌入安全令牌。 - 使用XML Signature来确保消息的完整性和来源的真实性。 - 应用XML Encryption来加密敏感信息。 实施这些步骤后,DailyMoon报社将能够更好地保护其Web服务免受未经授权的访问,并确保数据的安全性和完整性。通过逐步实施WS-Security规范,他们不仅能够满足发行人的需求,还能提高整个系统的安全性。
剩余44页未读,继续阅读
- tangliu08062015-07-13很早就下载了,对学习ONVIF协议有一定帮组
- 粉丝: 1
- 资源: 47
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助