本主题解释了如何在 SOAtest 和 Virtualize 中配置并应用 XML 签名器工具。出于安全目的,此工具对 XML 文档进行签名。
本章包含:
为了在 Web 服务事务期间安全地通过 Internet 发送数据,必须制定安全标准,以确保参与事务的不同用户能够相互识别。W3C 推荐的 XML 签名标准定义了一个允许对 XML 文档中的任何数据进行数字签名的过程。使用 XML 签名,Web 服务用户可以验证参与事务的其他人的身份,并可以确保自文档签名以来数据没有被更改。OASIS 利用了这个标准,因此可以在 SOAP 中使用它。
XML 签名器工具支持 W3C XML 签名标准,并允许对作为 Web 服务事务发送的数据进行数字签名。XML 签名器工具还允许您对 XML 文档的各个元素或整个文档本身签名。这个特性对于在多个合作伙伴或端点之间执行的 Web 服务事务特别有用。例如,购买汽车的事务可能通过 Web 服务进行。在这种情况下,买方必须签署文件的某些部分,信贷员可能必须签署文件的某些部分,卖方也必须签署文件的某些部分。
工具设置选项卡的左窗格显示以下选项:
在 General 选项卡中有以下选项:
密匙库 | 从 Key Store 下拉菜单中选择用于验证身份和签名 XML 数据的密钥存储库。此菜单中可用的密钥存储库依赖于您在测试或响应程序套件级别添加的密钥存储库。关于添加密匙库的更多信息,请查阅 Adding Global Key Stores in Virtualize。 |
---|---|
算法 | 指定用于定义证书密钥的唯一算法。 |
摘要方法 | 选择用于对数据签名的消息摘要算法。 |
规范形式 | 指定用于创建正在签名的信息的规范化形式的算法。 |
KeyInfo 形式 | KeyInfo 是签名中的一个可选元素;它包含验证签名所需的公钥信息。它只适用于在 POX 或 SAML 上执行封装签名(关闭 WS-Security 模式)。选择 KeyInfo 元素中应该包含哪些选项。可使用以下选项:
|
WS-Security 模式 | 支持根据 OASIS WS-Security 对 SOAP 消息进行签名。可以在 Emulation Options Settings中配置 OASIS 的标准版本。默认情况下,整个 SOAP 主体的内容将按照 Target Elements Settings中配置的那样自动签名。当禁用此模式时,将对目标元素执行带信封的签名。 从 Security header layout 下拉菜单中选择一个设置,以指定 向 the WS-Security header中添加项目时应该使用哪些布局规则。可使用以下设置:
启用 Sign security token using STR Dereference Transform (STRDT) 选项,通过使用 STR 解引用转换(STRDT)算法引用安全令牌引用(STR),以自动包括签名中的安全令牌。默认情况下,签名将引用 KeyInfo 元素下的签名中自动生成的 STR。如果应该引用不同的 STR(例如来自安全数据头的 STR),则在目标元素配置中包含该 STR。 |
执行 SAML 签名 | 启用此选项可以基于 OASIS SAML 令牌配置文件签署 SOAP 消息,或者对 SAML 断言执行封装的签名。 如果禁用 WS-Security 模式选项,则将在 Target Elements Settings下面选择的 SAML 断言上形成一个封装的 SAML 签名。使用密钥保持器确认方法的 SAML 断言通常应该有一个带信封的签名。 如果启用 WS-Security 模式选项,则 SOAP 信封将基于 OASIS SAML 令牌配置文件进行签名。必须选择正确的 Emulation 选项,否则签名将不会成功:
|
用户密匙库 | 启用此选项以引用请求者的密钥存储库。此选项仅适用于使用密钥保持器确认方法的 SAML 断言。当断言没有带信封的签名时,应该禁用此选项。对于 sender-vouches 确认来说,这是典型的方法。 如果禁用 WS-Security 模式,则可以选择使用密钥存储库将用户的公钥信息添加到断言的主题确认中,然后再对 SAML 断言执行封装签名。这适用于持有密钥的场景,其中断言持有用户的密钥,并由断言发布方签名。 如果启用 WS-Security 模式,则必须满足以下要求,以便 SOAP 消息上的签名能够成功:
可以将两个 XML 签名者链接在一起,以方便 密钥保持器的确认。配置第一个签名者,将您的公钥信息添加到断言的主题确认中,然后在关闭 WSS 模式的情况下对断言执行一个带信封的签名。接下来,第二个签到者可以使用 WSS 模式对包含基于 OASIS SAML 令牌概要文件的 SAML 断言的 SOAP 信封进行签名。 |
在 WS-Security 选项卡中有以下可用选项:
Form | 选择适当的表单以指定用于加密的密钥和证书。 |
---|---|
Actor | 输入一个值来指定 SOAP 参与者。 |
Add must Understand=1 | 指定接收方是否必须识别和验证消息的签名。如果启用此选项,如果接收方不知道如何处理签名数据头,则将发回 SOAP 错误。 |
Add Timestamp | 启用此选项可向消息添加时间戳。可使用以下设置:
|
启用 SOAP body/entire document 选项以对整个 SOAP 主体或整个 XML 文件进行签名。
若要指定 Xpath 并在 XML 文档中对特定元素进行签名:
配置模拟设置仅适用于 WS-Security Mode 启用的情况下,该选项位于 General Settings。
还可以通过从 Emulate 下拉菜单选择 Custom 手动配置模拟选项。将提供下列选择:
Input Type 选项卡只有当 XML 签名工具作为独立工具(而不是链接到另一个工具)添加时才可用。在 Input Type 选项卡中有以下可用选项:
如果要将该文件的路径作为当前配置文件的相对路径来保存,则选择 Persist as Relative Path 选项。启用该选项可以更容易地在多个机器之间共享工具。如果该选项未启用,则测试或响应程序将把该文件路径保存为绝对路径。
您 通过右键单击所需工具节点并从快捷菜单中选择 Add Output ,然后选择打开的对话框中的 XML Signer 将 XML 签名工具链接到消息传递工具。消息传递工具将使用转换后的 XML。
您可以将 XML 签名工具和 XML 加密工具链接到消息传递工具,以便在 SOAP 消息上同时执行加密和 XML 签名。有关 XML 加密工具的更多消息,请查阅 XML 加密。
您还可以通过右键单击所需的 XML Signer Tool 节点并从快捷菜单中选择 Add Output ,然后选择打开对话框中的 XML Signer ,将任何工具(比如编辑或浏览工具)链接到 XML Signer Tool 。
若要执行使用 XML 签名验证器、XML 签名器或 XML 加密工具或如果使用密匙库执行安全操作,那么您将需要下载并安装无限强度的 Java 加密扩展。有关更多详情,请查阅 JCE 前提条件。 |