• 1. 指导教师:范胜波基于CAS的用户管理单点登录门户系统班级:2007级网络工程2班 学生:陈维流 学号:200710803008
  • 2. 背景 单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS(Central Authentication Service)是一款不错的针对Web 应用的单点登录框架,本系统采用CAS 实现轻量级单点登录,以及对CAS登陆的用户进行有效的组织管理。 CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS具有以下特点:开源的企业级单点登录解决方案, CAS Server 为需要独立部署的 Web 应用, CAS Client 支持非常多的客户端(这里指单点登录系统中的各个Web应用),包括 Java,.Net,,PHP, Perl, Apache, uPortal, Ruby 等。 系统的背景及意义
  • 3. 系统的背景及意义意义 随着互联网日益深入社会生活,以网站作为对外的展示窗口,进行内外信息交流,已成为必然的趋势。目前在高校信息化应用中,多套系统的存在已是很普遍的现象,有自行开发的,有向软件供应商采购的,这些软件涵盖面较广,从教学教务管理、人事信息管理、科研教研管理到毕业生就业管理,同一个用户可能在不同的系统中都有不同的帐号、密码及授权机制,这给应用的维护和管理带来巨大的维护成本。 单点登录(Single Sign On)是目前比较流行的业务整合的解决方案之一,旨在解决上面的这些问题,在多个应用系统中,通过用户的一次性鉴别登录,即可获得所需访问的应用系统的授权,在此条件下,管理员无需修改或干涉用户登录就能方便的实施希望得到的安全控制,其重要意义表现在以下两个方面:     (1)从用户的角度来看,能够一次登录多次使用,无须记住多套用户名和密码,并且在复杂的应用环境中,单点登录不仅不会影响到业务过程和响应时间,而且将互操作性方面的问题减少至最少。 (2)从管理员的角度看,相比于每个应用系统一套用户帐号的传统做法,采用单点登录之后管理员只需管理一套帐号数据,大大方便了管理;此外,单点登录采用ACL、SSL、LDAP等业界标准的安全技术,为所有集成的应用子系统提供安全授权,管理不会引起额外的工作或安全漏洞,加强了管理员的管理效能。
  • 4. 系统环境搭建第一部分 具体的软硬件环境 第二部分 jdk-6u16-windows-i586.exe的安装及配置 第三部分 mysql-essential-5.1.45-win32.msi的安装与配置(注 安装编码gb2312 与eclipse中项目编码相匹配以免项目出现乱码) 第四部分 操作mysql的工具 第五部分 tomcat6.0.26的安装及配置 第六部分 eclipse的安装及配置 第七部分 系统的部署与运行
  • 5. 具体的软硬件环境具体的软硬件环境要求如下: 硬件环境:采用普通办公用个人计算机作为服务器即可。 操作系统:采用Windows XP 以上系统。 数据库系统:采用mysql-connector-java-5.1.12数据库。 Web服务器:采用Tomcat6.0.26系统。 Java运行环境:采用JRE1.6版本。 开发工具:采用eclipse-SDK-3.5.1-win32版本 客户端:采用浏览器工具即可。
  • 6. jdk-6u16-windows-i586.exe的安装及配置1、 点击jdk-6u16-windows-i586.exe进行安装,存放路劲:D:\java\jdk6.0.26, D:\java\jre6 。 2、配置环境变量 JAVA_HOME: D:\java\jdk6.0.26, Path:% JAVA_HOME %\bin,,CLASSPATH:%JAVA_HOME %\lib; % JAVA_HOME %\lib\tools.jar 3、运行--》cmd 》javac 》java 运行成功说明jdk安装完成
  • 7. mysql-essential-5.1.45-win32.msi的安装与配置1、点击mysql-essential-5.1.45-win32.msi 进行安装,一直点击下一步。出现选择数据库编码时,选择gb2312. 2、数据库访问用户:root。 密码:rooot。 3、点击程序,运行mysql输入密码rooot。出现mysql> 说明mysql安装成功。
  • 8. navicat8_mysql_en.exe 的安装及配置1、点击navicat8_mysql_en.exe 进行安装,一直点击下一步,知道安装完成。点击桌面上的快捷键,有两种选项,试用或是注册,点击注册然后在百度上搜navicat8_mysql_en.exe注册码应该就ok。 2、新建数据库连接命名:chenweiliu。 新建数据库:graduationdesign 导入数据from: graduationdesign.sql 3、出现如下图所示,则表示安装成功
  • 9. tomcat6.0.26的安装及配置1、点击tomcat6.0.26 进行安装配置
  • 10. eclipse的安装及配置1、点击eclipse进行安装与配置
  • 11. 系统的部署与运行步骤1:制作密钥 开始-运行-CMD 先测试一下,键入:(键入尖括号右面的代码。尖括号不要键入,下同) >keytool 如果没有出现帮助说明,说明Path没有配置,如何配置不会的自己baidu。 配置好了重新打开CMD窗口,转到c:\resource\cas目录下。 怎么转?好吧,不会的按照下面的代码键入: >c: >cd\ >cd resource\cas 接下来开始生成密钥,键入: >keytool -genkey -alias tomcat -keystore ./mykeystore -keyalg RSA -validity 2000 password:changeit Common Name/Your Name:localhost 剩下的随便输入
  • 12. 系统的部署与运行确认,输入"yes",中文的话输入"是" 最后,使用密码相同,直接回车 操作成功的话,会在c:\resource\cas目录下产生一个mykeystore的文件 继续键入: >keytool -export -alias tomcat -keystore ./mykeystore -file server.crt Keystore password:changeit 操作成功的话,会在c:\resource\cas目录下产生一个server.crt的文件 继续键入: >keytool -import -alias tomcat -file ./server.crt -keystore %JAVA_HOME%/jre/lib/security/cacerts Keystore password:changeit 特别说明:这个%JAVA_HOME%是指tomcat需要使用的JDK,当然,如果按照本文后面的用eclipse里配置的tomcat,那%JAVA_HOME%就是eclipse中tomcat所配置的JDK,如果你配到其他的jdk上,到后面实际访问服务端的时候会出现异常:unable to find valid certification path to requested target
  • 13. 系统的部署与运行tomcat所配置的JDK是哪个?不知道?查看eclipse中tomcat所配置的JDK的方法: Eclipse下菜单window-preperences-myEclipse-servers-tomcat-tomcat6-jdk-tomcat JDK name,这个tomcat JDK name对应的是window-preperences-java-installed JREs下的name属性,其对应的location就是jdk的路径了。 至此,步骤1完成。 步骤2:配置tomcat 打开%TOMCAT_HOME%/conf/server.xml,其中有这么一段代码     这段代码当前状态是被注释掉的,将他打开,并完善成如下代码:    
  • 14. 系统的部署与运行注意事项:其中的keystoreFile="c:/resource/cas/mykeystore" ,配置上后此文件不可被删除,不然tomcat会报错:找不到此文件。 保存关闭文件,步骤2完成。 步骤3:配置CAS服务端 在c:\resource\cas\cas-server-3.3.1-release\cas-server-3.3.1\modules目录下,有个cas-server-webapp-3.3.1.war的war包,复制到%TOMCAT_HOME%/webapps目录下,并更名为cas_server.war 因为我们刚才配置的是eclipse使用的JDK,所以现在通过eclipse启动tomcat 访问http://localhost:8080/cas_server,出现登录页面,说明部署成功。 尝试下登录,用户名和密码相同就可以登录成功。 步骤4:配置CAS客户端 在eclipse中新建一个web工程,名字:cas_client1 将c:\resource\cas\cas-client-2.0.11\cas-client-2.0.11\java\lib\casclient.jar复制到工程cas_client1的lib下面(用于单点登录) 将c:\resource\cas\cas-client-3.1.3-release\cas-client-3.1.3\modules目录下的cas-client-core-3.1.3.jar复制到工程cas_client1的lib下面(用于单点退出) 将c:\resource\cas\cas-client-3.1.3-release\cas-client-3.1.3\modules目录下的commons-logging-1.1.jar复制到工程cas_client1的lib下面(用于单点退出)
  • 15. 系统的部署与运行在工程cas_client1的web.xml中增加如下代码:    org.jasig.cas.client.session.SingleSignOutHttpSessionListener     CAS Single Sign Out Filter     org.jasig.cas.client.session.SingleSignOutFilter CAS Filter edu.yale.its.tp.cas.client.filter.CASFilter           edu.yale.its.tp.cas.client.filter.loginUrl        https://localhost:8443/cas_server/login                edu.yale.its.tp.cas.client.filter.validateUrl        https://localhost:8443/cas_server/serviceValidate                edu.yale.its.tp.cas.client.filter.serverName        localhost:8080         CAS Single Sign Out Filter     /*     CAS Filter     /*
  • 16. 系统的部署与运行注意事项:web.xml中的filter要注意先后顺序,CAS Single Sign Out Filter相关配置要放在原先配置的CAS Filter的前面(至少filter-mapping要在前面) 至此,步骤4完成。 测试:同时将cas_client1和cas_server发布一下,访问http://localhost:8080/cas_client1,将自动跳转到服务端的登录页面,填写相同的用户名和密码,则成功登录并跳转回客户端的。 步骤5:单点登录和退出 按照步骤4 的流程,再创建web工程,名字:cas_client2 同时部署server,client1,client2 测试1:访问client1,登录后可以直接访问client2 测试2:访问client2,登录后可以直接访问client1 测试3:登录client1,退出后可以不可访问client1和client2 如何退出?访问https://localhost:8443/cas_server/logout就退出了。 注意事项:访问形如http:// localhost:8080/cas_server/logout,这种通过http方式访问退出是不行的!!因为你不通过https来注销,CAS Server怎么"杀"掉它通过https发给你的TGC Cookie? 至此,步骤5完成,基本完成单点登录和退出功能。
  • 17. 大学本科的学习生活即将结束。在此,我要感谢所有曾经教导过我的老师和关心过我的同学,他们在我成长过程中给予了我很大的帮助。本文能够顺利完成,要特别感谢我的导师范胜波老师,感谢各位系的老师的关心和帮助。 最后向所有关心和帮助过我的人表示真心的感谢。 致谢