统一身份认证-CAS配置实现
更新时间:2024-06-04 18:49:01 阅读量: 综合文库 文档下载
- 统一身份认证平台推荐度:
- 相关推荐
一、背景描述
随着信息化的迅猛发展,政府、企业、机构等不断增加基于
Internet/Intranet 的业务系统,如各类网上申报系统,网上审批系统,OA 系统等。系统的业务性质,一般都要求实现用户管理、身份认证、授权等必不可少的安全措施,而新系统的涌现,在与已有系统的集成或融合上,特别是针对相同的用户群,会带来以下的问题:
1、每个系统都开发各自的身份认证系统,这将造成资源的浪费,消耗开发成本,并延缓开发进度;
2、多个身份认证系统会增加系统的管理工作成本;
3、用户需要记忆多个帐户和口令,使用极为不便,同时由于用户口令遗忘而导致的支持费用不断上涨;
4、无法实现统一认证和授权,多个身份认证系统使安全策略必须逐个在不同的系统内进行设置,因而造成修改策略的进度可能跟不上策略的变化;
5、无法统一分析用户的应用行为
因此,对于拥有多个业务系统应用需求的政府、企业或机构等,需要配置一套统一的身份认证系统,以实现集中统一的身份认证, 并减少信息化系统的成本。单点登录系统的目的就是为这样的应用系统提供集中统一的身份认证,实现“一点登录、多点漫游、即插即用、应用无关”的目标,方便用户使用。
二、CAS简介
CAS(Central Authentication Service),是耶鲁大学开发的单点登录系
统(SSO,single sign-on),应用广泛,具有独立于平台的,易于理解,支持代理功能。CAS系统在各个大学如耶鲁大学、加州大学、剑桥大学、香港科技大学等得到应用。Spring Framework的Acegi安全系统支持CAS,并提供了易于使用的方案。Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全系统能够轻松地适用于复杂的安全需求。Acegi安全系统在国内外得到了广
泛的应用,有着良好的社区环境。 CAS的设计目标
(1)为多个Web应用提供单点登录基础设施,同时可以为非Web应用但拥有Web前端的功能服务提供单点登录的功能; (2)简化应用认证用户身份的流程;
(3)将用户身份认证集中于单一的Web应用,让用户简化他们的密码管理,从而提高安全性;而且,当应用需要修改身份验证的业务逻辑时,不需要到处修改代码。
CAS的实现原理
CAS(Central Authentication Server)被设计成一个独立的Web应用。它目前的实现是运行在HTTPS服务器的几个Java Servlet上(而客户端可以灵活采用http和https的方式)。
CAS创建一个位数很长的随机数(ticket)。CAS把这个ticket和成功登录的用户以及用户要访问的service联系起来。例如,如果用户peon重定向自service S,CAS创建ticket T,这个ticket T允许peon访问service S。这个ticket是个一次性的凭证;它仅仅用于peon和仅仅用于service S,并且只能使用一次,使用之后马上会过期,即ticket通过验证,CAS立即删除该ticket,使它以后不能再使用。这样可以保证其安全性。关于ST,在取一个ST时,即使用deleteTicket(ticketId)同时将一次性的ST删除;而对于TGT或PT,则通过resetTimer(ticketId)以更新TGT或PT的时间。在CAS服务端返回的ST中只能得出用户名。
下载地址:http://downloads.jasig.org/
三、统一认证配置实现 1、基础套件
cas-server-3.4.11 spring3
hibernate3(可选)
dbcp(数据库连接池,可选)
slf4j(log4j)
2、概念
1)、 通道安全性
TCP/IP 客户端 服务器 图:非ssl(HTTP)
客 户 端 TCP/IP 客户端安全插件 SSL SSL SSL加密 服务器前置(Proxy) TCP/IP 服 务 器 图:ssl(HTTPS)
单向认证:传输的数据经过加密,但不会校验客户端的来源
双向认证:传输的数据经过加密,并需要校验客户端。如果客户端浏览器没有导入客户端证书,则访问不了web系统。 2)、CAS服务端
3)、CAS客户端 4)、应用服务端 5)、客户端
3、配置实现 1.1 Tomcat(http)
1)、修改配置
将cas-server-webapp-3.4.11.war解压成cas:
图1
在默认情况下,只要用户名和密码是一样的,就可以登录,因此需要根据实际情况作调整。大多数情况下,应用都将用户信息存放于数据库中,数据库中的用户密码也可能是经过加密的。
定位deployerConfigContext.xml,修改认证逻辑,如下图所示:
图2
图3
定位ticketGrantingTicketCookieGenerator.xml,将cookieSecure设为false,即不启用ssl。
图4
定位warnCookieGenerator.xml,将cookieSecure设为false,即不启用ssl。
图5
2)、发布:将cas文件夹拷至tomcat的wabapps下 3)、开发2个应用,验证单点登录的有效性
创建名为webdemo1和webdemo2的2个工程应用,2工程应用下各有一个jspdemo.jsp, jsp页面中增加一链接,链接实现工程间的相互切换,然后将cas-client-core-3.2.1.jar、commons-logging-1.1.jar拷到工程的lib目录下。 注:
(1)、文件的内容及web.xml见实际文件
(2)、web.xml中,serverName的参数值为cas客户端(应用服务器)的地址。
4)、启动tomcat,验证
1.2 Tomcat(https)
1)、将deployerConfigContext.xml中的p:requireSecure参数设为true。
2)、将ticketGrantingTicketCookieGenerator.xml、warnCookieGenerator.xml中的cookieSecure设为true,即启用ssl。(参见图4、图5) 3)、制作安全证书,并将证书导入信任的证书库 为服务器生成证书:
keytool -genkey -alias aeasoft -validity 3650 -keyalg RSA -keysize 512 -keystore aeasoft.keystore -dname \localhost,ou=cn,o=cn,l=cn,st=cn,c=cn\
导出证书:
keytool -export -alias aeasoft -file aeasoft.crt -storepass changeit -keystore aeasoft.keystore
将证书导入jre的证书库:
keytool -import -v -trustcacerts -storepass changeit -alias aeasoft -file aeasoft.crt -keystore D:\\jdk1.6.0_20\\jre\\lib\\security\\cacerts
4)、将证书库拷入conf,并修改tomcat_home/conf/server.xml参数,启用https
5
)
、
使
用
https://localhost:8443/webdemo1/jspdemo.jsp或
者
https://localhost:8443/webdemo2/jspdemo.jsp 访问应用,验证单点配置是否成功。
如果不想看到以上提示的界面,右键单击“aeasoft.crt”,然后选择“安装证书”完成证书的安装。
1.3 weblogic(https)
1)、将证书导入jre的证书库
keytool -import -v -trustcacerts -storepass changeit -alias aeasoft -file aeasoft.crt -keystore D:\\bea\\jrockit90_150_04\\jre\\lib\\security\\cacerts
2) 、检查证书
keytool -list -keystore D:\\bea\\jrockit90_150_04\\jre\\lib\\security\\cacerts -alias aeasoft 3)、启动weblogic,然后配置ssl
(开启SSL)
(设置证书库)
(证书设置)
3)、发布webdemo1和webdemo2应用 4
)
、
使
用
https://localhost:7002/webdemo1/jspdemo.jsp
或
https://localhost:7002/webdemo2/jspdemo.jsp 验证。
4、 定制登录页面
修改ês%\\WEB-INF\\view\\jsp\\default\%ui下的相关文件即可。
如果需要更进一步定制登录界面,可参考cas.properties和\\WEB-INF\\classes\\ default_views.properties。
5、 获取用户信息
方式1:request.getUserPrincipal().getName() 方式2:request.getRemoteUser()
6、 Session的处理
一般的web应用:登录成功后,根据用户信息初始化session,有时也可能将一些用户相关的信息缓存到session,提高效率,当然,也可以会采用延迟初始化的策略,在需要时才初始化,这与单点登录后的web应用的处理方式相同。
单点登录后的web应用:先判断session(为空或session未缓存信息),再根据用户获取数据并缓存。
Object o = session.getAttribute(\if (null == o){
//初始化
}else{
// } 7、 登出
8、 Keytool其它命令 查看证书:
keytool -list -keystore cacerts -alias aeasoft 删除证书:
keytool -delete -keystore cacerts -alias aeasoft
9、 .net等其它应用的单点和LDAP的集成 待学习。
6、 Session的处理
一般的web应用:登录成功后,根据用户信息初始化session,有时也可能将一些用户相关的信息缓存到session,提高效率,当然,也可以会采用延迟初始化的策略,在需要时才初始化,这与单点登录后的web应用的处理方式相同。
单点登录后的web应用:先判断session(为空或session未缓存信息),再根据用户获取数据并缓存。
Object o = session.getAttribute(\if (null == o){
//初始化
}else{
// } 7、 登出
8、 Keytool其它命令 查看证书:
keytool -list -keystore cacerts -alias aeasoft 删除证书:
keytool -delete -keystore cacerts -alias aeasoft
9、 .net等其它应用的单点和LDAP的集成 待学习。
正在阅读:
统一身份认证-CAS配置实现06-04
口腔医学生见习报告(共6篇)07-08
某电子股份有限公司员工培训体系07-04
小学生作文教案07-09
老爸的眼“伤”作文600字06-27
种菜小学生一年级看图写话作文06-14
对我影响最大的那个人作文600字07-13
第3章 集成运算放大器习题集答案04-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 身份认证
- 统一
- 配置
- 实现
- CAS
- 福建省德化一中12-13学年高一第二次质量检查数学试卷
- 分析政府如何解决作为国内热点的民生问题
- EQL - Windows安装步骤
- 2012高考数学总结
- 沙坪坝2015年第一季度公开招聘教育事业单位工作人员65名
- 盛世华庭外脚手架施工方案
- NZK330-16.7538538 型汽轮机 启动、运行说明书 - 图文
- 5轴数控龙门铣床机械结构设计(毕业论文)
- 2014版质谱联用仪项目(立项及贷款用)可行性研究报告编制机构服
- 新课标人教版七年级数学上册教案全册 doc
- 经济林栽培学2013期末试题
- “我爱我家”安全知识竞赛题库6
- 《孙权劝学》中考阅读题及答案(2004-2017)
- 家畜寄生虫病学复习资料
- 计算书
- 上海小学自然学科(科教版)备课——一年级(下)
- 啦啦操社团教学计划
- 精品--2015-2016年中国国内中国物流行业市场调研分析报告 - 图文
- 飞越老人院影评
- 2011届高三数学一轮复习教案:第五章第3课 数列的求和