dev2dev 首页 > 资源中心 > 技术文章
用于实现Web Services安全性的HTTPS
--详细说明了用于成功部署具有传输层安全的Web Services的服务器和客户端配置
<!-- 提取技术文章 -->
既然IT经理和黑客们十分清楚Web Services中固有的安全性风险,那么Web Services开发人员了解如何实现安全性架构就显得日益重要。然而,因为很多媒体关注于对新兴消息层安全技术,比如WS-Security、XML签名、XML加密和安全性断言标记语言(Security Assertion Markup Language ,SAML)等的高层讨论,从而使掌握实际的安全性基础知识和为解决要求您处理的任意类型安全性问题设计一个步进式的计划变得困难。
因此,让我们看一看实现和部署使用HTTPS的Web Services的具体细节。HTTPS是对HTTP的扩展,通过基于安全套接字层(Secure Sockets Layer ,SSL)对HTTP进行分层来使用传输层的安全性。尽管目前传输层安全性的主题并不如消息层安全性主题那么引人关注,但它确实具有几个重要的优点。它是一项成熟的技术,所以其相关的标准和工具都已开发出来。它还为熟悉传输层安全性,但是不熟悉Web Services的工程师提供一条极佳的过渡路径。
为了尽可能具体而实用地进行讨论,我将通过一个HTTPS实现的例子进行说明。我使用的例子是一个服务,它使用Java进行编写,部署时使用Apache Axis 1.0(Apache的第二代SOAP实现)和Apache Jakarta Tomcat 4.1.12作为servlet容器和HTTP服务器。这些工具均可免费用于商业或非商业用途。我将讲述一些特定于这些工具和技术的必需细节,但是这里讨论的原则同时也适用于其他Web Services技术,比如Microsoft的.Net。
HTTPS提供加密,可以确保私有性和消息的完整性。HTTPS还通过使用证书进行身份验证,可以应用于服务器端、客户端或同时应用于这二者。现今,具有服务器端证书的HTTPS是Web上最常见的配置。在这种配置中,客户端可以对服务器进行身份验证,但是服务器不能对客户端进行身份验证。然而,HTTPS还可以与基本的或摘要式身份验证联合使用,后者为客户端提供的身份验证形式功能更弱。部署使用HTTPS的Web Services时,要尽可能早地确定对身份验证的要求,这一点很重要。这些要求将决定您在何处使用证书,以及您想要在客户端使用何种辅助的身份验证机制(如果需要的话)。
为了举例说明如何基于HTTPS部署SOAP服务,我将使用金融机构作为例子,因为它对于为与其业务合作伙伴进行业务到业务的集成提供Web Services很有兴趣。在转而讨论安全性问题之前,让我们简短地看一看与示例安全性实现相关的Web Services部分。
自动化WSDL 假定这家金融机构想要公开简单方法getAccountBalance(accountNumber),该方法使用一个帐户号码作为输入,然后返回当前的帐户余额。Java方法签名可能像下面这样:
public float getAccountBalance(
int accountNumber) throws
InvalidAccountException {
// Perform database query and
// return result.
...
}
该方法签名为Java应用程序定义了接口,但是特定于语言的接口对于能够相互操作的Web Services来说是不够的。标准的方法是创建一份Web Services描述语言(Web Services Description Language,WSDL)文档。接着,这份WSDL文档便成为利用服务的业务合作伙伴的已公布接口。首次引入WSDL时,它们是手写的,而且这仍然是一个可行的选择。然而,更新的方法是使用能够自动生成WSDL的工具。Axis提供此种机制,Microsoft的.Net也是如此。要部署该实现,您需要配置组件(在这个例子中,是指Tomcat、Axis和实现Java类)以使其共同工作。Axis文档说明了所有细节,但是主要的步骤是把axis目录从您的Axis安装复制到您的Tomcat安装的webapps子目录。重新启动Tomcat时,它将读取存储为webapps/axis/WEB-INF/web.xml的Web Application描述,然后使用这些信息查找AxisServlet。
您可以以多种方式部署服务到Axis,但是最简单的方法是把您的Java源代码作为一个JWS文件复制到webapps/axis目录。通过使用JWS扩展名,您指示Axis这个文件是一个Java Web Services,并允许使用一个随需应变的编译过程(类似于用于JSP文件的编译过程)来处理这个文件。
对于这个特定的例子来说,您需要把一个名为Account.jws的文件复制到webapps/axis目录中。然后,您让浏览器指向http://localhost:8080/axis/Account.jws?wsdl就可以看到动态生成的WSDL文档。
在下一期中,我们将考虑针对基于HTTPS部署这个Web Services的服务器端配置。
关于作者
Jim Clune是ParaSoft 的开发经理,负责管理用于C、C++和Web开发的错误预防和错误检测工具的开发。1997年,他以质量咨询员的身份在ParaSoft开始了其职业生涯,很快被提升为软件工程师,亲自参与了ParaSoft 多项产品的开发工作。他拥有Harvey Mudd College的工程理科学士学位和Azusa Pacific University的应用计算机科学与技术(侧重于技术性的程序设计)硕士学位。Clune十分精通Windows、UNIX(包括 Linux)和Mac系统。他专攻C/C++、Visual Basic AML和PLC阶梯逻辑语言。
原文出处
http://www.fawcette.com/javapro/2003_08/online/webservices_jclune_08_25_03/
分享到:
相关推荐
在Web服务的安全性规范分析与研究中,我们需要关注多个关键领域,以确保数据的保护、系统的稳定性和用户隐私。 1. **身份验证与授权**:这是Web服务安全的基础。通过HTTP基本认证、 Digest认证或更高级的WS-...
HTTPS是一种安全的通信协议,它结合了HTTP协议与SSL/TLS协议,能为数据传输提供加密和身份验证,确保数据在传输过程中的安全性和完整性。 首先,我们需要理解“Java端写的https webservices”。在Java中,可以使用...
为了实现Web Services的安全性,WS-Security(Web Services Security)标准应运而生。它定义了如何在SOAP消息中添加安全信息,如数字签名、加密等,以确保消息的完整性和机密性。Java平台通过JAX-WS和 JAXB(Java ...
5. **WS-Security**:这是一个重要的补充规范,用于保证Web Services的安全性,包括身份验证、授权和数据完整性。它提供了对SOAP消息进行加密和签名的能力,防止未经授权的访问和篡改。 6. **WS-ReliableMessaging*...
4. Web 服务的安全性解决方法:本文中介绍了一种使用 SOAP 头信息来实现 Web Service 的安全性解决方法。这项方法可以帮助开发者在使用 Web Service 时,确保数据的安全性和可靠性。 详细解释 在本文中,我们使用 ...
未来的 Web Services 可能更加注重性能优化、安全性增强以及与其他新兴技术(如 IoT、云计算)的集成。同时,随着前端框架(如 React、Vue.js)的普及,实现无刷新数据交换将变得更加简单高效。
【C#实现的WebServices源码】是一种基于.NET框架的编程技术,用于构建分布式应用程序,使得不同系统间可以通过网络进行通信和数据交换。C#语言是Microsoft开发的一种面向对象的编程语言,它与WebServices的结合,...
- 安全性:Web Services可以通过HTTPS、认证、权限控制等方式确保安全性。 - 缓存:可以利用缓存机制提高服务性能,减少不必要的网络通信。 - 服务版本控制:在更新服务时,考虑如何处理向后兼容性和版本控制。 ...
【标题】"CXF实现WebServices_4"深入解析 在IT行业中,Web Services是一种用于构建分布式系统的重要技术,它允许不同的应用程序通过网络进行通信。Apache CXF是Java平台上一个强大的开源框架,专门用于实现和消费...
总的来说,"webservices-jar包"系列是Java开发者处理Web服务时的重要资源,它们提供了全面的支持,涵盖了从设计、实现到测试的整个Web服务生命周期。了解并熟练使用这些库,可以极大地提升开发效率,保证Web服务的...
此外,为了保证数据的安全性、事务管理和工作流支持,还可能涉及到其他如SSL/TLS(安全套接字层/传输层安全)、WS-Security(Web服务安全)等协议。 在农民工信息管理系统中,作者利用PHP实现的Web Services数据...
这些协议用于确保Web服务的安全性、可靠性和事务处理能力。JAX-WS通常只提供基础的Web服务功能,而额外的协议和标准则需要通过扩展来实现。 3. `webservices-extra-api.jar`: 这个文件很可能是JAX-WS扩展API的...
### Web服务安全性的重要性 Web服务作为现代企业架构的核心组成部分,面临着各种安全威胁,包括但不限于数据泄露、恶意攻击和未授权访问。因此,OWSM提供的安全机制对于维护业务连续性和数据隐私至关重要。 ### ...
- 包括WS-Security、WS-ReliableMessaging等,用于增强Web Services的安全性、可靠性和事务处理能力。 7. **Web Services开发流程**: - 定义服务接口(WSDL) - 实现服务逻辑 - 发布服务到UDDI或服务注册中心 ...
虽然目前的安全性和路由等特性尚不完善,随着SOAP和其他相关技术的发展,这些问题将逐步得到解决。随着互联网的普及和带宽的增加,Web Services对于促进不同平台间的协作至关重要。 Web Services的主要应用场景包括...
SOAP支持错误处理、事务管理和安全性,通过HTTP、SMTP等传输协议进行消息交换。 5. 使用Eclipse和Axis2开发Web服务: Eclipse是一款流行的Java集成开发环境,其插件Axis2提供了方便的Web服务开发工具。首先,你...
5. **消息级安全**:WS-Security标准提供了一种框架,用于在Web Services的消息层添加安全性,包括身份验证、加密、完整性保护等。它还支持添加时间戳、非重复使用保护和消息排序等额外的安全特性。 6. **事务处理*...
此外,还讨论了影响Web Services安全性性能的因素,并提出了相应的改进措施。 #### 七、结论 本文的研究对于推动Web Services的实际应用具有重要意义。通过对Web Services的性能和安全性进行全面研究,不仅为企业...
此外,还有消息服务、命名服务、安全服务、监控服务等系统服务,以及用于Web服务应用的ASP、目录服务和安全处理体系。 4. Web Services技术栈: Web Services的实现通常涉及以下层次:服务集成和展现层、服务定位、...
- `xalan.jar` 和 `xmlsec-1.2.1.jar`:这两个库用于XML的加密操作,确保数据传输的安全性。 在实际开发中,了解并熟练掌握这些知识点将有助于构建和调用Web Services,尤其是使用Tomcat和Axis的组合。通过良好的...