当前位置:文档之家› CAS单点登录系统实操指南

CAS单点登录系统实操指南

CAS单点登录系统实操指南CAS单点登录系统实操指南 (1)1. CAS单点登录介绍 (3)1.1. 什么是单点登录 (3)1.2. 什么是CAS (3)2. CAS服务端部署及配置 (5)2.1. 基础部署配置 (5)2.2. 去除https认证 (7)2.3. 登录数据源设置 (8)2.3.1 密码未加密处理 (8)2.3.2 密码MD5加密配置 (9)2.4. 登录页面的极简改造 (10)3. CAS客户端搭建 (11)3.1. 搭建工程并添加依赖 (11)3.2. 单点登录配置 (12)3.3. 单点登出配置 (14)3.3.1 未重定向登出 (14)3.3.2 重定向地址登出 (15)3.4. 获取登录用户信息配置 (15)4. CAS客户端与SpringSecurity集成 (16)4.1. 搭建工程并添加依赖 (16)4.2. 修改和创建配置文件 (18)4.3. 创建Spring-security认证脚本 (22)4.4. 获取登录名 (22)1. CAS单点登录介绍1.1. 什么是单点登录单点登录(Single Sign On),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。

SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

我们目前的系统存在诸多子系统,而这些子系统是分别部署在不同的服务器中,那么使用传统方式的session是无法解决的,我们需要使用相关的单点登录技术来解决。

1.2. 什么是CASCAS 是Yale 大学发起的一个开源项目,旨在为Web 应用系统提供一种可靠的单点登录方法,CAS 在2004 年12 月正式成为JA-SIG 的一个项目。

CAS 具有以下特点:【1】开源的企业级单点登录解决方案。

【2】CAS Server 为需要独立部署的Web 应用。

【3】CAS Client 支持非常多的客户端(这里指单点登录系统中的各个Web 应用),包括Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。

从结构上看,CAS 包含两个部分:CAS Server 和CAS Client。

CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到CAS Server。

下图是CAS 最基本的协议过程:SSO单点登录访问流程主要有以下步骤:1. 访问服务:SSO客户端发送请求访问应用系统提供的服务资源。

2. 定向认证:SSO客户端会重定向用户请求到SSO服务器。

3. 用户认证:用户身份认证。

4. 发放票据:SSO服务器会产生一个随机的Service Ticket。

5. 验证票据:SSO服务器验证票据Service Ticket的合法性,验证通过后,允许客户端访问服务。

6. 传输用户信息:SSO服务器验证票据通过后,传输用户认证结果信息给客户端。

2. CAS服务端部署及配置本文采用版本为CAS.5.3,Tomcat.8.5.23,mysql8.0+。

2.1. 基础部署配置第一步:下载官方提供的CAS部署工程和对应版本Tomcat。

解压后的CAS 工程目录列表如下:第二步:双击build.sh运行程序,会自动开始构建war包,构建完成后会在同级目录出现target文件夹,进入文件夹目录如下:第三步:将cas.war包拷贝到tomcat目录/webapps/目录下,启动tomcat (注意端口是否被占用),cas.war将会被自动解压。

出现下图所示,表示启动成功。

第四步:浏览器输入地址:localhost:9001/cas/login,会弹出登录界面。

第五步:输入初始用户名和密码:casuser/Mellon,登录成功,表示基础部署完成。

注:如果要修改登录密码,进入tomcat目录webapps\cas\WEB-INF\classes 下,修改application.properties文件中的ers字段值,如下:2.2. 去除https认证CAS默认使用的是HTTPS协议,如果使用HTTPS协议需要SSL安全证书(需向特定的机构申请和购买)。

如果对安全要求不高或是在开发测试阶段,可使用HTTP协议。

这里通过修改配置,让CAS使用HTTP协议。

第一步:修改webapps\cas\WEB-INF\classes\application.properties文件,在最后添加如下语句:第二步:修改webapps\cas\WEB-INF\classes\services\HTTPSandIMAPS-10000001.json文件,添加http协议访问。

注:如果客户端没有经过https认证对CAS服务端进行访问,将会出现未认证授权的服务的界面提示。

2.3. 登录数据源设置2.3.1 密码未加密处理第一步:新建数据库userdb,建立用户登录的数据库表tb_user,并添加字段username,password。

插入一条数据,如用户名密码为:demo:123456。

第二步:修改cas工程目录pom.xml文件,添加如下依赖。

第三步:进入cas工程目录,使用命令行,先执行清除命令,再执行安装命令。

第三步:将构建完成target目录下的cas.war文件拷贝到tomcat目录下,运行tomcat,解压war包。

第四步:修改tomcat目录下的webapps\cas\WEB-INF\classes\application.properties文件,注释掉用户名密码登录的ers字段,并添加数据库相关配置。

第五步:重启tomcat,并使用第一步插入的用户名密码进行登录,如果出现登录成功界面,表示数据源设置成功。

2.3.2 密码MD5加密配置修改tomcat目录下的webapps\cas\WEB-INF\classes\application.properties文件,添加md5加密相关配置。

2.4. 登录页面的极简改造进入tomcat目录\webapps\cas\WEB-INF\classes\templates,修改casLoginView.html文件,这个是CAS自带的登录页面,极简更改如下:3. CAS客户端搭建3.1. 搭建工程并添加依赖搭建Maven的web工程,并在pom.xml文件中添加cas客户端依赖和servlet依赖,以及tomcat插件。

配置如下:3.2. 单点登录配置第一步:修改web.xml文件,在文件中添加两个登录的必填配置,一个是负责用户的认证工作,另一个是负责对Ticket的校验工作,配置如下:第二步:修改或添加index.html页面,这个页面是登录成功后,进入的第一个页面,用于验证登录是否成功。

第三步:启动程序,访问客户端设置地址,便会进入CAS登录界面,输入用户名和密码,登录成功进入index.jsp页面。

3.3. 单点登出配置3.3.1 未重定向登出第一步:在web.xml文件中添加单点登出配置。

第二步:在index.html添加登出按钮,并添加登出的访问地址。

(注意:本地测试这里必须填127.0.0.1,不能填localhost,否则登出会失效)第三步:测试登出操作,退出成功,返回退出成功界面。

3.3.2 重定向地址登出第一步:修改3.3.1章节的第二步index.html文件,添加重定向地址,如下:第二步:修改CAS服务端tomcat目录文件webapps\cas\WEB-INF\classes\ application.properties,添加允许重定向字段,并重启tomcat。

第三步:测试,点击退出登出后,将会重定向到百度页面。

3.4. 获取登录用户信息配置在web.xml文件中,添加如下配置。

4. CAS客户端与SpringSecurity集成4.1. 搭建工程并添加依赖创建Maven工程,并在pom.xml文件中添加Spring、Spring-security相关依赖,以及tomcat插件。

4.2. 修改和创建配置文件第一步:创建spring-security和CAS相关的配置文件spring-security.xml,注意修改端口和CAS服务访问地址。

第二步:创建springmvc.xml文件,用于添加包扫描和注解配置。

第三步:修改web.xml文件,添加认证拦截器和spring文件扫描器。

第四步:创建登录成功后展示页面index.jsp,添加登录按钮。

第五步:创建退出成功后展示页面index2.jsp,注意这里的页面名字和spring-security.xml文件中的service重定向路径名字必须一致。

4.3. 创建Spring-security认证脚本在路径com.demon.cas.service下创建UserDetailServiceImpl.java脚本,并继承UserDetailsService接口(注意这里的路径需要与上面配置文件中认证类路径一致)此时,在浏览器中输入访问地址localhost:9092,会自动进入CAS登录页面,登录成功后,进入index.jsp页面。

4.4. 获取登录名创建UserController.java脚本,添加springmvc相关注解,开放外部访问接口。

登录成功后,在浏览器地址栏输入localhost:9092/findLoginUser.do 即可在控制台看到输出的登录名。

相关主题