一种基于单点登录的开源课程群系统*

2011-10-18 08:10陈云芳李广志
中国教育信息化 2011年6期
关键词:单点统一服务器

陈云芳,李广志,汤 波

(南京邮电大学 计算机学院,江苏 南京 210003)

一种基于单点登录的开源课程群系统*

陈云芳,李广志,汤 波

(南京邮电大学 计算机学院,江苏 南京 210003)

为高效地管理和应用高校的网络课程,满足课程教学过程中不同类型用户的实际需求,本文提出了一种基于单点登录的课程群系统,采用用户信息统一管理、分布式子课程群服务的应用模式,并以单点登录认证机制实现系统整合。系统以开放源代码模块进行构建,以耶鲁大学开发的CAS结合Open LDAP实现统一认证,以Moodle教学平台提供具体的课程服务,实践表明它是一种可靠、高伸缩性的开放课程群系统。

课程群;统一认证;单点登录

一、引言

目前各高校都有着数量庞大的网络课程系统,各个课程组和院系开设各自的网络课程,使用不同的课程服务系统。用户更是可能跨院系同时在不同的网络课程系统上拥有多门课程,或者在不同的部门兼有教师和学生等不同身份。这样繁杂的网络课程系统首先造成高校的网络资源使用混乱,使用效率降低,教务、教学部门不能有效地管理相关课程,不能整体掌握学校网络课程的开设和使用情况;其次,用户登录不同的课程系统需要使用不同的用户名和密码,这给管理者和使用者都带来诸多不便;再次,传统的网络课程系统通常使用独立的数据存储模块和认证模块,这些模块的定制开发造成大量的重复工作。

为了避免传统独立型网络课程系统存在的弊端,目前越来越多的高校采用类似于Blackboard的课程平台。Blackboard教学平台是以课程为核心,并且具备很多可以独立运行而且支持二次开发的模块化结构,在网络教学中比较流行的一种教学平台。Blackboard教学管理平台集数据存储、认证服务和具体课程服务于一体,各种服务都由一台集中式服务器提供,方便了高校统一管理,省

*本文受到南京邮电大学教改项目“云计算模式下的课程教学网站群系统研究”(JG00410JX10)的资助。去了用户登录的繁琐过程。然而,由于Blackboard的独立性和集成性,服务器在使用的高峰期,需承担巨大的负荷,负载无法均衡。同时,该课程平台把所有权限都集中于管理员,也就是由教务处统一管理,这并不符合课程是各个院系自己负责建设和管理的实际教学情况。

鉴于传统网络教学系统存在的弊病和类似于Blackboard独立集成型课程系统存在的问题,本文提出一种基于单点登录的开源课程群系统的新型解决方案,它继承了传统的独立网络教学课程系统的优势,吸收了集成型课程系统的优点,既能满足单门课程网络教学的基本功能需求,也能满足高校的课程建设与管理的现实需求。它是一种支持单点登录、统一身份认证和独立权限兼顾、课程统一管理和独立建设兼顾的课程集群系统。

二、基于单点登录的开源课程群系统

本文提出的“基于单点登录的开源课程群系统”是指由后台提供统一的认证模块,子课程系统通过统一的接口进行认证,且一次登录可以在整个课程群中漫游而不需要二次登录的一种课程群系统,其模型如图1所示。

1.系统的结构

课程群系统可以分为三个层次,第一层是认证模块,第二层是子课程群,最后一层是终端用户。前两层(服务模块)都是可以支持二次开发的模块化体系结构,并且均可以运行在不同的服务器上。虽然Blackboard等课程系统软件的各个模块也支持二次开发,各个模块却不可以独立运行,只能将若干个模块揉和在一起,运行在同一台服务器上。

基于单点登录的开源课程群系统的功能实现主要包括:(1)提供具体课程服务的子课程群,为各个院系或者为超级大课提供具体课程服务;(2)统一认证单点登录模块,给课程群提供统一的认证登录服务。

统一认证单点登录模块由高校根据学校的实际情况定制,该模块存储用户信息,提供单点登录服务。认证模块的系统管理员可以对整个课程群的用户信息进行统一管理。各个子课程群系统才是直接面向用户提供服务的课程平台,子课程群系统存储了具体课程的相关信息,学生、老师、教学组、教务处等是该系统的最终用户。每个子课程群就是一个管理域,每个域都有管理员,可以对本域中的用户信息进行管理,可以分配不同的权限给不同的用户。子课程群主要有两种服务模式,一种是为院系服务的子课程群,如图1所示的院系A和院系B组织的课程,下面再开设院系内部的课程。另外一种是为一些基础大课服务的子课程群,如图1所示的基础课程A和基础课程B组织的课程,因为这些课程面向全校数千学生用户,往往有课程所属的特定功能需求。

2.系统的优点

本文提出的基于单点登录的开源课程群系统与传统网络课程系统及近来流行的Blackboard等集成式课程平台相比有以下几个特点:

(1)身份认证、管理与权限分配分离

不管用户登录还是注册到该课程系统,都需要经过认证模块验证,即教务处(或学校)对用户的身份进行认证。各个子系统中都有管理者,可以管理该子系统中的所有课程和用户信息,以及给不同的用户分配不同的权限。课程的拥有者被子系统的管理员授予了一定权限,可以全面管理自己的课程。想要开设网络课程只需要向该域管理员提出申请,管理员审查符合要求,则添加相应的课程并授予该申请者相应权限,该申请者就拥有了自己的一门网络课程。或者域中管理员分配给某些人相应教师角色(拥有相应权限),这些教师角色就可以自己创建课程,免去繁琐的申请过程。而学生只要知道选课密钥就可以自行加入某门课程。这样的课程群系统实现了身份认证、管理和权限分离,符合现实情况,即教务处仅管理、识别教师和学生的身份,至于用户在某个具体课程中拥有什么权限,完全由课程群子系统所决定。正是由于身份识别和权限分配的分离,避免了在传统课程系统中,教师开设几门网络课程也就拥有几套独立的课程系统,避免了一位管理者管理不同网络课程也就管理几个不同的系统的问题,避免了无法处理可能的用户多重身份问题。

(2)使用统一认证单点登录机制

该系统使用统一认证单点登录机制,当用户第一次登录课程系统时,在客户端输入用户名和密码,通过统一的接口映射到中央认证模块,实现统一认证。认证模块首先查寻该用户是否存在,如果该用户不存在则返回登录失败;如果查询到该用户则向数据库查询比对,如果比对成功则返回一张凭证,只要浏览器没有关闭,用户携带此凭证就可以在课程群中所有的子课程系统中无限制漫游,无需重复登录,即实现单点登录功能。这符合实际需求,避免多次使用相同账号密码登录系统,减少了登录系统时的安全隐患。

(3)课程具有统一使用模式

该课程群系统的所有课程都具有统一的使用模式,系统直接面向广大师生的课程平台是子课程群服务系统,这也是课程群的核心服务部分,以院系课程或基础课程为基本组织单位面向广大师生组织网络教学。虽然每个子课程群系统都是独立开发运行的,但是因为全部使用同一课程服务软件、具有相同的二次开发模式,从而具有相似的用户体验。教师在各个子课程群中拥有不同课程,学生在不同子课程群中修学不同课程,不需要重新学习系统的功能使用,从而最小化了系统使用的学习负担。

(4)具有无限拓展性和小负荷压力

该系统还有很大的灵活性,因为系统数据的存储和具体课程服务都分布在不同的服务器上,由于采用集中式认证分散式服务,每一单独的课程服务器都没有太大的运行负担,这有别于 Blackboard等集成式课程系统——集认证模块和课程服务于同一台服务器,当多用户同时登录时,该课程系统服务器会因为负担太重而降低服务效率甚至无法正常运行。系统可以根据需要无限地拓展,这正好符合现实的需求——无限拓展性和小负荷压力。

三、关键技术

本文提出的统一认证的开源课程群系统在南京邮电大学实践的具体方式是:耶鲁大学开发的CAS(Central Authentication Service)[1]结合现在流行的数据库服务LDAP(Lightweight Directory Access Protocol)[2]实现具有统一认证和单点登录功能的认证模块,各个子课程群的功能切实实现用的是一套具有诸多优点的课程平台服务软件Moodle[3]来实现。实现该方案的关键技术包括统一认证和单点登录的实现、合理分配各级权限、整合已经存在的用户数据和传统网络课程数据。

1.技术背景

CAS是耶鲁大学开发的单点登录(Single Sign On)系统,它被设计成为一个独立的网络应用程序,可以作为用户身份认证模块加入到网络应用中。CAS的设计目标为:(1)为多个Web应用提供单点登录服务;(2)简化身份认证的流程;(3)将用户身份认证集成于单一的Web应用。

LDAP是轻量级目录访问协议,而且是跨平台的和标准的协议。该协议是基于X.500标准的,但是简单了很多,可以根据需要定制,支持TCP/IP协议。LDAP对查询进行了优化,读比写的性能要优秀很多。LDAP服务器可以用“推”或“拉”的方法备份数据。

Moodle是目前比较流行的课程管理平台,以社会建构主义教学法为其设计基础。Moodle的在线教学模块采用可自由组合的动态模块化设计,组织在线教学时就像搭积木一样简单。它是一个专门制作基于因特网的课程和网站的软件包,可以在任何一台支持PHP的计算机上运行,而且支持多种类型的数据库。

笔者提出的课程群系统主要以上述三种开源代码为基础来实现。首先根据高校的实际情况定制符合客观需求的LDAP数据存储服务器。然后配置CAS服务器,使其与LDAP数据库服务器连通,能够双向读取和存储数据,即CAS和LDAP二者结合构成认证模块——实现统一认证、单点登录机制。然后开放统一接口给Web应用连接,对正在使用或者新架设的Moodle的认证机制进行替换。对于新架设的Moodle更换原有的认证机制,对于正在使用的Moodle,需要将已经存在的数据导入到我们定制的LDAP中,然后重新配置它的认证方式使其对接上新开发的中央认证模块,这样就真正建立了符合整个高校需求的基于单点登录的开源课程群系统。

2.单点登录的实现

单点登录是实现用户统一管理的中央认证模块。单点登录,即一点登录就可全网漫游。各个子课程群与认证模块紧密相连,实现在一个课程中登录成功就可以访问其他所有的课程,无需反复登录。功能原理如图2所示。

用户浏览器第一次访问并登录某课程系统时,系统检查该用户的Session是否存在,如果不存在则重定向到 CAS服务器端,检查 TGT (TicketGranting Ticket),若TGT不存在或者TGT错误则重新定向到登录界面,需要用户输入用户名和密码,然后通过统一认证的单点登录服务器对用户进行认证。需要注意的是CAS服务器端本身并不具有认证功能,真正的认证是在LDAP数据服务器中进行的。当LDAP认证完成后,CAS返回给用户合法的TGT和ST(Service Ticket)给浏览器,并重新定向用户的浏览器到原来的课程系统中。课程系统接收到返回的ST之后,再一次重定向到CAS服务器端请求认证ST的合法有效性,如果合法有效则确认该用户已经正确登录,课程系统中创建该用户的Session并且提供相应的课程服务,用户的浏览器重新定向到请求的地址;否则返回错误,要求用户重新输入用户名和密码。用户登录成功之后,再次访问其他的课程系统时,用户的浏览器到达课程系统时提供ST,课程系统把接收到的ST重定向到CAS服务器端,验证合法性和是否过期,若ST不存在或者ST过期了,则返回校验用户Cookie中携带的TGT,如果TGT合法则CAS重新授予用户一张ST,否则就需要用户重新登录,即重新定向到统一登录界面,要求用户输入用户名和密码。

3.权限设计

单点登录、统一认证的开源课程群系统存在另外一个重要的问题就是权限控制。该课程群系统可以使用学校的所有网络资源,由学校统一规划设计这个系统,学校设专人对群系统进行维护;也可以是某个院或几个院合作规划运行这样的一个课程群。这种运行方式体现了课程群的灵活性,同时也对课程群的设计提出了更高的要求。整个课程群中的课程可能会很多,用户量庞大,用户关系非常繁杂,分级分层的关系也比较复杂,这就要求系统架构的设计者能够将权限问题考虑清楚。

该系统选用Open LDAP作为系统后台数据存储的服务器,可以充分地考虑用户及用户组、角色及权限分配设计问题。LDAP是以树状结构存储数据的,首先要设计好以什么样的结构来存储,本文所提出的例子是以cn= Manager,dc=njupt,dc=com作为LDAP存储树的根。我们分别根据院系和课程进行树结构的延展。树的分支的末尾才是真正用户,在存储用户实体的时候需要考虑到角色划分的问题,例如最简单的教师和学生的角色划分,院系和班级的划分等。

用户权限的真正控制权在子课程群系统中,即Moodle本身对课程使用者的权限控制。Moodle安装成功之后,默认创建一个系统管理员,我们称之为域管理员。域管理员可以在自己的子课程群中分配权限,例如可以在自己的域中下放权限给老师,让他们可以在该子课程群中创建课程,而课程创建者又可以为自己的课程添加新的老师,而学生可以通过选课密钥进入到自己想要选择的课程。从而这个子课程系统才能真正运行起来。虽然是集中式管理,但是权限在严格的控制基础上层层下放,让不同类型的用户可以参与该课程群系统的管理。权限分配合理,整个系统会被非常高效地管理,而管理员不会有太多的工作负担。

四、总结

经过数年建设,我校的课程群子系统取得良好的实际应用效果。目前的课程群系统中实际运行了4个子课程系统,涵盖计算机学院课程子系统、省级精品课程子系统、校级精品课程子系统等多种服务类型,包括基础课、专业课、选修课等多种形态,还包括高级程序设计语言、高等数学等有特殊功能需求的课程。该课程群系统服务用户超过万人,服务课程超过200门,累计点击数接近亿次。

统一认证单点登录的开源课程群系统,在设计上充分利用了高校各方面的网络资源,具有身份认证与权限控制分离、一点登录全网漫游、网络课程使用统一化等特点。中央认证单点登录模块的实现,减少了传统网络课程的独立认证模块的开发,节约了人力和财力资源。采取统一认证单点登录的CAS服务模块,可大大减弱数据存储的重复性和减少占用的网络资源。采用用户身份的统一管理,有助于高校对本校的网络教学的用户和课程进行管理。正是由于采用了本文所提出的系统架构,我们可以在廉价的服务器上提供伸缩能力极强的高质量分布式课程服务,初步具备了云计算的课程教学环境,这也是我们下一步研究工作的方向。

[1]CAS单点登录[OL].http://www.jasig.org/cas.

[2]LDAP轻量级目录访问协议[EB/OL].http://www. openldap.org/.

[3]Moodle中 国 服 务 中 心 [EB/OL].http://www. moodlecn.com.

(编辑:金冉)

G420

A

1673-8454(2011)11-0037-04

猜你喜欢
单点统一服务器
坚持严管和厚爱相统一的着力点
碑和帖的统一,心和形的统一,人和艺的统一
历元间载波相位差分的GPS/BDS精密单点测速算法
通信控制服务器(CCS)维护终端的设计与实现
PowerTCP Server Tool
统一数量再比较
得形忘意的服务器标准
数字电视地面传输用单频网与单点发射的效果比较
企业信息门户单点登录方案设计
计算机网络安全服务器入侵与防御