CAS实现单点登录流程
CAS实现单点登录
环境
客户端: www.app1.com
CAS服务器: www.cas-server.com
1.浏览器:发起请求 www.app1.com
2. 客户端:AuthenticationFilter 发现Session为空,ticket为空,重定向并保存service https://www.cas-server.com/cas/login?service=http://www.web.com/app
3. CAS服务器:展示 login 页面,默认提供 username / password 给用户验证
4. 浏览器:输入username / password
5. CAS服务器:对用户输入的 username / password 验证,若通过则生成Ticket Granting Ticket,存入服务器(默认为 Map 类型的 cache),同时将TGT id 作为 content创建 cookie 并发送到浏览器。
6. CAS服务器:通过TGT 生成service ticket. 重定向到 www.app1.com?ticket=ST-xxx
7. 客户端:AuthenticationFilter Filter 发现URL中有 ticket, 跳过 AuthenticationFilter过滤器,到达 Cas20ProxyReceivingTicketValidationFilter过滤器
8. 客户端:Cas20ProxyReceivingTicketValidationFilter 过滤器,使用7处的ticket 与service 作为参数验证
9. 客户端:请求CAS服务器验证https://www.cas-server.com/cas/serviceValidate?ticket=ST-xxx&&service=http://www.app1.com
10. 客户端: 解析 CAS服务器返回信息,生成 assertion (包含 username, validate info 等)
11. 客户端 设置 assertion 为 request 的 _const_cas_assertion_ 属性,同时会将assertion记录到session 中去。
12. 客户端:通过servlet 访问 http://www.web.com/app 服务,结束CAS的验证。
用户已成功登录,非第一次访问:
13. 客户端 通过重定向访问 www.app1.com
14. 客户端 AuthenticationFilter Filter 发现 session 中有Assertion, 结束本过滤器,转移到下一个过滤器 Cas20ProxyReceivingTicketValidationFilter.
15. 客户段 Cas20ProxyReceivingTicketValidationFilter 发现 本次访问的URL 无 ticket,结束本次过滤,转移到下一个过滤器,继续执行以后的 filter,通过servlet 访问 http://www.web.com/app 服务。
用户访问另一个应用:
16. 浏览器:请求www.app2.com
17.客户端:再次被重定向到CAS Server,CAS Server会主动获到TGC cookie
18.CAS服务器:如果 User 持有 TGC 且其还没失效,那么就走Step6 ,达到了 SSO 的效果;如果 TGC 失效,那么用户还是要重新认证 ( 走 Step3) 。
CAS实现单点登录流程的更多相关文章
- CAS学习笔记二:CAS单点登录流程
背景 由于公司项目甲方众多,各甲方为了统一登录用户体系实现单点登录(SSO)开始要求各乙方项目对接其搭建的CAS单点登录服务,有段时间对CAS的流程很迷,各厂商还有基于CAS进行二次开发的情况,所以对 ...
- CAS实现单点登录SSO执行原理及部署
一.不落俗套的开始 1.背景介绍 单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. CAS框架:CAS(Centra ...
- CAS的单点登录和oauth2的最大区别
CAS的单点登录时保障客户端的用户资源的安全 oauth2则是保障服务端的用户资源的安全 CAS客户端要获取的最终信息是,这个用户到底有没有权限访问我(CAS客户端)的资源. oauth2获取的最终信 ...
- cas实现单点登录原理
1.基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从 ...
- 如何利用tomcat和cas实现单点登录(1):配置tomcat的ssl和部署cas
如何利用tomcat和cas实现单点登录,借鉴了网上的很多教程,主要分为以下几个步骤: 一:下载好cas,tomcat之后,首先配置tomcat: 用鼠标右键点击"计算机"→选择& ...
- [精华][推荐]CAS SSO 单点登录框架学习 环境搭建
1.了解单点登录 SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用( ...
- CAS SSO单点登录框架学习
1.了解单点登录 SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用( ...
- [精华][推荐]CAS SSO单点登录服务端客户端实例
1.修改server.xml文件,如下: 注意: 这里使用的是https的认证方式,需要将这个配置放开,并做如下修改: <Connector port="8443" prot ...
- Spring Security 集成CAS实现单点登录
参考:http://elim.iteye.com/blog/2270446 众所周知,Cas是对单点登录的一种实现.本文假设读者已经了解了Cas的原理及其使用,这些内容在本文将不会讨论.Cas有Ser ...
随机推荐
- (原)error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5577534.html 在debug下使用intel的mkl库时(release下无此问题),莫名的出现 ...
- PHP方法的作用域
PHP支持6种方法作用域:public.private.protected.abstract.final和static,本文只讨论前5种作用域. public:公共作用域.(就像空气和阳光,天下公用) ...
- sshfs远程文件系统挂载
注意:转载请注明出处: http://www.programfish.com/blog/?p=145 sshfs简介: 一种通过SSH协议访问远程文件系统的用户空间文件系统.可以把远程主机上的文件系统 ...
- js编程风格
1.缩进层级,建议四个空格. 2.语句结尾使用分号. 3.行的长度不超过80个字符. 4.换行建议加两个缩进,即8个空格. 5.合理的利用空行. 6.命名: 6.1 变量,驼峰式大小写,有小写字母开始 ...
- Hdu1090
#include <stdio.h> int main() { int i,T,a,b; scanf("%d",&T); ;i<T;i++){ scanf ...
- jQuery多版本的使用,同一文件多个版本引用
<html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...
- 常用数据结构及复杂度 array、LinkedList、List、Stack、Queue、Dictionary、SortedDictionary、HashSet、SortedSet
原文地址:http://www.cnblogs.com/gaochundong/p/data_structures_and_asymptotic_analysis.html 常用数据结构的时间复杂度 ...
- LeeCode-Single Number II
Given an array of integers, every element appears three times except for one. Find that single one. ...
- POJ3026(BFS + prim)
Borg Maze Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10554 Accepted: 3501 Descri ...
- Clone使用方法详解【转载】
博客引用地址:Clone使用方法详解 Clone使用方法详解 java“指针” Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文 ...