数字化校园身份认证系统的设计,本文主要内容关键词为:身份认证论文,校园论文,系统论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
【分类号】G43
1 总体框架概述
网络环境下信息安全日益得到重视,其技术也在逐步完善,从传统的对称加密方法的不断改进与强化到非对称加密技术的出现,再到数字证书的概念广为人知,包括各种认证令牌的使用逐渐增多,PKI的概念不但流行而且也已经得到广泛的实际应用。同时对于XML加密和签名标准与Web Service安全性研究的进展也在不断促进它的日益成熟与广泛应用[9,10]。
信息安全技术的不断发展与完善,为设计和建设一个完整的数字化校园,尤其是统一身份认证平台类的系统,提供了坚实的技术背景。图1就是本文设计的数字化校园中的统一身份认证系统的示意图[8]。
图1 数字化校园中的统一身份认证系统技术框图
Web浏览器作为访问数字化校园的入口,普通用户通常无需安装客户端程序,利用无处不在的Web浏览器便可登录访问各种所需要的服务,并且能享受适合个人需求和喜好的定制服务,为用户获取信息和服务提供极大便利。
Portal信息平台服务器负责校园网中各种服务信息的展示,它集成了校园网内各个服务器向信息平台服务器所提供的入口,并提供页面与服务定制功能,通过与CertServer服务器通信来读取用户的各种所需认证与授权信息,然后,凭借所持有的凭证,Portal服务器与所需访问的服务器进行交互,读取用户所需信息并展现在页面上。
校园网内的各种服务器则向信息平台服务器开放自己的接口,并利用CertServer服务器作为为权限控制机构来服务于从信息平台传输过来的请求,利用自身的资源对请求进行处理,并将结果返回给信息平台服务器进行处理与展示。
CertServer服务器是一个提供了各种操作接口的中间层服务器,并且也是一个提供认证与授权机制的服务器,它以所连接的LDAP服务器为数据存取场所,为信息平台和校园内务种服务器提供认证和操作接口,也为各种服务提供了访问控制功能,并且它还负责向认证中心服务器提出申请数字证书和废除证书,以及其他证书管理的请求。
LDAP服务器存放着整个系统内一切有关组织,人员和资源的信息数据,也是认证中心的数字证书和CRL的存放场所,是整个数字化校园系统的信息中心,所有的认证服务与大部分的信息服务都围绕着LDAP服务器展开。
上述两类服务器是高校数字化校园统一身份认证系统中的核心应用服务器,本文在后面对其设计还将做进一步的研究和探讨。而作为系统基础的认证中心服务器则管理着与数字证书相关的服务,其中CA掌管着数字证书的发放和取消,RA是申请机构,这两者主要是利用LDAP服务器作为证书库,提供了证书的管理功能。
为了加强数字化校园系统的安全性以及为了以后系统进一步发展的需要,采取PKI作为统一身份认证系统安全性的基础。我们把数字化校园的应用建立在PKI的基础上时,出于费用与其他具体情况的考虑,不一定去申请作为诸如Verisign等CA的子CA,也可以自己建立自己学校的认证中心系统,并且生成一个自签名的数字证书作为CA的证书。
2 LDAP服务器的设计
2.1 LDAP墒介
LDAP(Lightweight Directory Access Protocol)技术是一种标准的目录服务技术,它基于X.500标准。X.500是一种OSI的目录服务模型,这个模型包括了所有的命名空间和查询更新协议,X.500通常也被称作“DAP”(Directory Access Protocol),这个协议运行在OSI网络协议层,功能极其强大,但是也由于丰富的数据模型和操作使得它非常复杂而显得笨重。LDAP相对而言比较简单,并且它可以根据应用的需要进行定制和扩展。与X.500最大的不同在于,LDAP一开始就设计为运行在TCP/IP协议上,是目录服务在TCP/IP上的实现(RFC 1777 V2版和RFC 2251 V3版)。因此LDAP对于Internet访问的支持非常好,并且它还为浏览和查找目录以及内容读取提供了专门的优化,使得读取速度比一般的关系数据库要快得多[1-3]。
LDAP标准定义了在目录中访问信息的协议,规定了信息的形式和特性、信息存放的索引和组织方式、分布式的操作模型,并且还指明LDAP协议本身和信息模型都是可被扩展的。LDAP目录中可以存放各种类型的数据,包括并不仪限于下列几种:简单文本、图片信息、URLs、二进制数据、数字证书等[7]。不同类型的数据存放在不同类型的属性中,每一种属性有其特定的语法。LDAP标准基于X.500的子集提供了一套丰富的属性类型和语法,但是,又提供了自定义属性、语法、甚至是对象类型的能力。目录中的信息存放模型基于项(Entry),每个项拥有全局唯一的名字(DN)并且包含了基于属性的描述信息。项的存放基于树状模型,层次结构相当明晰,适于对应现实世界的组织模型。LDAP也为信息的检索提供了复杂的过滤条件,并且提供了相当的访问控制能力。
LDAP中可以大量存放个人的信息。例如,一个机构可以将他所有员工的信息存放在LDAP目录中,供所有人员查阅。个人信息中可以包含有个人的姓名、职务、住址等等。通过把LDAP目录作为系统集成中的一个重要环节,可以简化员工在机构内部查询信息的步骤,而数据源可以放在任何地方。LDAP从设计开始发展到现在,已经在全世界范围内广泛流行,成为一个成熟并且通用的服务。
大型企业普遍采用LDAP作为存放企业和员工信息的场所,各种应用程序也都能通过LDAP提供的C或者Java的API去从LDAP目录中获取所需信息。
2.2 LDAP特点及应用
传统方法开发公共信息查询系统的设计一般采用基于Web的三层模型。应用程序服务器一般是建立在Windows或者Unix/Linux平台上的Web服务器程序,它接受客户端浏览器发送过来的访问请求,进行处理,并且通过数据库服务器程序去访问数据库。但是,由于公共信息查询系统的特点,大量的访问请求都是对数据的读访问,很少有修改等写访问操作,而数据库的系统要求的完整性约束条件会不断进行访问数据的类型验证和事务完整性的确认,这样,数据库就会导致整个系统整体性能的下降,并且对于系统的管理优化也提出了很高的要求。同时,前端用户对数据的控制不够灵活,用户权限的设置一般只能是设置在表一级而不是设置在记录一级,而LDAP目录服务的机制能解决上述数据库中存在的问题。总结一下,LDAP的特点包括:
(1)层次结构清晰,数据存取速度快。LDAP的设计目标就是为了快速响应大量的查询服务,因此,LDAP是专门为数据的查询服务优化的,基于树状的层次结构大幅度缩短了检索所需要的时间。对于数据的修改,LDAP假定修改操作远小于查询操作所占的比例,它使用简单的数据锁定机制实现对数据的并发访问,并且不提供一般关系数据库必须提供的事务回滚机制。
(2)同步复制和分布式服务功能。大部分LDAP Server都提供了自动复制备份功能,保证了数据的安全和同步并且通过指引功能支持分布式的LDAP服务。LDAP提供的多个目录服务器之间的信息复制功能可以很容易的使用内置在LDAP服务器中的信息复制技术通过“推”或“拉”的方法复制部分或全部数据,以增加数据的安全性。
(3)可以跨越平台和系统。由于LDAP协议位于TCP/IP的上层,与具体的操作系统无关,服务器提供的是标准统一的接口,各种平台的服务端可以通过LDAP端口进行数据的存取。并且由于LDAP的API的开放性,很容易在用户自己的应用程序中加入对LDAP的支持,因此LDAP具有非常广泛的适用性。
(4)完善的安全控制设施。LDAP服务可以使用标准的SSL连接(LDAPS),保证连接的机密性,并且对于自身数据的访问也允许通过ACL(访问控制列表)控制,严密的安全措施保证了数据的可靠性。内置的ACL可以根据访问者身份、访问数据的信息、数据存放的位置以及其它相关信息对数据进行访问控制,LDAP目录服务器负责这些访问权限的控制,因此客户端的应用程序就可以避免相关与自身控制无关的安全检查。
同时,由于LDAP协议的开放性和众多的LDAP服务器端和客户端免费应用软件的开发使用,LDAP越来越受到业界的广泛认同。LDAP的广泛流行与应用又反过来促进了LDAP自身的不断发展,而各个软件厂商也在各自的产品中加入对LDAP的支持,因此,在公共信息查询与存放领域,LDAP产生了极大的影响。
正因为上述的这些优势,所以LDAP服务相对于专门为OLTP(在线事务处理)优化的关系型数据库器其数据处理速度要快上一个数量级。当然,也正是由于LDAP的设计主要基于查询,所以它并不适合去存放需要经常更改的数据。LDAP理想的应用环境一般具备以下条件:
①需要跨越操作系统和应用平台的应用;
②主要的应用是大量的读访问;
③LDAP中每一个项的内容很少更改;
④需要存储的数据可以存放在平面型数据库而不需要用关系型数据库。
2.3 LDAP结构及功能
(1)LDAP结构
在LDAP中目录是按照类似于DNS的树型结构组织,目录由众多的项(Entry)组成,每一个项相当于关系数据库中表的每一条记录。LDAP的每个项由DN(Distinguished Name)所唯一标识,DN就相当于关系数据库中的关键字。
每个项含有与该项所属的对象类型(Object class)相符合的一些属性。每个对象类型规定了该类型的对象一定要有的一些基本属性,以及一些可选的属性。每个属性由属性类型和属性值组成。一个属性只有一个属性类型,但却可以有一个或不确定的多个值,以方便检索需要。例如,一个人可能有多个电话号码,那么该人的电话属性就可以有多个值。项与属性的关系如图2所示。
图2 LDAP的项与属性
(2)定制功能
由于存放在LDAP目录中的数据形式的多样性与用户的实际应用需要,LDAP提供了定制的功能。一般来说可以分为两类:
①自定义对象类型:可以定义任意名称的对象类型,也可以定义该类型中包含的属性。
②自定义属性:可以定义任意名称的属性类型,包括该属性可以存放的数据类型,如存放二进制数据还是文本数据,以及是否大小写等敏感信息。
例如,在为南京大学设计的LDAP服务中,校园用户的类型与一般LDAP目录中自带的有关人员的类型相比,需要一些特殊的属性。例如学生,需要有相关的院系、专业、入学时间等,这些必须通过自定义属性和对象来实现。因此,定义南京大学校园用户类型为对象类型njuPerson,njuPerson用到了一些自定义的属性类型,也包含了一些LDAP自带的属性类型,该类型的定义如下:
objectclass(2.5.6.104 NAME njuPerson'SUP person STRUCTUAL
Must(uid)
MAY(title $ registeredAddress $
userAlias $ id $ sid $ c $ nation $
telexNumber $ teletexTerminalldentifier $
telephoneNumber $ street $ postOfficeBox $ postalCode $
postalAddress $ physicalDeliveryOfficeName $ ou $ st $ l $
sex $ birthday $ certificate $ major $ institute $
department $ entranceTime $ studyDirection $
homeAddreas $ teacheAge $
roleInfo $ serviceInfo $ sessionID $ sessionLastVisitTime $
userCertificate $ userPKCS12Cert $ userPKCS12Password
))
对象类型njuPerson所带有的属性很容易从该定义中看出来,由于它继承了person对象类型,因此除了person对象拥有的属性之外,还增加了许多LDAP本身带有的属性以及经过扩充定义的属性。相对应的属于该对象的一个具体人员的例子如下,此为LDAP记录的LDIF格式(经过裁减):
dn:uid=DG0414017,ou=people,dc=nju,dc=edu,dc=cn
sid:DG0414017
cn:许鑫
sex:male
birthday:1976/08/21
id:320981197608210473
institute:公共管理学院
department:信息管理系
major:情报学
entrancetime:2004
……
usePasswork:e01ENX1XV2Z3YU9WUHhOY2NEazlvdDhCbUIBPT0=
objectClass:njuPerson
在这个例子中,用户的口令映射信息(UserPassword)也存在LDAP中,默认使用Unix的口令加密格式存储。当然,也可以用选择用MD5或者SHA-1等散列方法存放。
(3)复制功能
对于一个大型机构而言,它可能有一些分支机构,因此需要LDAP中信息能够以分布式方式存放。例如子公司A的信息需要在总部的目录中存储,而总部或者其他分部的信息子公司A就不需要拥有,因此,A可以只存放该子公司A的目录子树,当在本地读取不到所需信息时,再选择通过Referral索引去访问总公司的IDAP服务,从而加速操作速度。总部有该公司所有的目录树结构,包括其下面所属的子公司目录,因此,子公司A的信息就存在复制的问题。
LDAP服务器可以使用基于“拉”或者“推”的技术,用简单或基于数字证书的安全验证,复制目录中一部分或者所有的数据。“拉”连接表示经过指定时间后,从LDAP服务器就去连接主LDAP服务器保持更新。“推”连接表示经过指定时间后,主LDAP服务器就把数据发送给从LDAP服务器以保持最新的数据同步。通过这样两种技术,无论任何一个LDAP服务器的数据更新了,其它LDAP服务器的数据也将随之更新。
下面是LDAP服务器之间一个复制与同步的例子:
①LDAP客户端提交了一个LDAP修改请求给从LDAP服务器;
②从LDAP服务器返回一个指向主服务器的索引给客户端;
③客户端向主服务器提交修改请求;
④主服务器执行该修改请求,将这次修改信息记录入复制日志并返回一个成功信息;
⑤复制进程(Slurpd)注意到一个新的项被添加入复制日志文件,然后读取该信息并通过LDAP协议发送给各个从服务器;
⑥从服务器同样执行该修改操作并返回一个成功信息给复制进程。
这样,就可以通过复制,充分利用LDAP分布式服务的特性,来服务于数据的快速存取与备份。
2.4 LDAP的安全措施
LDAP的安全措施主要包括认证和授权两大部分。LDAP客户端在与LDAP服务器建立连接时,LDAP可以提供三种访问方式:
①匿名访问
②简单认证
③Simple Authentication and Security Layer(SASL)。
简单认证方式是通过验证连接LDAP服务器的用户DN与密码方式来确定用户身份的。而SASL方式则一般通过CSSAPI for Kerbems V,DICEST-MD,以及PLAIN and EXTERNAL for use with Transport Layer Security(TLS)等方式来保证安全性。
LDAP使用ACL(访问控制列表)根据访问者身份、访问数据的信息、数据存放的位置以及其它相关信息对访问者进行授权。通过使用LDAP的ACL,以一个公司的LDAP服务为例,管理员可以完成诸如以下的访问控制功能:
①用户可以查看自己的个人信息和其他人已公开的信息,但是无权查看其他人的私有信息。
②用户可以修改自己的电话及住址等,但无权修改自己的职务和工资信息。
③人力资源部门可修改公司内部员工的职务和工资等信息,但无权修改其他信息。
2.5 设计实现与访问模型
选择LDAP作为整个数字化校园身份信息的中心,可以利用LDAP清晰的目录结构存放学校的组织结构、人员信息、资源和权限信息,并作为数字证书的存放库。在做到了全校信息的统一存放后,将能避免数据冗余,方便信息的维护,也便于各个不同系统之间的合作,同时还能将LDAP库中的一部分信息,如人员的联系方式作为公开信息发布,另外LDAP也能作为公钥证书的公布机构。
针对于学校的具体情况,结合LDAP服务器的特性和功能,本文设计了一个LDAP服务器中的目录结构(图3所示),以南京大学计算机系学号为95132066的同学为例。
在这个LDAP目录结构中,dc=nju,dc=edu,dc=cn作为整棵树的Root DN。
人员(ou=people)子树中每个项存放的是校园网中每个人的基本信息,如用户的姓名、密码、性别、出生年月、电话、地址、院系、数字证书等内容,其中还包括了该学生在本系统内所属的角色列表。
图3 数字化校园中LDAP目录结构设计
组织(o=organization)下的子树,就是按照一般组织的分级结构组织存放,从概念上直观反映了组织间的上下级关系,非常易于理解。每个组织有自己的各种属性,如名称、电话、位置等。组织下可以分为各个子组织,如行政部门、研究生院、文学院、理学院等。最低一级子组织子树下包含属于该系的人员列表,这里每个人只是一个索引,指向人员子树下具体的某个人员。
资源(ou=resource)子树下主要是分为校园网内的各个系统,这棵子树控制着访问的权限。一个系统代表一个具体的服务,例如图书馆系统、档案馆系统、成教院系统等。每个系统又划分为多个模块,每个模块可能还会有多个功能。每个系统、模块、功能都可以有其特定的角色来控制访问权限,其中上层树的角色也具有可以控制下层树所需要的权限,并且可以管理下层角色的分配。每个角色下是属于该角色的人员列表,这里同组织下的人员一样,也是指向人员子树下的某个具体人员的索引值。因此,在系统进行增删改角色信息的时候就需要注意设计为同步操作。通过这种模型,每个系统的管理员就可以控制属于该系统子树下所有的权限,充分将每个系统的管理权限分散到各个管理员手中,避免了集中控制带来的问题。
数字证书(ou=cert)子树下主要是存放整个系统中所有与数字证书相关的内容,比如证书备份与CRL,具体将会在后面章节进行介绍。
LDAP目录通常是通过服务器/客户机(C/S)模型进行访问的。应用程序客户端通常不直接与LDAP目录进行交互从而读写数据的,而是通过一组应用程序编程接口(API)来向LDAP服务程序发出读写请求,LDAP服务程序检查相应的访问控制措施,确认客户端有足够的权限后代表客户端在系统的LDAP目录中进行相应的操作,并且将结果(成功信息或错误代码)返回给应用程序。
API(Application Programming Interface)定义了一组使用某一特定编程语言访问某种服务的编程接口。客户端与服务端交互的消息格式由LDAP协议规定,客户端只要遵循标准的交互协议,就可以和服务端通信。因此,LDAP有多种客户端访问API包可供选择。现在最普遍采用的是C API和Java API。如果数字化校园系统的前端访问采用的是B/S(Browser/Server)结构,那么可以采用在服务器端开发拥有强大优势的Java语言作为程序开发语言。在南京大学的数字化校园统一身份认证系统的开发中,我们选择了OpnLDAP组织所提供的LDAP服务器,因此也采用了该组织所推荐的JLDAP(Novell提供)作为我们应用开发所采用的API,而非Sun的JNDI,事实也证明,JLDAP提供了比JNDI更为强大的对LDAP目录进行操作的能力。
3 CertServer服务器的设计
3.1 设计思想
为了屏蔽前台应用程序和后台目录服务器程序之间的直接交互,促进系统安全性和系统服务的便利性,实现数字化校园的统一身份认证系统还需要设计一个中间层服务平台CertServer服务器来充当一个桥梁和关卡的作用[11]。
CertServer服务器是一个为外部系统提供认证与授权机制的服务器,也是一个为管理员提供了对LDAP数据结构管理功能的服务器。它以所连接的LDAP目录服务器为数据存取场所,向信息平台和校园内各种服务器提供身份认证、权限检查等操作接口和面向各级管理员的数据管理功能,并且也负责向认证中心服务器提出申请数字证书和废除证书等请求。CertServer服务器作为外部应用服务器与底层目录服务器之间的中间层服务器的作用,它负责接受外部应用发过来的各种请求,在进行权限判断等处理后,然后去直接存取LDAP目录或者向认证中心服务器发出请求,来完成外部应用请求的任务,再将处理结果返回给外部应用服务器。
3.2 体系结构
CertServer服务器的体系结构采用控制器-转发模型,如图4所示。
图4 数字化校园中CertServer服务器体系结构
CertServer服务程序的控制主要由控制框架程序完
成,首先在接收到消息之后,对该XML消息进行解析,获取该消息所要进行的操作之后,将控制转发给各个单独的动作处理程序,由动作处理程序负责具体的权限校验,然后调用LDAP的API目录进行操作,最后返回处理结果给控制框架,控制框架再将该结果转化为XML信息返回给客户端[12]。
3.3 相关技术
一个良好服务的提供,必须制定一个完善的通信协议,确保进行通信的服务器和客户端之间的正确行为。为了服务于校园网中已有的多种不同操作系统、不同应用平台的服务器,保证交互格式的一致性,可以考虑制定一套基于XML的消息传送格式。
(1)XML
XML是一种可扩展的标记语言,它可以在保证数据的意义和结构的前提下,进行网上数据的交互,确保了系统之间数据交换的灵活性。并且由于使用XML,可以对数据关系进行定义形成特有的标准,因此各行各业都可以建立自己的行业化标准,以应用于网上电子商务和其他各种应用,把后台系统通过Web站点表现出来。
XML还可以作为数据存储库,一个XML文件就是一个小的数据库,通过对数据关系的定义形成各种关系、属性的数据,从而实现数据交换、上下文检索和多媒体传输等。对于安全性,XML现在也有了关于XML内容加密和数字签名的规范,并且还在不断改进之中。另外,XML还可以利用XSLT来对XML的内容进行加工处理,从而增强了XML的功能和便利性[4-6]。
由于XML的这些优秀的特性,因此在各种互联网的应用中XML已经开始广泛使用。在数字化校园的应用环境中,为了整合校园网中已有的大量Windows、Unix、Unux以及各种诸如IBM390/MVS之类的大型机的服务,还有为了不同应用程序之间互操作的便利性,可以同样考虑采用XML来传输服务器之间的信息,并且定义了客户端与服务程序之间XML消息传递的格式。
(2)消息格式
针对于数字化校园中LDAP目录结构的维护和CertServer所应该提供的服务,可以定义在这个应用中所应该有的消息格式,主要有以下几类:用户的添删改和属性获取、组织的添删改和属性获取、系统的添删改和属性获取、模块的添删改和属性获取、功能的添删改和属性获取、角色的添删改和属性获取、用户登录、用户退出、查询用户、添加组织的管理员、获取组织下人员列表、添加用户到组织、从组织删除用户、赋予某人某个角色、取消某人某个角色、获取一个系统或模块下的可用模块、设置一个系统或模块的可访向角色、访问权限校验、操作返回信息等。每一个消息都是一个简单的XML文件,该XML文件规定了每个消息的类型和该消息应该带有的各种参数。
CertServer服务器接受输入信息的一般XML格式为:
AttrNamel
AttrValuel
……
AttrName2
AttrValue2
CertServer服务器返回输出信息的一般XML格式为:
AttrNamel
AttrValuel
……
AttrName2
AttrValue2
客户端向CertServer服务器发送的消息请求必须符合上述格式,使用TCP连接服务器发送服务请求,然后接受服务器返回的XML信息并加以处理,获取所需的结果。
(3)连接设计
服务程序为了服务于外部连接到本地的客户程序,必须监听莱一个端口,而大部分服务操作又需要连接LDAP目录,为了保证大量连接请求与响应速度,我们采用建立线程与目录连接池的方法。
服务器主程序首先读取配置文件,开始侦听连接。当一个连接请求到达时,服务器主程序就建立一个线程,让线程去服务于这个连接,接受客户端的请求数据,调用动作处理程序进行处理,然后返回信息给客户端。而主程序在建立了线程之后,就继续侦听连接。通过为每一个连接提供一个线程来处理,保证了服务主程序对于客户连接的快速响应与保持监听。这种做法在我们的应用中已经被证明足够满足需求,当然,为了进一步提高效率,还可以采用线程池的方法。
主程序建立的每一个线程中相应的动作处理程序都有较大的可能需要连接LDAP目录服务器,然后进行各种操作。由于将进行频繁的LDAP连接请求,而每一个LDAP连接建立的开销相比于建立连接后操作的开销将是非常大的,因此为了防止LDAP连接成为整个系统的性能瓶颈,可以设计一个LDAP连接池程序来减少连接开销。
LDAP连接池在系统初始化时就同LDAP目录建立了一定数目的连接,并且将这些连接放在容器(例如一个List)中,当动作处理程序需要获得LDAP连接时,就向LDAP连接池发出请求。如果连接池中有空闲连接,那么连接池就会把这个连接分配给它,并且将这个连接设为已用;如果连接池中已没有空闲连接,那么连接池将负责去与LDAP服务器建立新的连接放入池中,然后再进行分配操作。当动作处理程序释放LDAP连接时,连接池将不直接关闭连接,而是将连接放入池中,直到空闲连接数目达到规定数目时,才会真正释放连接。
通过建立这样一个目录连接池以及连接管理策略的使用,使得一个连接可以得到重复使用,避免了频繁的去连接LDAP目录所需要的巨大开销,另外由于将连接封装在连接池中,也降低了程序的耦合度,提高了开发的效率和复用程度。
3.4 应用举例
为了更清楚地说明CertServer服务器的服务流程与传输的数据流,我们举一个普通的用户登录Portal信息平台服务器然后进行操作的例子。在这个流程中,信息平台通过收集用户的用户名/密码或者数字证书的信息,然后向CertServer服务器发出登录验证请求,验证通过后取得用户权限/角色,然后就可以在信息平台内以及各个向该信息平台提供入口的校园网服务器内进行各种操作,当这些服务器涉及到需要与LDAP服务器通信等操作时,就通过向CertServer服务器程序发送XML信息来完成该请求。为了保证信息的安全性,应该保证使用SSL去连接CertServer服务器。
例如,用户登录时,信息平台服务器就通过SSL连接向CertServer服务器发送如下的XML消息。
UserID
DG0414017
Password
password
IP
202.119.36.18
返回信息如下
Info
通过验证
信息平台服务器通过分析返回的XML信启,就可以知道该用户已经通过身份验证,因此允许用户登录。
4 结语
我们对数字化校园认证系统的设计不仅仅是停留在理论上,并且在南京大学数字化校园eNJU的建设中成功实践。我们通过建立统一身份认证系统和信息门户平台,将校园内各个分散的服务与资源整合在一起。基于PKI的统一身份认证系统设计保证了有关安全性的技术问题,包含数字证书的认证令牌的使用既达到了较高的身份验证的安全级别,也保证了使用的便利性。
数字化校园的一体化解决方案越来越体现其优势,尤其是校园的统一身份认证系统,如何在已有的基础上进行完善与创新,促进更广泛的应用,在技术层面还需要我们更加深入研究。我们还将进一步建立基于证书的认证体系,加强与银行方面的合作,建设网上的理财系统,实现与校园一卡通身份认证的对接。相信随着我国高校信息化研究和建设的逐步深入,数字化校园技术必将逐渐完善而走向成熟。