IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  SOA and Web services | WebSphere  >

将 WebSphere Web 服务安全任务分流到 IBM WebSphere DataPower SOA Appliances,第 1 部分: 为非对称安全配置 Web 服务客户机和服务

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

讨论

英文原文

英文原文


级别: 中级

Joel Smith, 高级软件工程师, IBM

2009 年 2 月 23 日

使用 IBM® WebSphere® Application Server V6.1 的 Web Services Feature Pack 和 IBM WebSphere DataPower SOA Appliances 可最大限度地实现 Web 服务的灵活性。Feature Pack 是包括多个 Web 服务规范 (WS*) 的基于标准的实现。WebSphere DataPower SOA Appliances 以极高的速度运行时能够充当防火墙和提供安全功能。将 WebSphere Application Server 与 WebSphere DataPower SOA Appliances 集成可获得安全、高性能的 Web 服务。本系列文章将指导您完成将 WebSphere DataPower SOA Appliances 与 WebSphere Application Server 集成以改进安全 Web 服务安装的过程。

系统要求

要按照本文进行操作,请确保已拥有:

  • 带 Web Services Feature Pack 的 WebSphere Application Server V6.1
  • IBM Rational Application Developer V7.0.0.6 或更高版本
  • 用于 Web 服务安全的 JCEKS 密钥存储库形式的安全凭据或指定加密操作所需的私钥或公开证书。

关于本文

本文的内容包括:

  • 使用非对称加密部署和配置安全的 Web 服务。
  • 使用 Rational Application Developer 导入示例 EAR 文件和配置 Web 服务安全策略,并为 Web 服务客户机绑定附件
  • 使用 WebSphere Application Server 控制台为示例服务配置 Web 服务安全策略
  • 准备 Java™ Cryptography Extension (JCE) 和 JCEKS 安全凭据。

引言

WebSphere Application Server V6.1 的 Web Services Feature Pack 扩展了 Web 服务功能,允许以异步方式可靠而安全地发送消息。此扩展功能支持关键的 Web 服务标准,允许与多个供应商产品灵活交互。支持的标准包括:

  • Java API for XML Web Services (JAX-WS)
  • WS-Security
  • WS-Addressing
  • WS-Reliable Messaging
  • WS-Secure Conversation
  • SOAP Message Transmission Optimization Mechanism (MTOM)

为使用这些不同的标准,此模型提供了允许灵活配置的 Web 服务引擎。策略和策略集以各种组合方式提供,简化配置复杂级别的 Web 服务的流程。

WebSphere DataPower SOA Appliances 是专门构建的网络设备,可保护和加快 XML 和 Web 服务处理。尽管 WebSphere DataPower SOA Appliances 具有一系列的功能和特点,但本文重点介绍 Web 服务方面。与本文相关的 Web 服务功能是针对以下方面的 XML 消息级别的安全处理:加密和解密、数字签名和验证、WS-Security、XML 模式验证、Web 服务管理支持以及详细日志记录和审核。安全的 XML 处理可以是资源极为密集型的。WebSphere DataPower SOA Appliances 提供传统 XML 引擎中可能没有的 XML 处理和安全。允许 WebSphere DataPower SOA Appliances 执行 Web 服务请求的处理密集型部分可以提高应用服务器的 Web 服务的执行速度,并减轻负载。

WebSphere Application Server V6.1 的 Web Services Feature Pack 包括支持各种 Web 服务安全配置的若干 Web 服务安全策略和策略集。可以从 WebSphere Application Server 控制台选择和配置这些策略和策略集。也可以从控制台创建新的策略。灵活配置 Web 服务的混合级别的处理可提供具有高度针对性的安全和可靠级别。此模块性还允许单独处理 Web 服务部分。本文将介绍如何使用 Rational Application Developer 部署示例 Web 服务和配置 WS-Security 缺省策略集。

本系列文章的第 2 部分将介绍如何将 WS-Security 处理的模块化部分从服务器分流到 WebSphere DataPower SOA Appliances,并将其余的 Web 服务处理委托给应用服务器。这允许设备执行资源密集型处理,并允许应用服务器处理应用程序业务逻辑。

缺省的 WS-Security 策略通过对消息正文和标题进行数字签名来保护消息的完整性,并通过加密正文确保消息的机密性。将缺省 WS-Security 策略应用到部署的 Web 服务来配置 Web 服务引擎,以便 WS-Security 模块接收初始请求。通过处理 SOAP 消息来解密消息内容。然后验证数字签名。如果成功处理消息,则会将其发送到 Web 服务引擎中的下一个模块。生成发送回客户机的响应时,WS-Security 模块逆向处理安全流程。生成数据签名,并将其放在 SOAP 消息中。然后按照策略中指定的方式对 SOAP 消息加密,将请求返回到客户机。图 1 显示了此 Web 服务配置示例。


图 1. 带有缺省安全策略的 Web 服务配置
带有缺省安全策略的 Web 服务配置

在此场景中,WebSphere Application Server V6.1 的 Web Services Feature Pack 中的 Web 服务引擎处理 SOAP 消息的所有元素。当部署应用程序时,WS-Security 运行时插入 Web 服务处理链中。在部署描述符中指定定义所需 WS-Security 选项的配置参数,以确定如何构建 Web 服务处理链。可以使用 WebSphere Application Server 控制台或 Rational Application Developer 指定这些 WS-Security 参数。本文使用 Rational Application Developer 方法。





回页首


示例配置步骤

下面的配置步骤使用 Rational Application Developer 导入和导出工作 Web 服务客户机示例。此场景对于理解安全处理所使用的完全配置的 Web 服务客户机应用程序非常有帮助。您可以从控制台将 Web 服务客户机安装在 WebSphere 应用服务器上。本示例场景使用 WebSphere Application Server V6.1 的 Web Services Feature Pack 上附带的 EchoService 示例和安全凭据。IBM Rational Application Developer 包含配置示例 Web 服务客户机所使用的 WS-Security 缺省策略模板。

WebSphere Web 服务配置

请执行以下步骤:

  1. 请确保安装了 Web 服务示例(信息中心中描述了如何执行此操作)。
  2. 要验证增量式进度,请安装和配置 EchoService 客户机和服务。
  3. 通过在 http://localhost:9080/wssamplesei/demo 上启动浏览器来运行示例客户机。
  4. 使用消息类型 Synchronous Echo 应能得到成功的响应 echo strings

在下一步中,您将配置 WS-Security 策略和绑定,以验证回显消息是否成功进行安全通信。如有必要,从工作客户机和服务配置开始可简化调试,因为已完成较复杂的配置步骤。





回页首


使用 Rational Application Developer 进行 Web 服务客户机配置

下列步骤描述了如何使用 Rational Application Developer 导入 WebSphere Application Server Web Services Feature Pack WSSampleClientSei.ear 文件,配置 WS-Security 缺省策略和绑定,导出 .ear 文件并将其部署到 WebSphere Application Server。

  1. 启动 Rational Application Developer。
  2. 输入名为 MyEchoClient 的新工作区。
  3. 选择 File > Import
  4. 在 J2EE 文件夹中,选择 EAR file,然后选择 Next

    图 2. 导入 Web 服务客户机 EAR 文件
    导入 Web 服务客户机 EAR 文件

  5. 对于 EAR file 字段,浏览并选择 app_server_root/samples/lib/WebServicesSamples/WSSampleClientSei.ear,然后单击 Next
  6. 在 New Server Runtime 面板中,在名称字段的末尾添加 WSFP,以指示您正在使用 Web Services Feature Pack 目标运行时。
  7. 在 Installation directory 字段中,输入安装服务器的路径。

    图 3. 新的服务器运行时
    新的服务器运行时

  8. 单击 Finish图 2 中显示的窗口将再次显示。
  9. 再次单击 Finish
  10. 从左边的 Project Explorer 窗格中,选择并右键单击 SampleClientSei,然后选择 Project Facets
  11. 单击 Add/Remove Project Facets
  12. 选择 WebSphere 6.1 Feature Pack for Web Services
  13. 单击 Finish,然后单击 OK

    图 5. Rational Application Developer Project Facets
    Rational Application Developer Project Facets

  14. 通过在主菜单上单击 File > New > Other 为客户机应用程序创建策略集附件。
  15. 在新建导向中,展开 Web ServicesPolicy Set,然后单击 Client Side Policy Set Attachment

    图 6. 创建客户端策略集附件
    创建客户端策略集附件

  16. 单击 Next
  17. 单击 Add 以显示 End Point definition Dialog 窗口。选择以下内容:
    • 服务名称:EchoService
    • 端点:EchoServicePort
    • 操作名称:echoOperation
    • 策略集:WSSecurity default
    • 绑定:MyWSSecurityBinding
  18. 单击 OK

    图 7. 端点绑定定义
    端点绑定定义

现在,您需要为数字签名设置绑定配置。

  1. 对于数字签名出站消息安全配置,请选择 WSSecurity,然后选择 Configure
  2. 在 Outbound Message Security Configuration 窗口中:
    • 在 Key Information Type 字段中输入 STRREF
    • 在 Transform Algorithm 中字段中输入 http://www.w3.org/2001/10/xml-exc-c14n#
    • 单击 Key Store Settings 按钮。
  3. 在 Key Store Settings Dialog 窗口中:
    • 在 Keystore Path 字段中输入 ${USER_INSTALL_ROOT}\etc\ws-security\samples\dsig-sender.ks
    • 在 Keystore Password 字段中输入 client
    • 对于 Keystore Type,请选择 JKS
    • 在 Key Alias 字段中,输入 soaprequester
    • 在 Key Password 字段中,输入 client
  4. 单击 OK 完成操作。

    图 8. 客户机数字签名密钥存储库设置
    客户机数字签名密钥存储库设置

  5. 要为 XML 加密配置绑定配置,请单击 Binding Configuration Dialog 窗口顶部的 XML Encryption Configuration 选项卡。
  6. 在 Outbound Message Security Configuration 中,在 Key Information Type 字段中输入 KEYID
  7. 单击 Outbound Message Security Configuration 旁边的 Key Store Settings 按钮。在 Key Store Settings Dialog 窗口中:
    • 在 Keystore Path 字段中输入 ${USER_INSTALL_ROOT}\etc\ws-security\samples\enc-sender.jceks
    • 在 Keystore Password 字段中输入 storepass
    • 在 Keystore Type 下拉列表中选择 JCEKS
    • 在 Key Alias 字段中输入 Bob


    图 9. 客户机加密密钥存储库设置
    客户机加密密钥存储库设置

  8. 单击 OK 完成操作。
  9. 单击 Inbound Message Security Configuration 旁边的 Key Store Settings 按钮。 在 Key Store Settings Dialog 窗口中:
    • 在 Key Store Path 字段中输入 %install%\etc\ws-security\samples\enc-sender.jceks
    • 在 Keystore Password 字段中输入 storepass
    • 对于 Keystore Type,选择 JCEKS
    • 在 Key Alias 字段中输入 Alice
  10. 单击 OK 完成操作,然后再次单击 OK 以关闭 Binding Configuration Dialog 窗口。
  11. 单击 Finish 以关闭 Client Side Policy Set Attachment 窗口。

    图 10. 使用 Rational Application Developer 进行 Web 服务客户机绑定配置
    使用 Rational Application Developer 进行 Web 服务客户机绑定配置

  12. 完成 WS-Security 策略和绑定后,现在您可以发布或导出 Web 服务客户机应用程序,并将其安装在 WebSphere Application Server 上进行测试。
  13. 测试之前,请使用 WS-Security 缺省策略和绑定附件配置 EchoService,方法是在 WebSphere Application Server 控制台的左窗格中展开 Services,单击 Service providers,然后在右窗格中单击 EchoService

    图 11. 配置 EchoService WS Security 策略
    配置 EchoService WS Security 策略

  14. 在右窗格中选择所有条目。
  15. 单击 Attach 下拉菜单,并选择 WSSecurity default。选择所有条目。
  16. 单击 Assign Binding 下拉菜单,并选择 default
  17. 在屏幕的顶部,单击 Save。现在已使用 WS-Security 配置了 EchoService。您可以在 Name 字段中单击 EchoService,以确认如图12 中显示的 WS-Security 和绑定设置。

    图 12. 已应用 WS-Security 策略和绑定的 EchoService
    已应用 WS-Security 策略和绑定的 EchoService

  18. 通过将浏览器指向 http://localhost:9080/wssamplesei/demo 测试客户机应用程序。您可以使用安装 Web 服务客户机应用程序的应用服务器的主机名替换 URL 中的 localhost。如果在其他端口安装 Web 服务客户机应用程序,请确保使用安装 Web 服务客户机应用程序的端口。
  19. 现在,应用程序可以将安全消息发送到后端服务。如图 13 所示:
    • 选择要发送的消息类型。
    • 输入要发送的测试消息字符串。
    • 接受缺省的消息计数。
    • 在 Service URI 字段中,您可以选择 IP 地址、主机名和应用服务器的端口,以及应发送消息的端口。Send Message 按钮下面的窗口中将回显消息。

      图 13. 绑定配置
      绑定配置

结束语

在本文中,您使用 Rational Application Developer 导入了示例 EchoService 客户机 EAR 文件,并使用 WS-Security 启用它;在 WebSphere Application Server 上安装了示例 Web 服务客户机;安装并使用 WS-Security 配置了 EchoService;并使用浏览器输入了从 Web 服务 EchoService 客户机应用程序发送到 Web 服务 EchoService 服务的消息。消息被回显到 Web 服务客户机。

从客户机将消息发送到网络之前,WS-Security 使用了非对称密钥对消息进行数字签名和加密。在应用服务器收到消息时,WS-Security 使用了非对称密钥验证数字签名并对消息解密。然后将消息传递到 Web 服务进行处理。在此场景中,消息仅在响应中回显。在将消息发送到网络之前,WS-Security 使用了非对称密钥对响应消息进行数字签名和加密。WS-Security 在客户机接收响应,验证数字签名和解密消息。然后,消息在浏览器屏幕上回显。

在本系列文章的第 2 部分中,您将使用 WebSphere DataPower SOA Appliances 执行 WS-Security 数字签名和验证,以及消息处理的加密和解密部分。



参考资料

学习

获得产品和技术

讨论


关于作者

Joel Smith 一直从事各种操作系统、I/O 和通信子系统方面的工作。近年来,他一直在普及计算、应用服务器 Web 服务和 Web Services Security 领域从事应用程序中间件的开发。




对本文的评价










回页首


IBM、IBM 徽标、ibm.com、DB2、developerWorks、Lotus、Rational、Tivoli 和 WebSphere 是 International Business Machines Corporation 在美国和/或其他国家/地区的商标或注册商标。这些和其他带 IBM 商标的术语在本信息中第一次出现时使用适当的符号(® 或 ™)进行标记,并表示在本信息发布时由 IBM 拥有的美国注册商标或普通法商标。此类商标也可能是其他国家/地区的注册商标或普通法商标。查看最新的 IBM 商标列表。 Adobe、Adobe 徽标、PostScript 和 PostScript 徽标是 Adobe Systems Incorporated 在美国和/或其他国家/地区的注册商标。 Java 和所有基于 Java 的商标都是 Sun Microsystems, Inc. 在美国和/或其他国家/地区的商标。 其他公司、产品或服务的名称可能是其他公司的商标或服务标志。

IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款