配置策略集和绑定以便加密 UsernameToken

此示例显示如何配置消息级 WS-Security 策略集和绑定,以在 JAX-WS 请求中发送 Username 令牌并使用非对称加密对 Username 令牌进行加密。

开始之前

复制Username WSSecurity 缺省策略集并为其提供唯一名称。此示例说明如何修改缺省策略集的副本。有关更多信息,请阅读“复制缺省策略集和绑定设置”。

关于此任务

缺省情况下,Username WSSecurity 策略集签署请求和响应中的 WS-Addressing 头和主体,并对请求和响应中的主体和签名进行加密。但是,在此示例中,目标是仅加密从客户机到服务的请求中的 Username 令牌,而不加密从服务到客户机的响应中的任何部件。另外,也不会签署请求或响应的任何部件。因此,必须修改策略集以移除多个消息保护部件。您还必须配置客户机和服务器绑定。

首先,通过修改 Username WSSecurity 缺省策略集的副本来配置策略集。

过程

  1. 在管理控制台中,单击服务 > 策略集 > 应用程序策略集 > policy_set_name 在“策略集设置”面板中,您可以指定有关策略集的信息(如描述)。
  2. 移除以下消息保护部件:request:app_signparts、response:app_signparts 和 response:app_encparts。
    1. 单击应用程序策略集 > policy_set_name > WS-Security > 主策略 > 响应消息部件保护
    2. 单击加密部件框中的 app_encparts,然后单击删除按钮。
    3. 单击已签署部件框中的 app_signparts,然后单击删除按钮。
    4. 单击应用程序策略集 > policy_set_name > WS-Security > 主策略 > 请求消息部件保护
    5. 单击已签署部件框中的 app_signparts,然后单击删除按钮。
  3. 更新为 request:app_encparts 指定的保护部件。 缺省情况下,此消息保护部件对主体和签名元素进行加密,并且必须对其进行修改以加密 Username 令牌。
    1. 单击应用程序策略集 > policy_set_name > WS-Security > 主策略 > 请求消息部件保护 > 加密部件 - app_encparts > 编辑
    2. 在部件面板中的“元素”内删除现有元素,然后添加两个 XPath 表达式以对 Username 令牌进行加密。

      表达式 1:

      /*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' 
              and local-name()='Envelope']/*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' 
              and local-name()='Header']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
              and local-name()='Security']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
              and local-name()='UsernameToken']

      表达式 2:

      /*[namespace-uri()='http://www.w3.org/2003/05/soap-envelope' 
              and local-name()='Envelope']/*[namespace-uri()='http://www.w3.org/2003/05/soap-envelope' 
              and local-name()='Header']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
              and local-name()='Security']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
              and local-name()='UsernameToken']

下一步做什么

此过程的第二部分是配置客户机和服务器绑定。
避免故障 避免故障: 使用客户机绑定时,请小心选择您要编辑的保护令牌。令牌的名称从保护者的透视图来表示。例如在客户机上,即使其名称中含有 recipient 字样,AsymmetricBindingRecipientEncryptionToken0 也是生成器。用于确保您选择正确令牌的最佳方式是查看“保护令牌”表中的“使用情况”列。gotcha
  1. 配置客户机绑定,如下所示:
    1. 将策略连接到服务资源,并为包括 WSSecurity 策略的该资源创建新的绑定。
    2. 在新绑定中单击 WSSecurity 以显示主 WSSecurity 绑定面板。例如,单击企业应用程序 > WSSampleServiceSei > 服务客户机策略集和绑定 > binding_name > WS-Security
    3. 单击认证和保护
    4. 在“保护令牌”下,单击 AsymmetricBindingRecipientEncryptionToken0(非对称加密生成器)。
    5. 单击应用
    6. 单击回调处理程序
    7. 从“密钥库”菜单选择定制
    8. 单击定制密钥库配置
    9. 输入密钥库路径。例如:${USER_INSTALL_ROOT}/etc/ws-security/samples/enc-receiver.jceks
    10. 对于“类型”选择 JCEKS
    11. 在“密码”和“确认密码”字段中输入密码。 例如,storepass
    12. 输入键名称。例如,CN=Bob, O=IBM, C=US
    13. 输入键别名。例如,bob
    14. 单击确定
    15. 再次单击确定
    16. 再单击确定一次以返回到企业应用程序 > WSSampleServicesSei > 服务客户机策略集和绑定 > binding_name > WS-Security > 认证保护面板。
    17. AsymmetricBindingRecipientEncryptionToken0 的状态应显示为已配置
  2. 为客户机绑定修改加密部件的设置,如下所示:
    1. 在请求消息签名和加密保护下单击 request:app_encparts
    2. 输入名称。例如,MyEncPart
    3. 在密钥信息下单击新建
    4. 填写名称。例如,MyEncKeyInfo
    5. 单击确定
    6. 从“可用”框选择 MyEncKeyInfo(或为加密部件指定的名称),然后单击添加。 MyEncKeyInfo 显示在已指定框中。
    7. 单击确定以返回到企业应用程序 > WSSampleServicesSei > 服务客户机策略集和绑定 > binding_name > WS-Security > 认证保护面板。
    8. request:app_encparts 的状态应显示为已配置
  3. 在客户机绑定中配置 Username 令牌设置,如下所示:
    1. 单击认证令牌下的 request:myUserNameToken
    2. 单击应用
    3. 单击回调处理程序
    4. 指定用户名。例如,LDAPSunuser6
    5. 指定密码并确认密码。
    6. 单击确定
    7. 定制属性下,单击新建以添加用于启用现时标志和时间戳记的属性。
    8. 输入属性名 com.ibm.wsspi.wssecurity.token.username.addNonce 以启用现时标志和属性值 true
    9. 输入属性名 com.ibm.wsspi.wssecurity.token.username.addTimestamp 以启用时间戳记和属性值 true
    10. 再次单击确定
    11. request:myUserNameToken 的状态现在应显示为已配置
    12. 单击保存以保存您的客户机绑定。
  4. 配置服务器绑定,如下所示:
    1. 将策略连接到服务资源,并为包括 WSSecurity 策略的该资源创建新的绑定。
    2. 在新绑定中单击 WSSecurity 以显示主 WSSecurity 绑定面板。例如,单击企业应用程序 > WSSampleServiceSei > 服务客户机策略集和绑定 > binding_name > WS-Security
    3. 单击认证和保护
    4. 在“保护令牌”下,单击 AsymmetricBindingRecipientEncryptionToken0(非对称加密使用者)。
    5. 单击应用
    6. 单击回调处理程序
    7. 从“密钥库”菜单选择定制
    8. 单击定制密钥库配置
    9. 输入密钥库路径。例如:${USER_INSTALL_ROOT}/etc/ws-security/samples/enc-receiver.jceks
    10. 对于“类型”选择 JCEKS
    11. 在“密码”和“确认密码”字段中输入密码。 例如,storepass
    12. 输入键名称。例如,CN=Bob, O=IBM, C=US
    13. 输入键别名。例如,bob
    14. 在“密码”和“确认密码”字段中输入 keypass 的密码。
    15. 单击确定
    16. 再次单击确定
    17. 再单击确定一次以返回到企业应用程序 > WSSampleServicesSei > 服务客户机策略集和绑定 > binding_name > WS-Security > 认证保护面板。
    18. AsymmetricBindingRecipientEncryptionToken0 的状态应显示为已配置
  5. 为服务器绑定修改加密部件设置,如下所示:
    1. 在请求消息签名和加密保护下单击 request:app_encparts
    2. 输入名称。例如,MyEncPart
    3. 在密钥信息下单击新建
    4. 填写名称。例如,MyEncKeyInfo
    5. 单击确定
    6. 从“可用”框选择 MyEncKeyInfo(或为加密部件指定的名称),然后单击添加。 MyEncKeyInfo 显示在已指定框中。
    7. 单击确定以返回到企业应用程序 > WSSampleServicesSei > 服务客户机策略集和绑定 > binding_name > WS-Security > 认证保护面板。
    8. request:app_encparts 的状态应显示为已配置
  6. 在服务器绑定中配置 Username 令牌设置,如下所示:
    1. 单击认证令牌下的 request:myUserNameToken
    2. 单击应用
    3. 单击回调处理程序
    4. 单击确定
    5. 定制属性下,单击新建以添加用于验证现时标志和时间戳记的属性。
    6. 输入属性名 com.ibm.wsspi.wssecurity.token.username.verifyNonce 以验证现时标志和属性值 true
    7. 输入属性名 com.ibm.wsspi.wssecurity.token.username.verifyTimestamp 以验证时间戳记和属性值 true
    8. 再次单击确定
    9. request:myUserNameToken 的状态应显示为已配置
    10. 单击保存以保存服务器绑定。

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



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