通过将数字签名添加至 Web Service,可以保护 Web Service 的完整性,从而防止信息受到未经授权的修改。
先决条件:创建或导入包含 Web Service 的项目。
使用 XML 数字签名既可以保护客户机也可以保护服务器。为了使客户机与服务器之间的传输接受 XML 数字签名,必须同时为客户机和服务器设置签名信息。要将 XML 数字签名添加至 Web Service:
- 切换至 J2EE 透视图。
- 单击。
- 从列表中选择 J2EE 并单击确定。
- 在“项目资源管理器”视图中展开 Web Service 选项卡。
- 展开服务选项卡。
- 右键单击服务并选择。
- 在“完整性消息部件”部分,缺省情况下添加了一个消息部件。可以通过修改方言或关键字来修改现有缺省值。还可以添加更多消息部件。 提供了可用消息部件设置的菜单。建议使用缺省设置,但是,如果希望获取有关消息部件设置的更多信息,则可参考消息部件设置
- 要接受其余缺省值并进入“令牌使用者”页面,单击下一步。
注: 提供的其他菜单使您可以选择想要的签名方法算法。签名方法是用来将绑定文件中规范化的 <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
- 从下拉列表中选择所使用的“令牌使用者”类型。
- 选择仅信任具有以下引用的证书。 如果选择了信任任何证书选项,则具有任何 XML 数字签名证书的客户机都将有权访问服务器。在此证书引用没有其他保护的情况下,服务器的安全性将仍然面临风险。
- 在“证书信息”组中填写必需的信息。
- 在密钥库路径字段中,浏览至数字签名密钥。
- 在密钥库存储护照字段中,输入与所选密钥相对应的密码。
- 要指定特定的 X509 证书,选中使用证书复选框。如果未选中此复选框,则将接受具有任何 X509 证书的客户机请求。
- 接受其余缺省值并选择确定以进入“服务器端响应生成者数字签名”窗口。
- 在“完整性消息部件”部分,缺省情况下添加了一个消息部件。可以通过修改方言或关键字来修改现有缺省值。还可以添加更多消息部件。
- 要接受其余缺省值并进入“令牌生成者”页面,单击下一步。
- 从下拉列表中选择所使用的“令牌生成者”类型。
- 在“密钥库信息”部分填写必需的信息。
- 在密钥库路径字段中,输入或浏览至数字签名密钥所在的路径。
- 在密钥库密码字段中,输入与所选择的签名密钥相对应的密码。
使用密钥复选框可以用来对 XML 数字签名添加其他安全性。如果选择了此选项,就可以为 XML 数字签名选择别名和密码,从而进一步保护 Web Service。要指定特定的 X509 证书,选中使用证书复选框。
- 单击完成。 现在,XML 数字签名会保护服务器。
- 为了让客户机访问服务器,必须使用下列方法之一来为客户机创建相应的 XML 数字签名:
- 要使用 XML 数字签名向导来创建相应的数字签名:
- 右键单击客户机并选择。
- 遵循上述步骤 5 到步骤 14,使用先前使用的客户机信息来保护服务器。
- 如果已经完成了为服务器设置所有类型的安全性,则可以使用“基于保护的 Web Service”向导来为客户机创建相应的数字签名:
- 右键单击客户机并选择。
- 验证从下拉菜单中选择了相应的服务器,然后单击下一步。
- 在“客户端请求生成者”中填写必需的信息:
- 在密钥库路径字段中,输入或浏览至数字签名密钥所在的路径。
- 在密钥库密码字段中,输入与所选择的签名密钥相对应的密码。
- 单击下一步。
- 在“客户端响应使用者”中填写必需的信息:
- 选择仅信任具有以下引用的证书。如果选择了信任任何证书选项,则具有任何 XML 数字签名证书的客户机都将有权访问服务器。
- 单击完成。
现在,XML 数字签名安全性将防止 Web Service 受到威胁完整性的攻击。可以通过切换至“资源”透视图并打开 Web Service .xmi 文件来查看 XML
源代码中的更改。要打开此文件,请单击,然后选择“资源”并单击确定。然后,在 yourProjectName/WebContent/WEB-INF/ 目录下面找到相应的 .xmi 文件。