WebSphere Application Server V6 的 Web Service security 规范 - 年表

本文描述了 Web Service 安全性规范的制定。本文提供有关结构化信息标准促进组织(OASIS)Web Service Security V1.0 规范的信息,该规范就是 WebSphere® Application Server V6 和更高版本中用来保护 Web Service 的基础规范。

非 OASIS 活动

作为互操作性和集成的可行技术,Web Service 正在迅速获得认可。但是,保护 Web Service 是某种极为重要的服务质量,其会使采用 Web Service 成为企业的可行的工业和商业解决方案。IBM® 与 Microsoft® 联合发布了题为 Security in a Web Services World: A Proposed Architecture and Roadmap 的 Web Service 安全性白皮书。此白皮书讨论建议的 Web Service 安全路线图中的以下初始和后续规范:
Web Service 安全性
此规范定义如何连接数字签名、使用加密和使用简单对象访问协议(SOAP)消息中的安全性令牌。
WS-Policy
此规范定义用于描述中介或端点的安全性约束和策略。
WS-Trust
此规范定义信任模型的框架以在 Web Service 之间建立信任。
WS-Privacy
此规范定义如何表达 Web Service 和请求者的隐私策略的模型。
WS-SecureConversation
此规范定义如何交换和建立安全的上下文,其会在 Web Service 之间派生会话密钥。
WS-Federation
此规范定义不同种类的联合环境中信任关系的模型,包括联合标识管理。
WS-Authorization
此规范定义 Web Service 的授权策略。但是,尚未发布 WS-Authorization 规范。Web Service 安全性的现有实现基于 Web Service for Java™ 2 Platform, Enterprise Edition(J2EE)规范或 Java 规范需求(JSR)109 规范。Web Service 安全性的实现利用了 J2EE 基于角色的授权检查。有关基于角色的授权的概念性信息,请参阅基于角色的授权。如果要开发需要进行方法级别的授权检查的 Web Service,则必须使用无状态会话 bean 来实现 Web Service。有关使用无状态会话 bean 来实现 Web Service 的更多信息,请参阅从企业 bean 开发 Web Service保护企业 bean 应用程序。如果要开发作为 Servlet 实现的 Web Service,则可以在 Web 容器中使用粗粒度的授权或基于 URL 的授权。但是,在此情况下,不能使用 Web Service 安全性中的标识来进行授权检查。但是可以使用用于传输的标识。如果使用 SOAP over HTTP,则标识在 HTTP 传输中。

下图说明了这些规范之间的关系:

不同规范的关系

在 2002 年 4 月,IBM、Microsoft 和 VeriSign 在它们的 Web 站点上提出了 Web Service 安全性(WS-Security)规范建议,该规范由上图中的绿色框指示。此规范包括安全性令牌、XML 数字签名 和 XML 加密的基本思想。此规范还定义了用户名令牌和已编码的二进制安全性令牌的格式。经过一些讨论和基于规范的互操作性测试之后,发现存在下列问题:
  • 此规范要求 Web Service 安全性处理器正确了解模式,以便处理器可以分辨用于 XML 数字签名和 XML 加密的标识属性。
  • 无法确定消息的新鲜度,而新鲜度表明消息是否遵守预定义的时间约束。
  • 摘要的密码字符串不能增强安全性。
在 2002 年 8 月,IBM、Microsoft 和 VeriSign 发布了 Web Services Security Addendum 以尝试解决前面所列示的问题。在附录中提出了下列解决方案:
  • 需要用于 XML 签名和 XML 加密的全局标识属性。
  • 使用表明消息的创建、接收或到期时间的时间戳记头元素。
  • 使用以时间戳记和现时标志(其是随机生成的令牌)摘要的密码字符串。

上图中蓝色框的规范已由各种行业供应商提议,而各种互操作性事件已由供应商组织,以验证和优化提议的规范。

OASIS 活动

2002 年 6 月,OASIS 接收到由 IBM、Microsoft 和 Verisign 建议的 Web Service 安全性规范。在此次提交后不久就在 OASIS 成立了“Web Service 安全性技术委员会”(WSS TC)。该技术委员会包括许多公司,这些公司包括 IBM、Microsoft、VeriSign、Sun Microsystems 和 BEA Systems。

在 2002 年 9 月,WSS TC 发布了其第一个规范,即 Web Service Security Core Specification, Working Draft 01。此规范包括原始 Web Service 安全性规范及其附录的内容。

随着讨论不断深入,该技术委员会的覆盖面也加大了。由于 Web Service Security Core Specification 允许任意类型的安全性令牌,所以建议以概要文件形式发布。这些概要文件描述了用于嵌入 令牌的方法,这些令牌包括安全声明标记语言(SAML)令牌和嵌入在 Web Service 安全性消息中的 Kerberos 令牌。随后,用户名令牌和 X.509 二进制安全性令牌使用的定义(它们在原始的 Web Service 安全性规范中定义)被分成概要文件。

WebSphere Application Server V5.0.2、V5.1 和 V5.1.1 支持下列规范:
  • Web Service 安全性:SOAP Message Security Draft 13(原 Web Service Security Core Specification)
  • Web Service 安全性:Username Token Profile Draft 2

在 2004 年 4 月,Web Service 安全性规范(正式称为 Web Service Security: SOAP Message Security V1.0)成为了 V1.0 OASIS 标准。同样,Username 令牌和 X.509 令牌概要文件也是 V1.0 规范。

下图显示各种与 Web Service 安全性相关的规范。

OASIS 规范

WebSphere Application Server V6 还扩展并提供了插入功能以使安全性提供程序能够扩展运行时功能,并在 Web Service 安全性规范堆栈中实现一些高级规范。插件点会作为服务提供者编程接口(SPI)列出。有关这些 SPI 的更多信息,请参阅 Web Service 安全性服务提供者编程接口的缺省实现

Web Service 安全性规范开发

OASIS Web Service 安全性 V1.0 规范定义用于提供消息完整性和机密性的增强功能。它还提供用于将安全性令牌与简单对象访问协议(SOAP)消息关联的通用框架。此规范设计为可扩展以支持多个安全性令牌格式。用安全性令牌概要文件处理特定的安全性令牌使用情况。OASIS Web Service 安全性规范基于以下万维网联合组织(W3C)规范。大多数的 W3C 规范都在标准主体建议的状态中。

在 WebSphere Application Server 6 中,在 Web Service 安全性的上下文中支持这些规范。例如,可以通过指定部署描述符中的完整性选项来签署 SOAP 消息。但是,不存在应用程序编程接口(API),其可以供应用程序用于 SOAP 消息中 XML 元素上的 XML 签名。

OASIS Web Service 安全性 V1.0 规范定义用于提供消息完整性和机密性的增强功能。它还提供用于将安全性令牌与简单对象访问协议(SOAP)消息关联的通用框架。此规范设计为可扩展以支持多个安全性令牌格式。用安全性令牌概要文件处理特定的安全性令牌使用情况。

WebSphere Application Server V6 和更高版本中的规范和概要文件支持

OASIS 正在处理各种概要文件。有关更多信息,请参阅结构化信息标准促进组织委员会。WebSphere Application Server V6 不支持这些概要文件。以下列表是某些已发布的草稿概要文件和正在处理的 OASIS Web Service 安全性技术委员会:
  • Web Service 安全性:SAML 令牌概要文件
  • Web Service 安全性:REL 令牌概要文件
  • Web Service 安全性:Kerberos 令牌概要文件
  • Web Service 安全性:带附件的 SOAP 消息(SwA)概要文件
由于 WebSphere Application Server V6 支持下列规范,所以建议不要使用 WebSphere Application 5.0.2、5.1.0 和 5.1.1 中对 Web Service Security Draft 13 和 Username Token Profile Draft 2 的支持:
  • OASIS Web Service 安全性 V1.0 规范
  • Web Service 安全性用户名令牌概要文件
  • X.509 令牌概要文件

Web Service 安全性 V1.0 中具有 Web Service 安全性的 SOAP 消息的有线格式已更改,而且不与 Web Service 安全性规范的先前草稿兼容。在 OASIS Web Service 安全性 V1.0 和先前的 Web Service 安全性草稿之间不支持互操作性。但是,在 WebSphere Application Server V6 上运行基于 Web Service Security Draft 13 的应用程序是有可能的。该应用程序可以与 WebSphere Application Server V5.0.2、V5.1 或 V5.1.1 上基于 Web Service Security Draft 13 的应用程序进行互操作。

WebSphere Application Server V6 既支持 OASIS Web Service Security Draft 13 又支持 OASIS Web Service 安全性 1.0 规范。但是,在 WebSphere Application Server V6 中,建议不使用对 OASIS Web Service Security Draft 13 的支持。然而,在 WebSphere Application Server 5.0.2、5.1.0 和 5.1.1 上使用 OASIS Web Service Security Draft 13 开发的应用程序可以在 WebSphere Application Server V6 上运行。OASIS Web Service Security V1.0 支持仅可用于 Java2 Platform, Enterprise Edition (J2EE) V1.4 应用程序。部署描述符配置格式和绑定配置格式与先前版本的 WebSphere Application Server 不同。必须将现有的应用程序迁移至 J2EE 1.4 并将 Web Service 安全性配置迁移至 WebSphere Application Server V6 格式。有关迁移信息,请参阅将具有 Web Service 安全性的 V5.x 应用程序迁移到 V6 应用程序

Web Service 互操作性组织(WS-I)活动

Web Service 互操作性组织(WS-I)是提升供应商、平台、编程语言和应用程序之间互操作性的开放式行业成就。此组织是许多不同行业的公司组成的,其中包括 IBM、Microsoft、Oracle、Sun、Novell、VeriSign 和 Daimler Chrysler。2003 年春,WS-I开始对基本安全概要文件(BSP)进行处理。BSP 由 一组非专有的 Web Service 规范组成,BSP 阐明和增强那些规范以提升不同供应商实现之间的 Web Service 安全互操作性。在 2004 年 6 月,BSP 成为公开的草案。有关更多信息,请参阅 Web Service 互操作性组织

特别地,有关 BSP 的详细信息,请参阅 Basic Security Profile V1.0。WebSphere Application Server 支持符合 BSP。有关将应用程序配置为符合 BSP 的详细信息,请参阅基本安全概要文件一致性

相关概念
Web Service 安全性服务提供者编程接口的缺省实现
相关任务
将具有 Web Service 安全性的 V5.x 应用程序迁移到 V6 应用程序

反馈