基础计算机安全/网络安全/增强 Web 服务安全
本节讨论增强 Web 服务安全的技术和方法。
WS-Policy 已由 W3C 小组标准化,并已成为事实上的标准 Web 服务策略规范。 已经提出了许多将 WS-Policy 转换为逻辑的建议。 其中一个建议使用 OWL-DL 来提供形式语义。 使用推理机,它提供了一种机制来确定两个策略是否兼容。 使用的推理机是 Pellet,它是斯坦福大学提供的开源工具 Protégé 的标准插件。 WS-Policy
另一种扩展 Web 服务安全性的方法是将 JAX-WS 规范与 JAX-WS RI 结合使用。 JAX-WS 的标准处理程序有一些限制。 例如,LogicalHandler 只提供对有效载荷的访问,而不提供对 SOAP 标头和作为附件在 SOAP 消息中传输的二进制数据的访问,并且更适合 XML/HTTP 绑定。 此外,尽管 SOAPHandler 提供对整个 SOAP 消息的访问,但它对性能有影响,因为 SOAPMessage 基于 DOM 并尝试将整个消息加载到内存中。 另一方面,JAX-WS RI 以流式方式读取消息,并尝试延迟读取信息以提供更好的性能。 JAX-WS 规范支持常见的 WS-I 规范,包括 WS-I 基本配置文件、WS-I 附件配置文件、WS-I 简单 SOAP 绑定配置文件 1.0 WS-Addressing - 核心、SOAP 绑定和 WSDL 绑定。 JAX-WS RI 定义了消息抽象 - 隐藏实际数据表示,无论是从 JAXB 对象构建的消息还是 HttpConnection 的 InputStream。 Message API 提供了多种访问有效载荷的方式,实现可以以最佳方式实现这些方法。 JAX-WS 运行时在构建新消息时会选择正确的消息表示。 此外,它还提供了一些常用的 Message Base 类实现(例如,JAXBMessage、DOMMessage、SAAJ Message 和 ProtocolSourceMessage)。 这些 Message 类中的每一个都具有特定的特征,并且可能更实用或更适合当前情况。 随着 RI 的添加,开发人员可以访问静态工厂方法来轻松使用 Messages API 创建消息。 使用这种方法,他可以轻松地访问和创建消息,而不管实际的数据表示形式如何。 利用 JAX-WS 规范提供的可扩展的 Handler 框架和 RI 中更好的 Message 抽象,可以引入一个名为 MessageHandler 的新类处理程序来扩展您的 Web 服务应用程序。 MessageHandler 类似于 SOAPHandler,不同之处在于实现可以访问 MessageHandlerContext(MessageContext 的扩展)。 通过 MessageHandlerContext 类,可以使用 Message API 访问和处理消息[2]。
[1] Vladimir Kolovski 和 Bijan Parsia,WS-Policy 及其扩展:将 OWL 默认值应用于 Web 服务策略。 马里兰大学计算机科学系,美国马里兰州学院公园,2008 年。
[2] JAX-WS 2.1 RI 架构文档,Sun Microsystems,2009 年。