服务集成技术和 WS-Security

在 WS-Security 方案中,消息流如下图所示:

图 1。 消息流
此图描述了消息流。

客户机生成由客户机 Web Service 引擎处理的请求。 此引擎读取客户机安全性配置,并将 ibm-webservicesclient-ext.xmi 文件中定义的安全性应用于 SOAP 消息。 该引擎从 ibm-webservicesclient-bnd.xmi 文件中获取其他绑定信息(例如,文件系统上密钥库的位置)。

在接收 SOAP 消息时,服务器上的 Web Service 引擎引用调用的 Web Service 的 *.xmi 文件。 在此情况下,ibm-webservices-ext.xmi 文件会告知引擎,入局消息必须具有哪种安全性(例如,必须签署消息体)。 如果消息不符合该安全性,那么会被拒绝。 Web Service 引擎会验证任何安全信息,然后将消息传递到调用的 Web Service。

在响应从服务器到客户机的消息时,反向执行此过程。 Web Service *.xmi 文件告知 Web Service 引擎将哪些安全性应用于响应消息,而客户机 *.xmi 文件告知客户机引擎响应消息中需要哪些安全性。

如果将此方案应用于入站和出站服务,那么消息流如下图所示:

在此图中,客户机与入站服务交换请求和响应消息,而出站服务与目标 Web Service 交换请求和响应消息。
在此方案中:
  • 客户机应用程序和目标 Web Service 在它们的 *.xmi 文件中具有安全性设置。 您 从拥有方获取此信息
  • 入站服务和出站服务具有您为它们配置的安全性设置。
要保护入站或出站服务,将以下类型的 WS-Security 资源应用于服务使用的端口:
  • WS-Security 配置
  • WS-Security 绑定
其中, 配置 资源类型指定您需要的安全级别 (例如, 主体必须签名) , 绑定 资源类型提供运行时环境实现配置所需的信息 (例如, 要对主体进行签名,请使用此键)。
WS-Security 资源的管理独立于使用它们的任何 Web Service,因此您可以创建绑定或配置资源,然后将它应用于许多 Web Service。 但是,入站服务(充当目标 Web Service)的安全要求与出站服务(充当客户机)所需的安全要求显著不同。 因此,每种 WS-Security 资源类型进一步分成子类型。 创建新配置资源时,您选择创建的配置资源类型取决于配置是应用于 入站服务 还是 出站服务。 当您 创建新的绑定资源时,您选择创建的绑定资源类型取决于使用该绑定的上下文:
  • 在使用从客户机到入站服务的请求时使用的绑定。
  • 在生成从出站服务到目标 Web Service 的请求时使用的绑定。
  • 在使用从目标 Web Service 到出站服务的响应时使用的绑定。
  • 在生成从入站服务到客户机的响应时使用的绑定。
创建 WS-Security 资源时,您还可以选择创建符合 Web Service 安全性 (WS-Security) 1.0 规范的资源,以及创建符合 WS-Security Draft 13 规范的资源。
注:WebSphere® Application Server V 6.0中不推荐使用 WS-Security 草案 13。 不推荐使用 WS-Security Draft 13,并且仅应使用它来允许连续使用已写至 WS-Security Draft 13 规范的现有 Web Service 客户机应用程序。
有关 WS-Security Draft 13 规范的历史记录的更多信息,请参阅 Web Services Security specification-a chronology