可以通过为独立安全性令牌(轻量级第三方认证 (LTPA) 令牌或者用户名令牌)配置消息级别 WS-Security 策略集和绑定来保护 Web Service。
开始之前
此项任务假设您要配置的服务提供程序和客户机位于 JaxWSServicesSamples 应用程序中。请参阅有关访问样本的文档,以了解如何获取和安装此应用程序。在服务器上指定以下跟踪规范,以使您能够调试将来可能发生的任何配置问题。
*=info:com.ibm.wsspi.wssecurity.*=all:com.ibm.ws.webservices.wssecurity.*=all:
com.ibm.ws.wssecurity.*=all: com.ibm.xml.soapsec.*=all: com.ibm.ws.webservices.trace.*=all:
com.ibm.ws.websvcs.trace.*=all:com.ibm.ws.wssecurity.platform.audit.*=off:
如果使用了 LTPA 令牌,那么您必须在用于客户机和服务的应用程序服务器上启用应用程序安全性。
关于此任务
本主题描述如何为用户名令牌或者 LTPA 令牌配置 WS-Security 策略集和提供程序绑定。为了简单起见,此过程说明了如何从策略中移除时间戳记、数字签名和加密属性;但是,您可能希望最终配置中包含这些属性。要了解更多信息,请参阅有关使用特定于客户机和提供者应用程序的绑定来配置非对称 XML 数字签名或 XML 加密的策略集和绑定的文档。
在此任务中,缺省提供程序常规绑定用于提供者应用程序使用令牌。如果需要调用者配置,那么将为提供程序添加特定于应用程序的绑定。
过程
- 创建定制策略集。
- 在管理控制台中,单击服务 > 策略集 > 应用程序策略集。
- 单击新建。
- 指定 Name = OneTokenPolicy。
- 单击应用。
- 在策略下,单击添加 > WS-Security。
- 编辑定制策略集
- 移除数字签名、加密和时间戳记。
- 在管理控制台中,单击 WS-Security > 主策略。
- 取消选择“消息级别保护”。
- 单击应用。
- 添加 UsernameToken 或 LTPA 令牌。
- 在策略详细信息下,单击请求令牌策略。
- 选择添加令牌类型。
- 如果您想要使用 UsernameToken,请选择 UserName。如果您想要使用 LTPA 令牌,请选择 LTPA。
Token name=myToken。
- 单击确定。
- 配置客户机以使用 OneTokenPolicy 策略集。
- 在管理控制台中,单击应用程序 > 应用程序类型 > WebSphere 企业应用程序 > JaxWSServicesSamples > 服务客户机策略集和绑定。
- 选择 Web Service 客户机资源。
- 单击连接策略集。
- 选择 OneTokenPolicy。
- 为客户机创建定制绑定。
- 再次选择 Web Service 资源。
- 单击指定绑定。
- 单击新建特定于应用程序的绑定以创建特定于应用程序的绑定
- 指定绑定配置名称名称。name:
oneTokenClientBinding
- 单击添加 > WS-Security
- 如果主消息安全策略绑定面板未显示,请选择 WS-Security。
- 编辑客户机的定制绑定。
- 单击认证和保护。
- 编辑身份令牌生成器以发送身份用户名。
- 单击 request:myToken。
- 单击应用。
- 单击回调处理程序。User name=(yourUserid) Password=(yourPassword)
避免故障: 这是在提供程序的系统上的用户注册表中有效的用户标识/密码。如果您使用的是 LTPA 令牌,那么用户标识/密码必须在使用者注册表和提供程序注册表中都有效。
gotcha
- (可选)如果配置 UsernameToken,请添加下列 WS-Security 定制属性:
*com.ibm.wsspi.wssecurity.token.username.addNonce=true
*com.ibm.wsspi.wssecurity.token.username.addTimestamp=true
添加这些定制属性的原因是在 UsernameToken 使用者缺省常规绑定上指定了这些属性。如果在此处未指定这些属性,那么您将需要从缺省提供程序常规绑定中移除这些属性,或者为不包括这些属性的提供程序创建特定于应用程序的绑定。
- 单击确定。
- 单击保存
- 配置提供程序以使用 OneTokenPolicy 策略集。
- 在管理控制台中,单击应用程序 > 应用程序类型 > WebSphere 企业应用程序 > JaxWSServicesSamples > 服务提供者策略集和绑定
- 选择 Web Service 提供程序资源 (OneTokenPolicy)
- 单击连接策略集。
- 选择 OneTokenPolicy
注: 由于没有绑定连接至提供者应用程序,因此它将对令牌使用者使用缺省提供程序常规绑定。
- (可选)如果您想要为提供程序创建调用者配置,请为该提供程序创建定制绑定。
- 再次选择 Web Service 提供程序资源。
- 单击指定绑定
- 单击新建特定于应用程序的绑定以创建特定于应用程序的绑定
- 指定“绑定配置名称:oneTokenProvBinding”
- 单击添加 > WS-Security
- 如果未显示主消息安全策略绑定面板,请选择 WS-Security
- (可选)如果将创建调用者配置,请编辑提供程序的定制绑定。
- 单击调用者 > 新建。Name:
myCaller。
- 如果使用 UsernameToken,请输入以下内容:
- 调用者身份局部名:http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken
- 如果使用 LTPA 令牌,请输入以下内容:
- 调用者身份局部名:LTPAv2
- 调用者身份局部 URI:http://www.ibm.com/websphere/appserver/tokentype
- 单击确定。
- 单击保存以保存配置更改。
- 重新启动客户机提供程序。
- 停止客户机和提供程序
- 重新启动客户机和提供程序
- 测试服务。
- 将 Web 浏览器指向 JaxWSServicesSamples: http://localhost:9080/wssamplesei/demo
避免故障: 如果概要文件不在同一台机器上,或者端口不是 9080,请务必提供正确的主机名和端口。
gotcha
- 选择消息类型同步回传
- 请确保未选择使用 SOAP 1.2
- 输入消息,然后单击发送消息。样本应用程序应该回复 JAXWS==>Message。
结果
配置了 Web Service 应用程序 JaxWSServicesSamples 以生成和使用请求消息中的 UsernameToken 或 LTPA 令牌。