配置策略集和绑定以便加密 UsernameToken
此示例显示如何配置消息级 WS-Security 策略集和绑定,以在 JAX-WS 请求中发送 Username 令牌并使用非对称加密对 Username 令牌进行加密。
开始之前
关于此任务
缺省情况下,Username WSSecurity 策略集签署请求和响应中的 WS-Addressing 头和主体,并对请求和响应中的主体和签名进行加密。但是,在此示例中,目标是仅加密从客户机到服务的请求中的 Username 令牌,而不加密从服务到客户机的响应中的任何部件。另外,也不会签署请求或响应的任何部件。因此,必须修改策略集以移除多个消息保护部件。您还必须配置客户机和服务器绑定。
首先,通过修改 Username WSSecurity 缺省策略集的副本来配置策略集。
过程
下一步做什么
此过程的第二部分是配置客户机和服务器绑定。
避免故障: 使用客户机绑定时,请小心选择您要编辑的保护令牌。令牌的名称从保护者的透视图来表示。例如在客户机上,即使其名称中含有 recipient 字样,AsymmetricBindingRecipientEncryptionToken0 也是生成器。用于确保您选择正确令牌的最佳方式是查看“保护令牌”表中的“使用情况”列。gotcha

- 配置客户机绑定,如下所示:
- 将策略连接到服务资源,并为包括 WSSecurity 策略的该资源创建新的绑定。
- 在新绑定中单击 WSSecurity 以显示主 WSSecurity 绑定面板。例如,单击企业应用程序 > WSSampleServiceSei > 服务客户机策略集和绑定 > binding_name > WS-Security。
- 单击认证和保护。
- 在“保护令牌”下,单击 AsymmetricBindingRecipientEncryptionToken0(非对称加密生成器)。
- 单击应用。
- 单击回调处理程序。
- 从“密钥库”菜单选择定制。
- 单击定制密钥库配置。
- 输入密钥库路径。例如:${USER_INSTALL_ROOT}/etc/ws-security/samples/enc-receiver.jceks。
- 对于“类型”选择 JCEKS。
- 在“密码”和“确认密码”字段中输入密码。 例如,storepass。
- 输入键名称。例如,CN=Bob, O=IBM, C=US。
- 输入键别名。例如,bob。
- 单击确定。
- 再次单击确定。
- 再单击确定一次以返回到企业应用程序 > WSSampleServicesSei > 服务客户机策略集和绑定 > binding_name > WS-Security > 认证保护面板。
- AsymmetricBindingRecipientEncryptionToken0 的状态应显示为已配置。
- 为客户机绑定修改加密部件的设置,如下所示:
- 在请求消息签名和加密保护下单击 request:app_encparts。
- 输入名称。例如,MyEncPart。
- 在密钥信息下单击新建。
- 填写名称。例如,MyEncKeyInfo。
- 单击确定。
- 从“可用”框选择 MyEncKeyInfo(或为加密部件指定的名称),然后单击添加。 MyEncKeyInfo 显示在已指定框中。
- 单击确定以返回到企业应用程序 > WSSampleServicesSei > 服务客户机策略集和绑定 > binding_name > WS-Security > 认证保护面板。
- request:app_encparts 的状态应显示为已配置。
- 在客户机绑定中配置 Username 令牌设置,如下所示:
- 单击认证令牌下的 request:myUserNameToken。
- 单击应用。
- 单击回调处理程序。
- 指定用户名。例如,LDAPSunuser6。
- 指定密码并确认密码。
- 单击确定。
- 在定制属性下,单击新建以添加用于启用现时标志和时间戳记的属性。
- 输入属性名 com.ibm.wsspi.wssecurity.token.username.addNonce 以启用现时标志和属性值 true。
- 输入属性名 com.ibm.wsspi.wssecurity.token.username.addTimestamp 以启用时间戳记和属性值 true。
- 再次单击确定。
- request:myUserNameToken 的状态现在应显示为已配置。
- 单击保存以保存您的客户机绑定。
- 配置服务器绑定,如下所示:
- 将策略连接到服务资源,并为包括 WSSecurity 策略的该资源创建新的绑定。
- 在新绑定中单击 WSSecurity 以显示主 WSSecurity 绑定面板。例如,单击企业应用程序 > WSSampleServiceSei > 服务客户机策略集和绑定 > binding_name > WS-Security。
- 单击认证和保护。
- 在“保护令牌”下,单击 AsymmetricBindingRecipientEncryptionToken0(非对称加密使用者)。
- 单击应用。
- 单击回调处理程序。
- 从“密钥库”菜单选择定制。
- 单击定制密钥库配置。
- 输入密钥库路径。例如:${USER_INSTALL_ROOT}/etc/ws-security/samples/enc-receiver.jceks。
- 对于“类型”选择 JCEKS。
- 在“密码”和“确认密码”字段中输入密码。 例如,storepass。
- 输入键名称。例如,CN=Bob, O=IBM, C=US。
- 输入键别名。例如,bob。
- 在“密码”和“确认密码”字段中输入 keypass 的密码。
- 单击确定。
- 再次单击确定。
- 再单击确定一次以返回到企业应用程序 > WSSampleServicesSei > 服务客户机策略集和绑定 > binding_name > WS-Security > 认证保护面板。
- AsymmetricBindingRecipientEncryptionToken0 的状态应显示为已配置。
- 为服务器绑定修改加密部件设置,如下所示:
- 在请求消息签名和加密保护下单击 request:app_encparts。
- 输入名称。例如,MyEncPart。
- 在密钥信息下单击新建。
- 填写名称。例如,MyEncKeyInfo。
- 单击确定。
- 从“可用”框选择 MyEncKeyInfo(或为加密部件指定的名称),然后单击添加。 MyEncKeyInfo 显示在已指定框中。
- 单击确定以返回到企业应用程序 > WSSampleServicesSei > 服务客户机策略集和绑定 > binding_name > WS-Security > 认证保护面板。
- request:app_encparts 的状态应显示为已配置。
- 在服务器绑定中配置 Username 令牌设置,如下所示:
- 单击认证令牌下的 request:myUserNameToken。
- 单击应用。
- 单击回调处理程序。
- 单击确定。
- 在定制属性下,单击新建以添加用于验证现时标志和时间戳记的属性。
- 输入属性名 com.ibm.wsspi.wssecurity.token.username.verifyNonce 以验证现时标志和属性值 true。
- 输入属性名 com.ibm.wsspi.wssecurity.token.username.verifyTimestamp 以验证时间戳记和属性值 true。
- 再次单击确定。
- request:myUserNameToken 的状态应显示为已配置。
- 单击保存以保存服务器绑定。