可以配置客户机端响应使用者(接收方)绑定的签名信息。签名信息用于签署和验证包括 SOAP 主体、时间戳记信息和用户名令牌等在内的消息部件。
开始之前
WebSphere® Application Server 将 XML 数字签名与现有算法(如 RSA、HMAC 和 SHA1)配合使用。XML 签名定义许多用于描述密钥信息的方法并启用新方法的定义。完成这些步骤前,请阅读有关 XML 数字签名的信息,以熟悉如何对数字内容的数字签名进行签署和验证。
通过将 XML 签名包括在 SOAP 消息中,可实现下列事项:消息完整性和认证。完整性是指数字签名,而机密性是指加密。完整性减少数据跨因特网发送时遭修改的风险。
必须先完成下列任务,然后才能验证签名和 SOAP 消息签署部件:
- 配置签名。
- 根据需要添加签署部件。
- 选择签名和签署部件方法。
关于此任务
使用 Web Services Security API (WSS API) 来配置绑定文件的响应使用者(客户机端)部分的签名验证信息。使用 WSSVerification 或 WSSVerifyPart API 来配置请求签名验证的客户机以及指定要进行验证的数字签署消息部件。
WebSphere Application Server 通过使用者端的签名信息验证是否签署了消息部件(例如主体、时间戳记和 Username 令牌)来验证收到的 SOAP 消息的完整性。
在客户机端,使用 WSS API,或者通过管理控制台配置策略集来指定要签署的消息部件以及配置由密钥信息引用对其进行引用的密钥信息。要验证签名和已签署部件,请使用 WSSVerification 和 WSSVerifyPart API。
WebSphere Application Server 提供绑定的缺省值。但是,管理员必须修改生产环境的缺省值。
在配置客户机用于响应使用者签署时,WSSVerification 和 WSSVerifyPart API 完成以下步骤以指定要验证的数字签署消息部件:
过程
- WSSVerification API 添加 SOAP 消息的必需验证部件。
该部件引用对数字签名的消息部件进行引用。为签名指定 <PartReference> 元素时,部件属性指的是 <Integrity> 元素的名称。
可以在 <SigningInfo> 元素中指定多个 <PartReference> 元素。为签名指定 <PartReference> 元素时,它拥有两个子元素:<DigestTransform> 和 <Transform>。
WSSVerification API 将下列部件配置为验证部件:
验证部分 |
描述 |
安全性令牌 |
对用于签名验证的安全性令牌添加信息。 |
SOAP 头及作为目标的 QName |
将由 QName 指定的 SOAP 头添加为验证部件。 |
WSS API 允许使用关键字或 XPath 表达式来指定要验证的消息部件。WebSphere Application
Server 支持使用下列关键字:关键字 |
引用 |
WSSVerification.ADDRESSING_HEADERS |
Web Service 寻址 (WS-Addressing) 头。 |
WSSVerification.BODY |
SOAP 消息主体。主体是消息的用户数据部分。 |
WSSVerification.TIMESTAMP |
创建和到期时间戳记信息。 |
- WSSVerification API 将必需头添加至 SOAP 消息。 由 QName 指定的头是必需的验证头。
- WSSVerification API 添加安全性令牌。 添加有关用于签名验证的安全性令牌的信息,例如:
- 安全性令牌的类。
- 回调处理程序。
- JAAS 登录配置的名称。
- WSSVerification API 添加签名方法算法。 签名方法是将绑定文件中已规范化的 <SignedInfo> 元素转换为 <SignatureValue> 元素时所使用的算法。对使用者指定的算法,即,响应使用者配置,必须与对请求生成者配置指定的算法匹配。WebSphere Application
Server 支持以下预配置的签名算法:
WebSphere Application
Server 不支持以下 DSA-SHA1 算法:http://www.w3.org/2000/09/xmldsig#dsa-sha1。
如果要保持与基本安全概要文件 (BSP) 一致,就不能使用 DSA-SHA1 算法。
- WSSVerification API 添加规范方法。 规范方法算法用于在将 <SignedInfo> 元素合并到数字签名操作中之前,对其进行规范化。您为生成者指定的规范算法必须匹配使用者的算法。
WebSphere Application Server 支持以下预配置的规范算法:
- WSSVerification API 验证是否需要签名确认。 OASIS Web Service 安全性 (WS-Security) V1.1 规范定义签名确认的用法。如果使用的是 WS-Security V1.0,那么此功能不可用。
将存储签名确认值,以便在返回接收消息后使用此值来验证签名确认。如果响应消息应该将签名确认连接至 SOAP 消息,那么调用此方法。
- WSSVerifyPart API 添加摘要方法。 对于签名信息中的每个部件引用,API 指定摘要方法算法和变换算法。
WebSphere Application Server 支持以下预先配置的摘要算法:
- WSSVerifyPart.SHA1:http://www.w3.org/2000/09/xmldsig#sha1
- WSSVerifyPart.SHA256:http://www.w3.org/2001/04/xmlenc#sha256
- WSSVerifyPart.SHA512:http://www.w3.org/2001/04/xmlenc#sha512
- WSSVerifyPart API 添加变换方法。 对于签名信息中的每个部件引用,API 指定摘要方法算法和变换算法。
WebSphere Application Server 支持以下预先配置的变换算法:
- WSSVerifyPart.TRANSFORM_EXC_C14N(缺省值):http://www.w3.org/2001/10/xml-exc-c14n#
- WSSVerifyPart.TRANSFORM_XPATH2_FILTER:http://www.w3.org/2002/06/xmldsig-filter2
- WSSVerifyPart.TRANSFORM_STRT10:http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
- WSSVerifyPart.TRANSFORM_ENVELOPED_SIGNATURE:http://www.w3.org/2000/09/xmldsig#enveloped-signature
对于 WSS API,WebSphere Application Server 不支持以下算法:
- http://www.w3.org/2002/07/decrypt#XML
- http://www.w3.org/TR/1999/REC-xpath-19991116
使用者的变换算法必须与生成者的变换算法匹配。
结果
您完成了相应的步骤来配置绑定文件的客户机端响应使用者部分的签名信息。
示例
以下示例说明 WSS API 样本代码如何验证签名及如何将 X.509 令牌类型作为安全性令牌来验证:
WSSFactory factory = WSSFactory.getInstance();
WSSConsumingContext concont = factory.newWSSConsumingContext();
// Generate the X.509 Callback Handler on the consumer side
X509ConsumeCallbackHandler callbackhandler = generateCallbackHandler();
WSSVerification ver = factory.newWSSVerification(X509Token.class,
callbackhandler);
concont.add(ver);
下一步做什么
如果尚未配置,请对生成者绑定指定类似的签名信息配置。
接下来,如果已经配置,请配置加密和解密信息或者配置使用者和生成者令牌。