cas登录传递的参数_CAS实现单点登录

1.简介

SSO单点登录

在多个相互信任的系统中,用户只需要登录一次就可以访问其他受信任的系统。

新浪微博与新浪博客是相互信任的应用系统。

*当用户首次访问新浪微博时,新浪微博识别到用户未登录,将请求重定向到认证中心,认证中心也识别到用户未登录,则将请求重定向到登录页。

*当用户已登录新浪微博访问新浪博客时,新浪博客识别到用户未登录,将请求重定向到认证中心,认证中心识别到用户已登录,返回用户的身份,此时用户无需登录即可使用新浪博客。

*只要多个系统使用同一套单点登录框架那么它们将是相互信任的。

CAS

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

CAS包含CAS Client 和 CAS Server两部分

CAS Client:要使用单点登录的Web应用,将与同组下的Web应用构成相互信任的关系,只需在web应用中添加CAS提供的Listener和Filter即可成为CAS Client ,其主要负责对客户端的请求进行登录校验、重定向和校验ticket工作。

CAS Server:主要负责对用户的用户名/密码进行认证,颁发票据等,需要单独的进行部署。

*同组下的任意一个Web应用登录后其他应用都不需要登录即可使用。

2.CAS服务器搭建

2.1 去CAS官网下载CAS源码包

将下载的源码包中的cas-server-webapp工程导入ide中,将工程打包为war包,直接放入tomcat下的webapp中运行。

*CAS 5.0版本以上需要jdk1.8和gradle进行构建、4.X版本使用maven进行构建(maven 3.3+)

2.2 在Tomcat中开启HTTPS协议

*由于CAS Server默认使用HTTPS协议进行访问,因此需要在Tomcat中开启HTTPS协议。

1.使用JDK提供的keytool命令生成秘钥库。

2.修改tomcat配置并开启8443端口

在tomcat/conf/server.xml中添加:

2.3 进入CAS认证中心

*由于首次访问,客户端浏览器进程所占用的内存中不存在TGC Cookie,所以CAS Server认为用户未进行登录,因此将请求转发到登录页面。

*默认账号:casuser/Mellon

*当登录后再次访问登录处理时,将会直接转发到已登录页面。

*CAS Server根据Cookie (TGC是否能够匹配TGT)来判断用户是否已进行登录,默认情况下TGC Cookie位于浏览器进程所占用的内存中,因此当关闭浏览器时Cookie失效(TGC失效),此时再访问CAS登录处理时将需要重新进行登录,当CAS服务器重启时,TGT将会失效(位于服务器内存),此时也需要重新进行登录。

*当用户登录后,CAS Server会维护TGT与用户身份信息的关系,所有CAS Client可以从CAS Server中获取当前登录的用户的身份信息。

*在已登录的状态下访问注销地址将会提示注销成功,其经过以下步骤:

1.清除保存在客户端浏览器进程所占用的内存中的TGC Cookie(设空)

2.清除保存在服务器的TGT。

3.通过HTTP请求分别通知当前用户所有已登录的CAS Client进行注销登录操作,销毁用户对应的Session对象。

*当注销成功后,此时再访问登录页面时需重新登录。

2.4 修改为自定义数据源

1.修改cas-server-webapp/WEB-INF/deployerConfigContext.xml

注释配置:

新增配置:

2.在cas-server-webapp/WEB-INF/lib包中添加:cas-server-support-jdbc.jar、mysql-connector-java.jar

2.5 修改为HTTP方式访问

1.修改cas-server-webapp/WEB-INF/cas.properties

tgc.secure=falsewarn.cookie.secure=false

2.修改cas-server-webapp/WEB-INF/classes/services/HTTPSandIMAPS-10000001.json

"serviceId" : "^(https|imaps|http)://.*"

*修改serviceId的值即可。

3.删除cas-server-webapp/WEB-INF/view/jsp/default/ui/casLoginView.jsp页面中校验是否是HTTPS协议的标签块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值