将 XML 数字签名添加至 Web Service

通过将数字签名添加至 Web Service,可以保护 Web Service 的完整性,从而防止信息受到未经授权的修改。
先决条件:创建或导入包含 Web Service 的项目。
使用 XML 数字签名既可以保护客户机也可以保护服务器。为了使客户机与服务器之间的传输接受 XML 数字签名,必须同时为客户机和服务器设置签名信息。要将 XML 数字签名添加至 Web Service:
  1. 切换至 J2EE 透视图。
    1. 单击窗口 > 打开透视图 > 其他
    2. 从列表中选择 J2EE 并单击确定
  2. 在“项目资源管理器”视图中展开 Web Service 选项卡。
  3. 展开服务选项卡。
  4. 右键单击服务并选择保护 Web Service > 添加数字签名
  5. 在“完整性消息部件”部分,缺省情况下添加了一个消息部件。可以通过修改方言或关键字来修改现有缺省值。还可以添加更多消息部件。 提供了可用消息部件设置的菜单。建议使用缺省设置,但是,如果希望获取有关消息部件设置的更多信息,则可参考消息部件设置
  6. 要接受其余缺省值并进入“令牌使用者”页面,单击下一步
    注:

    提供的其他菜单使您可以选择想要的签名方法算法。签名方法是用来将绑定文件中规范化的 <SignedInfo> 元素转换为 <SignatureValue> 元素的算法。为使用者指定的算法(请求使用者或响应使用者配置)必须与为生成者指定的算法(请求生成者或响应生成者配置)匹配。

    WebSphere® Application Server 支持下列预先配置的算法:
    • http://www.w3.org/2000/09/xmldsig#rsa-sha1
    • http://www.w3.org/2000/09/xmldsig#hmac-sha1
    • http://www.w3.org/2000/09/xmldsig#dsa-sha1
  7. 从下拉列表中选择所使用的“令牌使用者”类型。
  8. 选择仅信任具有以下引用的证书 如果选择了信任任何证书选项,则具有任何 XML 数字签名证书的客户机都将有权访问服务器。在此证书引用没有其他保护的情况下,服务器的安全性将仍然面临风险。
  9. 在“证书信息”组中填写必需的信息。
    1. 密钥库路径字段中,浏览至数字签名密钥。
    2. 密钥库存储护照字段中,输入与所选密钥相对应的密码。
  10. 要指定特定的 X509 证书,选中使用证书复选框。如果未选中此复选框,则将接受具有任何 X509 证书的客户机请求。
  11. 接受其余缺省值并选择确定以进入“服务器端响应生成者数字签名”窗口。
  12. 在“完整性消息部件”部分,缺省情况下添加了一个消息部件。可以通过修改方言或关键字来修改现有缺省值。还可以添加更多消息部件。
  13. 要接受其余缺省值并进入“令牌生成者”页面,单击下一步
  14. 从下拉列表中选择所使用的“令牌生成者”类型。
  15. 在“密钥库信息”部分填写必需的信息。
    1. 密钥库路径字段中,输入或浏览至数字签名密钥所在的路径。
    2. 密钥库密码字段中,输入与所选择的签名密钥相对应的密码。
    使用密钥复选框可以用来对 XML 数字签名添加其他安全性。如果选择了此选项,就可以为 XML 数字签名选择别名和密码,从而进一步保护 Web Service。要指定特定的 X509 证书,选中使用证书复选框。
  16. 单击完成 现在,XML 数字签名会保护服务器。
  17. 为了让客户机访问服务器,必须使用下列方法之一来为客户机创建相应的 XML 数字签名:
    • 要使用 XML 数字签名向导来创建相应的数字签名:
      1. 右键单击客户机并选择保护 Web Service 客户机 > 添加 XML 数字签名
      2. 遵循上述步骤 5 到步骤 14,使用先前使用的客户机信息来保护服务器。
    • 如果已经完成了为服务器设置所有类型的安全性,则可以使用“基于保护的 Web Service”向导来为客户机创建相应的数字签名:
      1. 右键单击客户机并选择保护 Web Service 客户机 > 基于保护的 Web Service
      2. 验证从下拉菜单中选择了相应的服务器,然后单击下一步
      3. 在“客户端请求生成者”中填写必需的信息:
        1. 密钥库路径字段中,输入或浏览至数字签名密钥所在的路径。
        2. 密钥库密码字段中,输入与所选择的签名密钥相对应的密码。
      4. 单击下一步
      5. 在“客户端响应使用者”中填写必需的信息:
      6. 选择仅信任具有以下引用的证书。如果选择了信任任何证书选项,则具有任何 XML 数字签名证书的客户机都将有权访问服务器。
      7. 单击完成
现在,XML 数字签名安全性将防止 Web Service 受到威胁完整性的攻击。可以通过切换至“资源”透视图并打开 Web Service .xmi 文件来查看 XML 源代码中的更改。要打开此文件,请单击窗口 > 打开透视图 > 其他,然后选择“资源”并单击确定。然后,在 yourProjectName/WebContent/WEB-INF/ 目录下面找到相应的 .xmi 文件。
相关概念
Web Service 安全性的完整性
Web Service
相关任务
将 XML 加密添加至 Web Service
将独立安全性令牌添加至 Web Service

反馈