JAX-WS 的回调处理程序设置
使用此页面来配置 JAX-WS 的回调处理程序设置,这些设置可确定如何从消息头获取安全性令牌。
编辑常规单元级别或服务器级别绑定时,可以配置回调处理程序设置。另外,还可以配置策略集所需的令牌和消息部件的特定于应用程序的绑定。

- 生成器
- 当用于加密生成器时,为生成器提供的别名用于检索用来加密消息的公用密钥。不需要密码。在回调处理程序上输入的与加密生成器关联的别名必须在不提供密码的情况下可访问。这意味着在密钥库中不能具有与该别名相关联的专用密钥信息。当用于签名生成器时,为生成器提供的别名用于检索用来对消息签名的专用密钥。需要密码。
避免故障: 由于用来为消息签名的别名需要密码,而用来对消息加密的别名要求没有密码,因此,您无法对签名生成器和加密生成器使用同一别名。gotcha
- 使用者
- 当用于关联的加密使用者时,为使用者提供的别名用于检索用来解密消息的专用密钥。需要密码。
当用于关联的签名使用者时,为使用者提供的别名严格用于检索用于解析一个公用密钥,该密钥用于解析在 SOAP 安全性头中作为 BinarySecurityToken 传入的 X.509 证书。不需要密码。
在回调处理程序上输入的与签名使用者关联的别名必须在不提供密码的情况下可访问。这意味着在密钥库中不能具有与该别名相关联的专用密钥信息。
当 X.509 证书未作为 BinarySecurityToken 在 SOAP 安全性头中传入时,SecurityTokenReference 将出现在将用于解析 X.509 证书的 SOAP 安全性头中签名元素中的 KeyInfo 元素中。可使用的方法包括密钥标识、X.509 发放者名称和发放者序列和指纹。当为与签名使用者相关联的 X.509 令牌使用者配置了密钥库/别名时,该使用者将接受使用以上三种方法中的任何一种来解析消息外的 X.509 证书。X.509 令牌使用者不会将在消息外部出现的证书动态解析为密钥库中的条。将使用的证书在配置时必须已知,并且已在 X.509 令牌使用者回调处理程序中进行硬编码。
要在消息外部解析 X.509 证书时,您可以在使用常规绑定时解析多个证书,但是在使用特定于应用程序的绑定时只能使用一个证书。使用特定于应用程序的绑定时,在消息外部只能解析一个证书,这是因为在特定于应用程序的绑定中,只有一个 X.509 令牌使用者可供使用。由于只有一个 X.509 令牌使用者可供使用,只有一个别名可供使用,因此,只能解析一个证书。例如,如果为 X.509 令牌使用者配置了证书 A,那么当客户机 A 发送证书 A 的密钥标识时,可检索该证书。但是,如果客户机 B 发送证书 B 的密钥标识,那么将无法检索该证书且将拒绝消息。
使用常规绑定时,可以创建多个 X.509 令牌使用者,每个令牌使用者都配置了不同的证书(密钥库/别名)。对于与您希望解析的证书相关联的所有 X.509 令牌使用者,将分配给绑定中您已签名的部件配置的签名密钥信息。
当 X.509 证书作为 BinarySecurityToken 在 SOAP 安全性头中发送时,如果在与签名使用者相关联的 X.509 令牌使用者上配置了密钥库/别名,那么会将该使用者上配置的证书与消息中传入的证书比较。如果它们不匹配,那么将拒绝该消息。此行为不同于 JAX-RPC。在 X.509 令牌使用者上配置的与别名相关联的证书不用于评估对入站证书的信任。只有信任库和证书库用于该用途。
如果您希望在 X.509 令牌使用者上配置的与签名使用者相关联的证书可用于 KeyInfo 解析,但不拒绝在不匹配的消息中传入的 X.509 证书,那么可将以下定制属性添加至 X.509 令牌使用者回调处理程序:com.ibm.wsspi.wssecurity.consumer.callbackHandlerKeystoreLimitsAccess=false
避免故障: 由于用来对消息解密的别名需要密码,而用来验证签名的别名要求没有密码,因此,您无法对签名使用者和加密使用者使用同一别名。gotcha
- 检查密钥
避免故障: 您可以使用 keytool 应用程序来检查要为 X.509 令牌使用者或生成者回调处理程序配置的别名是否是正确的类型。
keytool 应用程序随应用程序服务器一起安装在 (wasHome)/bin 目录中。如果在不指定参数的情况下运行“keytool”,那么将显示语法。keytool 应用程序的示例调用如下:keytool -list -v -keystore myKeystore.p12 -storepass myPassword -storetype PKCS12
使用 keytool 应用程序来显示密钥库的内容,然后核实别名条目类型是否与其预期用途一致。如果要配置需要专用密钥的条目,那么条目类型必须为 keyEntry。如果要配置需要公用密钥的条目,那么条目类型必须为 trustedCertEntry。
gotcha
- 单击 。绑定面板指示设置为缺省绑定的绑定,例如,提供程序样本绑定。
- 要编辑此缺省绑定,请单击 。
- 单击在第一步中确定的缺省绑定的名称。例如,提供程序样本。
- 单击“策略”表中的 WS-Security 策略。
- 单击“主消息安全策略绑定”部分中的认证与保护链接。
- 单击“保护令牌”部分或“认证令牌”部分中的 name_of_token 链接。
- 单击回调处理程序链接。
- 单击 。
- 选择包含 Web Service 的应用程序。该应用程序必须包含服务提供程序或服务客户机。
- 单击“Web Service 属性”部分中的服务提供程序策略集和绑定链接或服务客户机策略集和绑定。
- 选择绑定。先前必须已连接策略集并且已指定特定于应用程序的绑定。
- 单击“策略”表中的 WS-Security 策略。
- 单击“主消息安全策略绑定”部分中的认证与保护链接。
- 单击“保护令牌”部分或“认证令牌”部分中的 name_of_token 链接。
- 单击回调处理程序链接。
此管理控制台页面仅适用于 Java™ API for XML Web Services (JAX-WS) 应用程序。
根据所配置令牌的不同,“回调处理程序”显示的字段不同。根据您是在配置生成器或使用者令牌进行保护,还是配置入站或出站令牌进行认证,此面板上的各个部分和字段将显示此主题中解释的部分或所有字段,这一点在每个字段的描述中作了说明。
类名
“类名”部分中的各个字段适用于所有类型的令牌配置。
选择要用于回调处理程序的类名。选择使用内置缺省值选项执行一般操作。只有在使用定制令牌类型时,才使用使用定制值选项。
对于 Kerberos 定制令牌类型,请将类名 com.ibm.websphere.wssecurity.callbackhandler.KRBTokenGenerateCallbackHandler 用于令牌生成器配置。将 com.ibm.websphere.wssecurity.callbackhandler.KRBTokenConsumeCallbackHandler 用于令牌使用者配置。
使用内置缺省值
指定对类名使用缺省值。选中此单选按钮时,对类名使用缺省值(如字段中所示)。此名称基于令牌类型以及回调处理程序是用于令牌生成器还是用于令牌使用者。此选项与使用定制值选项互斥。
使用定制
指定对类名使用定制值。选中此单选按钮并在字段中输入名称以使用定制类名。
此输入字段未提供任何缺省值。请使用下表中的信息确定此值:
令牌类型 | 使用者或生成器 | 回调处理程序类名 |
---|---|---|
UsernameToken | 使用者 | com.ibm.websphere.wssecurity.callbackhandler.UNTConsumeCallbackHandler |
UsernameToken | 生成器 | com.ibm.websphere.wssecurity.callbackhandler.UNTGenerateCallbackHandler |
X509Token | 使用者 | com.ibm.websphere.wssecurity.callbackhandler.X509ConsumeCallbackHandler |
X509Token | 生成器 | com.ibm.websphere.wssecurity.callbackhandler.X509GenerateCallbackHandler |
LTPAToken/LTPAPropagationToken | 使用者 | com.ibm.websphere.wssecurity.callbackhandler.LTPAConsumeCallbackHandler |
LTPAToken/LTPAPropagationToken | 生成器 | com.ibm.websphere.wssecurity.callbackhandler.LTPAGenerateCallbackHandler |
SecureConversationToken | 使用者 | com.ibm.ws.wssecurity.impl.auth.callback.SCTConsumeCallbackHandler |
SecureConversationToken | 生成器 | com.ibm.ws.wssecurity.impl.auth.callback.WSTrustCallbackHandler |
此按钮与使用内置缺省值选项互斥。
证书(生成器)
如果您配置的是保护令牌,那么“证书”部分中的各个字段可用。对于生成器令牌,可以单击此选项以从列表中选择的证书库,或者单击新建按钮以添加证书库。
证书(使用者)
如果您配置的是保护令牌,那么“证书”部分中的各个字段可用。对于使用者令牌,您可以使用“信任任何证书”或“证书库”选项来配置证书库。
证书 - 信任任何证书(使用者)
此选项仅适用于令牌使用者。此选项指示系统将信任所有证书,并且不定义特定证书库。此选项与证书库选项互斥。
证书 - 证书库(使用者)
此选项仅适用于令牌使用者。使用此选项指定包含中间证书的证书库集合,该证书库集合可以包含证书撤销列表 (CRL)。选择此选项以信任在输入字段中指定的证书库。此选项与信任任何证书选项互斥。选择证书库选项时,新建按钮处于启用状态,这样您就可以配置新证书库和信任锚库。
您可以将证书库字段的值设置为缺省值,无。但是,信任锚库值必须设置为特定值。没有缺省值。如果未选中“信任任何证书”选项,那么信任锚是必需的。
基本认证
如果配置的认证令牌不是 LTPA 传播令牌,那么“基本认证”部分中的各个字段可用。
对于 Kerberos 定制令牌类型,必须完成 Kerberos 登录的“基本认证”部分。
用户名
指定要进行认证的用户名。
密码
指定要进行认证的密码。在此输入字段中输入要进行认证的密码。
确认密码
指定要确认的密码。
密钥库
在运行时确定不需要密钥库字段时,这些字段不可用。
在“密钥库名称”列表中,可以单击定制以定义定制密钥库、单击其中一个外部定义的密钥库名称或者单击无(如果不需要任何密钥库)。
密钥库 - 名称
指定要使用的密钥库名称。
- 无
- 指定以不使用密钥库。
- 定制
- 指定以使用用户定义的密钥库。单击定制密钥库配置链接以配置定制密钥库和密钥设置。
密钥
指定要从所配置密钥库检索的密钥的属性。在运行时确定不需要“密钥”部分中的某些字段时,这些字段不可用。
当对密钥库选择集中管理的密钥库时,“密钥”部分中的字段可用。
名称
指定要使用的密钥的名称。系统将使用所选的集中管理密钥库中提供的密钥来填充该列表。选择要使用的密钥名称或“(无)”(如果不使用密钥)。
别名
显示所选密钥名称的别名
密码
指定要使用的密钥的密码。此字段将仅在运行时确定需要时才可用。
不能对非对称加密生成器或非对称签名使用者的公用密钥设置密码。请参阅文章开头的“避免问题”部分。
确认密码
指定要使用的密钥的确认密码。此字段将仅在运行时确定需要时才可用。
不要对非对称出站加密或入站签名的公用密钥提供密钥确认密码。
密钥库 - 定制密钥库配置
指定一个链接以创建定制密钥库。单击此链接以打开面板,可以在该面板中配置定制密钥库。
密钥库密码
指定用于访问密钥库文件的密码。
密钥库路径
指定密钥库文件的位置。
因为此变量展开为机器上的产品路径,所以应在路径名中使用 ${USER_INSTALL_ROOT}。要更改此变量使用的路径,请单击环境 > WebSphere 变量并单击 USER_INSTALL_ROOT。
密钥库类型
指定密钥库文件格式的类型
- JKS
- 如果密钥库使用 Java 密钥库 (JKS) 格式,请使用此选项。
- JCEKS
- 如果在软件开发包 (SDK)中配置了 Java 密码术扩展,请使用此选项。缺省 IBM® JCE 是在应用程序服务器中配置的。此选项通过使用三重 DES 加密为存储的专用密钥提供更强的保护。
JCERACFKS
如果证书存储在 SAF 密钥环中,请使用 JCERACFKS(仅限于 z/OS®)。
- PKCS12KS (PKCS12)
- 如果密钥库文件使用 PKCS#12 文件格式,请使用此选项。
定制属性
“定制属性”部分中的各个字段适用于所有类型的令牌配置。
可以使用“名称/值”对的形式添加回调处理程序所需的定制属性。
要在使用 JAX-WS 编程模型时实现签署者证书加密,请在加密令牌生成器的回调处理程序中添加值为 True 的定制属性 com.ibm.wsspi.wssecurity.token.cert.useRequestorCert。此实现过程使用 SOAP 请求的签署者的证书对 SOAP 响应进行加密。此定制属性由响应生成器使用。
对于基于 Kerberos 令牌概要文件 V1.1 的 OASIS Web Service 安全性规范的 Kerberos 定制令牌,请为令牌生成指定以下属性:com.ibm.wsspi.wssecurity.krbtoken.clientRealm。这将指定与客户机相关联的 Kerberos 域的名称并允许 Kerberos 客户机域启动 Kerberos 登录。如果未指定,那么使用缺省 Kerberos 域名。对于单个 Kerberos 领域环境,此属性是可选的。
Kerberos 定制属性 com.ibm.wsspi.wssecurity.krbtoken.loginPrompt 的值为 True 时,允许 Kerberos 登录。 缺省值为 false。此属性是可选的。
属性名(生成器) | 属性值 |
---|---|
com.ibm.wsspi.wssecurity.token.username.addNonce | true |
com.ibm.wsspi.wssecurity.token.username.addTimestamp | true |
属性名(使用者) | 属性值 |
---|---|
com.ibm.wsspi.wssecurity.token.username.verifyNonce | true |
com.ibm.wsspi.wssecurity.token.username.verifyTimestamp | true |
名称
指定要使用的定制属性的名称。
此列最初不显示定制属性。单击定制属性的下列其中一个操作:
按钮 | 执行的操作 |
---|---|
新建 | 创建新的定制属性条目。要添加定制属性,请输入名称和值。 |
删除 | 除去所选定制属性。 |
值
指定要使用的定制属性的值。使用值输入字段可以输入或删除定制属性的值。