面试专题—CAS单点登录篇

1.什么是单点登录?

单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
在这里插入图片描述

2.什么是CAS?

CAS框架:CAS(Central Authentication Service,即:统一认证服务)是实现SSO单点登录的框架。

3.CAS框架结构

CAS分为两部分,CAS Server和CAS Client。
CAS Server用来负责用户的认证工作,就像是把第一次登录用户的一个标识
存在这里,以便此用户在其他系统登录时验证其需不需要再次登录。
CAS Client就是我们自己开发的应用程序,需要接入CAS Server端。当用户
访问我们的应用时,首先需要重定向到CAS Server端进行验证,要是原来登陆过,就免去登录,重定向到下游系统,否则进行用户名密码登陆操作。
在这里插入图片描述

4. CAS中3个术语

Ticket Granting ticket (TGT) :可以认为是CAS Server根据用户名密码生成的一张票,存在Server端
Ticket-granting cookie (TGC) :其实就是一个Cookie,存放用户身份信息,由Server发给Client端
Service ticket (ST) :由TGT生成的一次性票据,用于验证,只能用一次。相当于Server发给Client一张票,然后Client拿着这个票再来找Server验证,看看是不是Server签发的。

5.CAS处理流程

1)、 用户访问网站,第一次来,重定向到 CAS Server,发现没有cookie,所以再重定向到CAS Server端的登录页面,并且URL带有网站地址,便于认证成功后跳转,形如 http ?/cas-server:8100/login?service=http ?/localhost:8081
注意:service后面这个地址就是登录成功后要重定向的下游系统URL。

2)、在登陆页面输入用户名密码认证,认证成功后cas-server生成TGT,再用TGT生成一个ST。 然后再第三次重定向并返回ST和cookie(TGC)到浏览器

3)、浏览器带着ST再访问想要访问的地址:
http ?/localhost:8081/?ticket=ST-25939-sqbDVZcuSvrvBC6MQlg5
注意:ticket后面那一串就是ST

4)、浏览器的服务器收到ST后再去cas-server验证一下是否为自己签发的,验证通过后就会显示页面信息,也就是重定向到第1步service后面的那个URL
首次登陆完毕。

5)、再登陆另一个接入CAS的网站,重定向到CAS Server,server判断是第一次来(但是此时有TGC,也就是cookie,所以不用去登陆页面了),但此时没有ST,去cas-server申请一个于是重定向到cas-server,形如:http: //cas-server:8100/login?service=http ?/localhost:8082 && TGC(cookie) (传目标地址和cookie)

6)、cas-server生成了ST后重定向给浏览器http ?/localhost:8082/?ticket=ST-25939-sqfsafgefesaedswqqw5-xxxx

7)、浏览器的服务器收到ST后再去cas-server验证一下是否为自己签发的,验证通过后就会显示页面信息(同第4步)

6.Cas的使用步骤

1.去网上下载CAS的源码
2.将这个源码打包成一个war包  源码先创建成MAVEN工程  ---->maven install
3.准备Tomcat的配置
4.将webapps目录下所有文件清空
5.将war文件放进去
6.启动Tomcat
7.测试:127.0.0.1:8888/cas/login  出现登陆页面  默认的用户名:casuser默认的密码:Mellon
8.登陆页面要更改成中文 在webapp/cas/WEB-INF/cas.properties文件中添加如下内容
locale.default=zh_CN
9.删除页面的数据  添加自己的登陆页面
发布了274 篇原创文章 · 获赞 80 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/BruceLiu_code/article/details/103255980