统一身份认证CAS配置实现解析Word文件下载.docx
- 文档编号:19755706
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:9
- 大小:351.72KB
统一身份认证CAS配置实现解析Word文件下载.docx
《统一身份认证CAS配置实现解析Word文件下载.docx》由会员分享,可在线阅读,更多相关《统一身份认证CAS配置实现解析Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
Acegi安全系统,是一个用于SpringFramework的安全框架,能够和目前流行的Web容器无缝集成。
它使用了Spring的方式提供了安全和认证安全服务,包括使用BeanContext,拦截器和面向接口的编程方式。
因此,Acegi安全系统能够轻松地适用于复杂的安全需求。
Acegi安全系统在国内外得到了广泛的应用,有着良好的社区环境。
CAS的设计目标
(1)为多个Web应用提供单点登录基础设施,同时可以为非Web应用但拥有Web前端的功能服务提供单点登录的功能;
(2)简化应用认证用户身份的流程;
(3)将用户身份认证集中于单一的Web应用,让用户简化他们的密码管理,从而提高安全性;
而且,当应用需要修改身份验证的业务逻辑时,不需要到处修改代码。
CAS的实现原理
CAS(CentralAuthenticationServer)被设计成一个独立的Web应用。
它目前的实现是运行在HTTPS服务器的几个JavaServlet上(而客户端可以灵活采用http和https的方式)。
CAS创建一个位数很长的随机数(ticket)。
CAS把这个ticket和成功登录的用户以及用户要访问的service联系起来。
例如,如果用户peon重定向自serviceS,CAS创建ticketT,这个ticketT允许peon访问serviceS。
这个ticket是个一次性的凭证;
它仅仅用于peon和仅仅用于serviceS,并且只能使用一次,使用之后马上会过期,即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)、通道安全性
图:
非ssl(HTTP)
ssl(HTTPS)
单向认证:
传输的数据经过加密,但不会校验客户端的来源
双向认证:
传输的数据经过加密,并需要校验客户端。
如果客户端浏览器没有导入客户端证书,则访问不了web系统。
2)、CAS服务端
3)、CAS客户端
4)、应用服务端
5)、客户端
3、配置实现
1.1Tomcat(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客户端(应用服务器)的地址。
<
init-param>
<
param-name>
serverName<
/param-name>
<
param-value>
localhost:
8080<
/param-value>
/init-param>
4)、启动tomcat,验证
1.2Tomcat(https)
1)、将deployerConfigContext.xml中的p:
requireSecure参数设为true。
2)、将ticketGrantingTicketCookieGenerator.xml、warnCookieGenerator.xml中的cookieSecure设为true,即启用ssl。
(参见图4、图5)
3)、制作安全证书,并将证书导入信任的证书库
为服务器生成证书:
keytool-genkey-aliasaeasoft-validity3650-keyalgRSA-keysize512-keystoreaeasoft.keystore-dname"
cn=localhost,ou=cn,o=cn,l=cn,st=cn,c=cn"
-storepasschangeit-keypasschangeit
导出证书:
keytool-export-aliasaeasoft-fileaeasoft.crt-storepasschangeit-keystoreaeasoft.keystore
将证书导入jre的证书库:
keytool-import-v-trustcacerts-storepasschangeit-aliasaeasoft-fileaeasoft.crt-keystoreD:
\jdk1.6.0_20\jre\lib\security\cacerts
4)、将证书库拷入conf,并修改tomcat_home/conf/server.xml参数,启用https
5)、使用https:
//localhost:
8443/webdemo1/jspdemo.jsp或者https:
8443/webdemo2/jspdemo.jsp访问应用,验证单点配置是否成功。
如果不想看到以上提示的界面,右键单击“aeasoft.crt”,然后选择“安装证书”完成证书的安装。
1.3weblogic(https)
1)、将证书导入jre的证书库
\bea\jrockit90_150_04\jre\lib\security\cacerts
2)、检查证书
keytool-list-keystoreD:
\bea\jrockit90_150_04\jre\lib\security\cacerts-aliasaeasoft
3)、启动weblogic,然后配置ssl
(开启SSL)
(设置证书库)
(证书设置)
3)、发布webdemo1和webdemo2应用
4)、使用https:
7002/webdemo1/jspdemo.jsp或https:
7002/webdemo2/jspdemo.jsp验证。
4、定制登录页面
修改%cas%\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未缓存信息),再根据用户获取数据并缓存。
Objecto=session.getAttribute("
key"
);
if(null==o){
//初始化
}else{
//
}
7、登出
ahref="
8080/cas/logout"
>
logout<
/a>
8、Keytool其它命令
查看证书:
keytool-list-keystorecacerts-aliasaeasoft
删除证书:
keytool-delete-keystorecacerts-aliasaeasoft
9、.net等其它应用的单点和LDAP的集成
待学习。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 统一 身份 认证 CAS 配置 实现 解析