一、项目背景
原有Moodle系统环境:Linux debian + Apache/2.2.9 + PHP Version 5.2.6 + mysql 5.0
新天河部落系统环境 :Win2003 + IIS6.0(.NET v2.0) + SqlServer2005
二、项目需求
根据天河部落优化合同(1209) (附件3)要求,对天河部落和天河Moodle进行整合,实现统一登录通行证功能,内容如下:
为达到一次注册多站访问的效果,拟通过统一登录通行证的方法实现,即天河Moodle使用天河部落数据库中的用户表。
根据Moodle所提供的身份验证方法,有效的结合天河部落现有用户数据,建议选用天河Moodle直接使用天河部落的数据库。该方法使用一个外部数据库来检验用户名和密码是否有效。如果是一个新帐号,该帐号其它字段的信息将一起复制到本系统中。
用户在天河Moodle注册,直接转跳到天河部落注册。
用户在天河Moodle登录,系统会在Moodle的用户数据表中查找是否存在该授权用户;若无,则链接到天河部落用户数据表查找;在天河部落用户数据表检查到该用户,则将该用户信息导入到Moodle的用户数据表;在天河部落用户数据表也没有该用户数据,则不允许登录。
三、可选方案分析
1.在客户端发送HTTP请求自动登陆Moodel系统(目前已实施)
原理
用户在登陆和注销Moodle系统的时,跳转到天河部落的登陆和注销页面,如果登陆成功则在客户端发送POST请求再模拟登陆Moodle系统,Moodle系统响应后跳转,完成整个登陆过程,如图1-1所示。
图1-1(天河部落Moodle登陆流程)
Moodle系统的用户身份验证必须配置为使用外部数据库,如图1-2所示,这样才能保证登陆Moodle系统时天河部落已存在的用户记录会复制到本系统中,Moodle系统登陆页面已能实现上面的功能,先判断用户记录在本系统数据库中是否存在,如不存在再判断是否在外部数据库中存在,如存在则新插入一条记录到本系统,如都不存在则登陆失败。
图1-2(天河部落Moodle使用外部数据库登陆)
优点
- 充分利用了Moodle的使用外部数据库功能;
- 对Moodle系统的改动较小,可保留原Moodle系统不必升级,只需要修改原系统的/login/index.php(登陆)和/login/logout.php(注销)页面;
缺点
- 目前只整合了用户的登陆和注销,还需要增加对修改密码等操作的用户同步功能;
- 扩展性较差,完全依赖于现有Moodle系统的本身功能,新增一个功能需要重新开发;
- 在IE里客户端发送POST请求再自动登陆Moodle系统如不是同一个域第一次会出现提示,如果用户选择“否”则登陆不了Moodle系统(给Moodle系统分配一个moodle.thjy.org好象不会出现该问题);
2.跳转至Moodel系统登陆接口页面
原理
在原Moodle系统新增一个interface.php页面,该页面根据传递的不同参数分别进行Moodle系统的登陆、注销和修改密码等操作,并对URL地址参数进行加密和验证,仍然需要修改原Moodle系统的登陆和注销页面跳转到天河部落的登陆和注销页面,但天河部落登陆成功后不再需要使用客户端发送POST请求模拟登陆Moodle系统,而直接在服务器端重定向到Moodle系统的interface.php页面,验证后再跳转回来,完成整个登陆过程。
优点
- 较为安全和稳定,不受客户端脚本等安全级别设置的影响;
缺点
- 完成interface.php需深入了解Moodle系统,并要掌握一定的PHP知识;