使用 WSSEncryptPart API 添加加密部件

可通过使用 Web Service 安全性 API (WSS API) 保护 SOAP 消息,而不必对配置使用策略集。要配置请求生成者(客户端)绑定的加密部件,请使用 WSSEncryptPart API 对加密部件中的元素列表执行定义和添加操作。WSSEncryptPart 是一个接口,属于 com.ibm.websphere.wssecurity.wssapi.encryption 包的一部分。

开始之前

可以使用 WSS API,或者通过管理控制台配置策略集来启用加密部件。要保护 SOAP 消息,请根据需要使用 WSS API 来完成下列加密任务:

  • 使用 WSSEncryption API 配置加密并选择加密方法。
  • 根据需要使用 WSSEncryptpart API 配置加密部件。

关于此任务

机密性设置要求将机密性约束应用于生成的消息。这些约束包括指定生成的消息中必须进行加密的消息部件,以及加密元素要连接至的消息部件。生成器端的加密信息用于对出局 SOAP 消息进行加密。为客户机配置请求生成者。

WSSEncryptPart API 指定与加密部件相关的信息并设置进行消息机密性保护而添加的加密部件。使用 WSSEncryptPart 设置变换方法并指定要应用变换方法的部件。只有在使用具有附件的 SOAP 时,才设置变换方法。通常,仅在执行设置变换方法等任务时才需要 WSSEncryptPart。

下表中显示的加密部件及相关信息用于保护消息的机密性。

表 1. 加密部件. 使用加密部件来保护消息。
加密部件 描述
part 将 WSSEncryptPart 对象添加为加密部件的目标。
keyword

使用关键字添加加密部件。可使用关键字来添加的缺省加密部件是 BODY_CONTENT 和 SIGNATURE。WebSphere® Application Server 支持使用下列关键字:

  • BODY_CONTENT
  • SIGNATURE
xpath 使用 XPath 表达式添加加密部件。
signature 将 WSSSignature 组件添加为加密部件的目标。

只有在 SOAP 消息包含签名元素时,WSSSignature 才适用。

header 将由 QName 指定的 SOAP 头添加为加密部件的目标。
securityToken 将 SecurityToken 对象添加为加密部件的目标。

为了获取加密部件信息,将执行特定的缺省行为。使用 WSSEncryptPart API 的最简单方法是使用缺省行为。WSSEncryptPart API提供缺省值,用于指定变换算法、将对象设置为目标以及指定加密部件,例如,SOAP 主体内容和签名。

缺省加密行为包括:

表 2. 加密部件决定. 缺省情况下,已设置若干加密消息部件。
加密部件决定 缺省行为
要使用关键字进行加密的 SOAP 消息部件

指定要用于加密部件的关键字。WebSphere Application Server 缺省情况下设置下列 SOAP 消息部件进行加密:

  • WSSEncryption.BODY_CONTENT
  • WSSEncryption.SIGNATURE
要添加的变换方法

WebSphere Application Server 缺省情况下不指定任何变换方法。只有在使用具有附件的 SOAP 时,才指定变换方法。

过程

  1. 要使用 WSSEncryptPart API 对 SOAP 消息部件进行加密,请首先确保安装了应用程序服务器。
  2. 使用 WSSEncryptPart 的 WSS API 过程遵循以下过程步骤:
    1. 使用 WSSFactory.getInstance() 获取 WSS API 实现实例。
    2. 根据 WSSFactory 实例创建 WSSGenerationContext 实例。
    3. 根据 WSSFactory 创建 SecurityToken 以配置加密。
    4. 根据 WSSFactory 实例使用 SecurityToken 创建 WSSEncryption。
    5. 根据 WSSFactory 创建 WSSEncryptPart。
    6. 添加要进行加密及要使用 WSSEncryptPart 中的变换进行应用的部件。 WebSphere Application Server 缺省情况下为 WSSEncryptPart 设置以下加密部件:BODY_CONTENT 和 SIGNATURE。添加其他加密部件后,缺省值不再有效。例如,如果调用 addEncryptPart(securityToken, false),那么仅对安全性令牌进行加密,而不对签名和主体内容进行加密。因此,如果要对安全性令牌、签名和主体内容进行加密,那么必须调用 addEncryptPart(securityToken, false)、addEncryptPart(WSSEncryption.SIGNATURE) 和 addEncryptPart(WSSEncrypyion.BODY_CONTENT)。
    7. 设置变换方法。
    8. 将 WSSEncryptPart 添加至 WSSEncryption。
    9. 将 WSSEncryption 添加至 WSSGenerationContext。
    10. 使用 SOAPMessageContext 调用 WSSGenerationContext.process()。

结果

如果在对消息部件进行加密时存在错误情况,那么将提供 WSSException。如果成功,此 API 将调用 WSSGenerationContext.process(),生成 WS-Security 头,然后使用 Web Service 安全性来保护 SOAP 消息。

下一步做什么

对请求生成者(客户端)绑定启用加密部件后,必须对响应使用者(客户端)绑定指定相同的部件进行解密。接下来,要配置解密功能和解密部件,请使用 WSS API 或者通过管理控制台来配置策略集。


指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_confwssencryptsecretkey
文件名:twbs_confwssencryptsecretkey.html