CAS-认证流程
从结构上看cas包括两个部分,CAS server 和CAS client 需要独立部署,主要负责用户的认证工作,CAS负责处理对客户端受保护资源的访问请求,需要登录时,重新定向到CAS Server
CAS Client 与受保护的客户端应用部署在一起,以Filter方式保护web应用的受保护资源,过滤从客户端过来的每一个web请求,同时CAS client会分析HTTP请求中是否包含请求service Ticket, 如果没有,则说明该用户是没有经过认证的,于是CAS Client会重定向用户请求到CAS server
3) 用户认证过程,如果用户提供了正确的Credentials,CAS Server会产生一个随机的Server Ticket ,然后,缓存该Ticket。并且重定向用户到CAS Client(附带刚才产生的Service Ticket)Service Ticket是不可以伪造的
5) CAS Client 和CAS Server之间完成了一个对用户的身份核实,用Ticket 查找userName,因为Ticket是CAS Server产生的。
总结如下:
访问服务: sso客户端发送请求访问应用系统提供的服务资源
定向认证:sso客户端会重定向用户请求到SSO服务器
用户认证:用户身份认证
发放票据:sso服务器会产生一个随机的service ticket
验证票据:sso服务器验证票据service ticket 的合法性,验证通过后,允许客户端访问服务
传输用户信息:sso服务器验证票据通过后,传输用户认证结果信息给客户端

用户首次登录时流程
1)用户浏览器访问系统A需要登录受限资源,此时进行登录检查,发现未登录,然后进行获取票据操作,发现没有票据
2)系统A发现请求需要登录,将请求重定向到认证中心获取全局票据操作,没有,进行登录操作。
3)认证中心呈现登录页面,用户登录,登录成功后,认证中心重定下请求到系统A,并附上认证通过令牌,此时认证中心同时生成了全局票据
4)此时再次进行登录检查,发现未登录,然后再次获取票据操作,此时可以获得票据(令牌),系统A与认证中心通信,验证令牌有效,证明用户已经登录
5)系统A将受限资源返回给用户


CAS-认证流程的更多相关文章
- CAS 认证
Central Authentication Service http session 保持机制 1. 用户向服务端发送密码,服务端生成与用户对应的 sessionid 2. 服务端将这个 sess ...
- SpringBoot中Shiro使用Pac4j集成CAS认证
SpringBoot中Shiro使用Pac4j集成CAS认证 Pac4j 简介 Pac4j与Shiro,Spring Security一样都是权限框架,并且提供了OAuth - SAML - CAS ...
- CAS认证(1):流程详解
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- CAS客户端认证流程
CAS登陆流程 Step 1:浏览器向CAS客户端发起登陆请求,CAS客户端生成“登陆URL”,并把浏览器重定向到该URL 登陆URL: https://${cas-server-host}:${ca ...
- CAS认证(3):验证用户信息
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- CWMP开源代码研究4——认证流程
TR069 Http Digest 认证流程 一 流程及流程图 1.1盒端主动发起Http Digest认证流程 盒端CPE ...
- Kerberos认证流程详解
Kerberos是诞生于上个世纪90年代的计算机认证协议,被广泛应用于各大操作系统和Hadoop生态系统中.了解Kerberos认证的流程将有助于解决Hadoop集群中的安全配置过程中的问题.为此,本 ...
- Shiro第二篇【介绍Shiro、认证流程、自定义realm、自定义realm支持md5】
什么是Shiro shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证.用户授权. spring中有spring security (原名Acegi),是一个权限框架,它和sp ...
- 最简单易懂的Spring Security 身份认证流程讲解
最简单易懂的Spring Security 身份认证流程讲解 导言 相信大伙对Spring Security这个框架又爱又恨,爱它的强大,恨它的繁琐,其实这是一个误区,Spring Security确 ...
- CAS—认证原理
CAS,Central Authentication Service—中央认证服务,是Yale 大学发起的一个企业级的.开源的项目,旨在为Web应用系统提供一种可靠的SSO解决方案.下面简单介绍SSO ...
随机推荐
- 20165310_JavaExp1
20165310_JavaExp1_Java开发环境的熟悉 一.Exp1 Exp1_1 实验目的与要求: 使用JDK编译.运行简单的Java程序: 使用Vim进行Java源代码编译: 利用Git上传代 ...
- STM32唯一的ID
请看如下程序: /*------------------------------------------------------------------------------------------ ...
- 在Visual C#中使用XML指南之读取XML
网站:http://www.yesky.com/155/1915155all.shtml#p1915155
- Delphi XE5 for Android (一)
Delphi XE5 出来了,支持Android的开发,试用了一下,有几个问题: 1.只支持ARM7的设备,不支持Inter设备.手上刚好有一个华硕K004,很遗憾用不上,只能用手机试了. 2.要支持 ...
- 发现vi出现此错误~/.vim/bundle/YouCompleteMe/third_party/ycmd/ycm_core.so: undefined symbol: clang_getCompletionFixIt
答: 安装更高版本的clang库 sudo apt-get install clang-7 sudo update-alternatives --install /usr/bin/clang clan ...
- 在ubuntu16.04上搭建视频服务器
推荐方案三:超级简单 方案一.hls (缺陷:需要花很多时间切片) 1.Distributor ID: Ubuntu Description: Ubuntu 16.04.3 LTS Release ...
- sql 之优化小技巧
SET NOCOUNT ON:不返回计数,如果存储过程中包含一些并不返回实际数据的语句,网络通信流量便会大量减少,可以显著提高应用程序性能:
- 初识C++继承
先是自己凭借自己在课堂上的记忆打了一遍.自然出了错误. //编译错误 #include <iostream> #include <cstdlib> using namespac ...
- python 无序表查找
def sequential_search(lis, key): for i in range(len(lis)): if(lis[i] == key): return i else: return ...
- 运行gulp提示:Task function must be specified
问题出在gulp版本上,以下是gulp3 VS gulp4的区别: gulp4最大的变化是不能像以前那样传递一个依赖的任务列表. gulp3中,如果有一个任务A.B和C的列表,你想在一个序列中运行 ...