近年来很多高校采用了基于LDAP(轻量级目录访问协议)的用户认证方式,较好地解决了统一身份认证问题,但是直接将LDAP服务器暴露在其他应用系统和用户面前具有一定的安全风险,如权限配置错误可能导致非法用户获取其他用户的资料甚至口令。另外,在分布式环境下LDAP的访问也有可能受到防火墙的阻挡。Web Service是目前分布式异构环境下构建复杂系统的重要技术。因此,我们设计了一种Web Service和LDAP相结合的分布式用户认证系统,解决校园网用户统一身份认证问题。
Web Service技术简介
Web Service是在HTTP、XML和SOAP(简单对象访问协议)等开放标准上形成的技术,具有平台无关性、可跨越防火墙通信和松散耦合的特点,特别适合于分布式异构环境。Web Service的体系结构主要包括SOAP、WSDL和UDDI,SOAP以XML格式提供了一个简单、轻量的用于在分布环境中传输信息的机制。SOAP通过HTTP的80端口传送对远程进程的调用,解决了通过防火墙传送消息的问题。WSDL(Web Service描述语言)基于XML格式,用来描述Web Service。它描述了Web Service可以执行的操作以及Web Service可以发送或接收的消息格式。UDDI(统一描述、发现和整合)是发布和使用Web Service的枢纽,它主要用于解决在Internet上查找和定位Web Service的问题。Web Service提供者在UDDI注册中心注册后,用户可以通过UDDI查询到Web Service,从而通过SOAP调用Web Service。
系统实现
系统架构
综合考虑到性能和保护现有投资的要求,我校校园网采用了网关认证和802.1x认证相结合的方式:学生宿舍全部部署支持802.1x的交换机,采用802.1x认证,办公区和家属宿舍则使用早期购买的不支持802.1x的交换机,采用网关+Web认证。两套认证系统使用统一的用户资料,用户资料存储在LDAP服务器中,通过Web Service实现用户身份的认证,如图2所示。Web Service通过Java技术实现,运行环境为Tomcat和AXIS框架。
Tomcat是JSP和Servlet运行环境,AXIS框架来自Apache开放源代码组织,它是使用Java语言编写的基于最新的SOAP 规范(SOAP 1.2)和SOAP with Attachments 规范的开放源代码框架。使用AXIS实现Web Service非常简单,只需编写认证相关的Java类,然后将文件扩展名改为jws,无需编译,将文件拷贝到应用程序发布目录下即可。在客户端的浏览器中输入Web Service地址:http:serverip:8080/webservice/authentication.jws?wsdl即可列出调用此服务的方法。Web Service服务端主要提供以下三种认证方法: