Web Service 原子事务安全性

Web Service 原子事务 (WS-AT) 定义自己的内部 Web Service,这些 Web Service 用作该协议的一部分。这些内部 Web Service 将在事务启动期间以及落实或回滚处理期间调用。同时,WS-AT 需要双向通信。WS-AT 需要 DMZ 代理以使 Liberty 服务器可在典型防火墙环境中运行,还需要 HTTPS 端点以获取授权。以下内容描述如何在 Liberty 中为 WS-AT 配置代理和安全套接字层 (SSL)。

防火墙代理

当 Liberty 服务器位于典型防火墙环境中时,这些服务器无法通过防火墙与彼此通信。在这种情况下,服务器需要 DMZ 代理才能正常运行。可以通过配置 server.xml 文件来定义代理端点。

例如,将 IBM HTTP Server (IHS) 设置为 DMZ 代理。在图 1 中,要通过 IHS 在两个 Liberty 服务器之间通信,请执行以下步骤:
  1. 配置 IHS 插件以将请求转发至 Liberty 服务器。有关更多信息,请参阅为 Liberty 配置 Web 服务器插件
    • 对于 IHS 1,配置 IHS 1 插件以将请求转发至 Liberty A,并在 <UriGroup> 项中添加 <Uri Name="/ibm/wsatservice/*" />
    • 对于 IHS 2,配置 IHS 2 插件以将请求转发至 Liberty B,并在 <UriGroup> 项中添加 <Uri Name="/ibm/wsatservice/*" />
  2. externalURLPrefix 参数添加到 Liberty 中的 server.xml 文件:
    • 在 Liberty A 中,对于 IHS 1,将 externalURLPrefix 值设置为 http://proxyserver1:80,如下所示:
      <wsAtomicTransaction externalURLPrefix="http://proxyserver1:80"/> 
    • 在 Liberty B 中,对于 IHS 2,将 externalURLPrefix 值设置为 http://proxyserver2:81,如下所示:
      <wsAtomicTransaction externalURLPrefix="http://proxyserver2:81"/> 
图 1. 通过 IHS 在两个 Liberty 服务器之间通信
当 Liberty A 与 Liberty B 之间存在防火墙时,Liberty A 可以通过 IHS 1 将 EPRb1 发送至 Liberty B,但 Liberty B 会接收到 EPRb 而非 EPRb1,反之亦然。

安全套接字层

缺省情况下,Liberty 服务器不使用 SSL 通信。如果需要 WS-AT 安全性并要求将安全性信息重定向到安全端口,那么必须将 appSecurity-2.0 Liberty 功能添加到 server.xml 文件。还可以根据保护 Liberty 及其应用程序在 Liberty 中启用 SSL。

可以根据以下项为 WS-AT 安全性配置 SSL:
<wsAtomicTransaction SSLEnabled="false" SSLRef="defaultSSLConfig" clientAuth="false"/>
其中:
SSLEnabled
指定是否为 WS-AT 启用 SSL。有效值为 true 和 false。缺省值为 false。设置为 true 可启用 SSL。
SSLRef
定义 server.xml 文件中的 SSL 配置。WS-AT 需要此 SSL 配置才能通信。
clientAuth
指定是否为 WS-AT 启用 clientAuthentication。有效值为 true 和 false。缺省值为 false。在将 clientAuth 值设置为 true 以启用 clientAuthentication 之前,请确保在 SSL 配置中将 clientAuthenticationSupported 值设置为 true。
要点: SSL 配置仅在 Liberty 服务器级别适用。
提示: 在以下代码段中,缺省 SSLEnabled 值为 false。如果要同时启用 SSL 和代理,请将 SSLEnabled 值设置为 true,并将 externalURLPrefix 值设置为以 https:// 开头的代理地址。
<wsAtomicTransaction SSLEnabled="false" SSLRef="defaultSSLConfig" externalURLPrefix="" clientAuth="false"/> 

用于指示主题类型的图标 参考主题

文件名:rwlp_dep_wsat_sec_lib.html