Web Service 安全性的高级体系结构
在使用 JAX-RPC 编程模型时,将在 Web Service 部署描述符的 IBM® 扩展中指定 Web Service 安全策略,在使用 JAX-WS 编程模型时,将在策略集中指定该安全策略。独立 JAX-WS 客户机应用程序可以按编程方式指定 Web Service 安全策略。对于 JAX-RPC 和 JAX-WS 编程模型,支持 Web Services 安全策略的绑定数据存储在 Web Service 部署描述符的 IBM 扩展中。Web Service 安全性运行时将强制执行策略文档或应用程序中以该顺序指定的安全性声明。
最佳实践: IBM
WebSphere® Application Server 支持 Java™ API for XML-Based Web Services (JAX-WS) 编程模型以及 Java API
for XML-based RPC (JAX-RPC) 编程模型。JAX-WS 是下一代 Web Service 编程模型,用于扩展 JAX-RPC 编程模型所提供的基础。使用策略 JAX-WS 编程模型,借助基于标准的注释模型的支持,简化了 Web Service 和客户机的开发。虽然仍支持 JAX-RPC 编程模型和应用程序,但应该利用易于实现的 JAX-WS 编程模型来开发新的 Web Service 应用程序和客户机。
WebSphere Application Server 使用 Java Platform, Enterprise Edition (Java EE) V1.4 或更高版本 Web Service 部署模型来实现 Web Service 安全性。部署模型的优点之一是可以在应用程序业务逻辑外定义 Web Service 安全性需求。借助角色分离,应用程序开发者可以集中在业务逻辑上,而安全专家可以指定安全要求。
下图显示了 WebSphere Application Server 中用于保护 Web Service 的高级体系结构模型:

如本节中稍后部分所述,也可以使用 WSS API 来保护消息:

在客户机端和服务器端上都有两组配置:
- 请求生成者
- 此客户机端配置定义出局 SOAP 消息请求的 Web Service 安全性需求。这些需求可能涉及到生成 SOAP 消息请求,此消息请求使用数字签名、合并加密和连接安全性令牌。在 WebSphere Application Server V5.0.2、V5.1 和 V5.1.1 中,请求生成者称为请求发送方。
- 请求使用者
- 此服务器端配置定义入局 SOAP 消息请求的 Web Service 安全性需求。这些需求可能涉及到验证是否数字签名了所需的完整性部件;验证数字签名;验证所需的机密部件是否由请求生成者加密;解密所需的机密部件;验证安全性令牌;以及验证是否用适当的标识设置安全上下文。在 WebSphere Application Server V5.0.2、V5.1 和 V5.1.1 中,请求使用者称为请求接收方。
- 响应生成者
- 此服务器端配置定义出局 SOAP 消息响应的 Web Service 安全性需求。这些需求可能涉及到生成具有 Web Service 安全性的 SOAP 消息响应;包括数字签名;以及加密和连接安全性令牌(如果需要)。在 WebSphere Application Server V5.0.2、V5.1 和 V5.1.1 中,响应生成者称为响应发送方。
- 响应使用者
- 此客户机端配置定义入局 SOAP 响应的 Web Service 安全性需求。这些需求可能涉及到验证是否签署了完整性部件和验证了签名;验证是否加密了所需的机密部件和解密了这些部件;以及验证安全性令牌。在 WebSphere Application Server V5.0.2、V5.1 和 V5.1.1 中,响应使用者称为响应接收方。
WebSphere Application Server 未包含客户机与服务器之间的安全策略协商或交换。此安全策略协商由 WS-Policy、WS-PolicyAssertion 和 WS-SecurityPolicy 规范进行定义,它在 WebSphere Application Server 中不受支持。
注: 在请求生成者中定义的 Web Service 安全性需求必须与请求使用者相匹配。在响应生成者中定义的要求必须与响应使用者匹配。否则,会拒绝请求或响应,这是因为请求使用者和响应使用者无法满足 Web Service 安全性约束。
Web Service 安全性部署描述符和绑定的格式是 IBM 专利。但是,以下工具可用于编辑部署描述符和绑定:
- IBM 组装工具
- 使用 IBM 组装工具来编辑 Web Service 安全性部署描述符和绑定。使用这些工具来组装 Web 模块和 Enterprise JavaBeans (EJB) 模块。有关更多信息,请参阅组装工具。
- WebSphere Application Server 管理控制台
- 可以使用此工具来编辑已部署的应用程序的 Web Service 安全性绑定。