Cas(01)——简介

Cas的全称是Centeral Authentication Service,是对单点登录SSO(Single Sign On)的一种实现。其由Cas Server和Cas Client两部分组成,Cas Server是核心,而Cas Client通常就对应于我们的应用。一个Cas Server可以对应于多个Cas Client。它允许我们在一个Client进行登录以后无需再让用户输入用户名和密码进行认证即可访问其它Client应用。

Cas Server的主要作用是通过发行和验证Ticket(票)来对用户进行认证和授权访问Client应用,用于认证的凭证信息都是由Cas Server管理的。而Cas Client就对应于我们真正的应用,当然其中会使用到Cas相关的类,用于与Cas Server进行交互。官网有两张图最能体现Cas的架构和原理。

如你所见,在第一次访问应用app1时,由于没有登录会直接跳转到Cas Server去进行登录认证,此时将附带查询参数service在Cas Server的登录地址上,表示登录成功后将要跳转的地址。此时Cas Server检查到没有之前成功登录后生成的SSO Session信息,那么就会引导用户到登录页面进行登录。用户输入信息提交登录请求,Cas Server认证成功后将生成对应的SSO Session,以及名为CASTGC的cookie,该cookie包含用来确定用户SSO Session的Ticket
Granting Ticket(TGT)。之后会生成一个Service Ticket(ST),并将以ticket作为查询参数名,以该ST作为查询参数值跳转到登录时service对应的URL。如:

http(s)://domain/app1?ticket=ST-2-59fS6KxvmykibRXyoPJE

之后的操作对用户来说都是透明的,即不可见的。app1之后将以service和ticket作为查询参数请求Cas Server对service进行验证,验证通过后Cas Server将返回当前用户的用户名等信息。app1就会给当前用户生成其自身的Session,以后该用户以该Session都可以成功的访问app1,而不需要再去请求Cas Server进行认证。当该用户再去访问app2的时候,由于其在app2上没有对应的Session信息,将会跳转到Cas Server的登录地址,Cas Server此时发现其包含名为CASTGC的cookie,将获取其中包含的TGT来获取对应的SSO
Session,然后会将用户重定向到app2对应的地址,以Service Ticket作为查询参数。之后app2会向Cas Server发送请求校验该Service Ticket,校验成功后app2将建立该用户对应的Session信息,以后该用户以该Session就可以自由的访问app2了。

综上所述,我们知道,各系统之间的单点登录是通过Cas Server生成的SSO Session来交流的,而用户与实际的应用系统进行交互的时候,各应用系统将建立单独的Session,以满足用户与该系统的交互需求。

(注:本文是基于cas 3.5.2所写)

(注:原创文章,转载请注明出处。)

时间: 2024-11-05 19:29:20

Cas(01)——简介的相关文章

CAS系列:CAS Server简介与安装

CAS是什么? JA-SIG CAS 是一个企业级的.开源的基于Java2EE的SSO解决方案.它有多种用不同语言编写的客户端.CAS是由耶鲁大学(Yale)开发. CAS Server版本与Java版本 CAS 3.1 要部署CAS3.1,至少得JDK1.5 . On the Windows PC, building CAS has been tested with the following: JDK 1.5.0_8 and higher JDK 1.6 and higher On Linu

Node.js 教程 01 - 简介、安装及配置

目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好. 谁适合阅读本教程?

ITEXT 使用详解-01 简介与安装

1pdf简介 2为什么使用itext 现在网页大多提供下载,自动生成pdf 表单的功能. itext 这个api 很好的解决对pdf处理的难题. 简化了对pdf的处理. itext 就是一个用于创建,修改,生成pdf的一个JAVA 组件.可以通过这个itext jar 用于显示报表,修改pdf 内容,通过java 代码自动填充报表等一系列功能. 3 安装 1,首先下载这个itext jar 文件.下载链接如下 http://sourceforge.net/projects/itext/files

ElasticSearch学习笔记-01 简介、安装、配置与核心概念

一.简介 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进行数据索引. Lucene只是一个框架,要利用它的功能,需要使用JAVA,并且在程序中集成Lucene.更糟的是,Lucene非常复杂,需要做很多的学习了解,才能明白它是如何运行的. Elasticsearch使用Lucene作为内部引擎,但是在使用它做全文搜索时,只需要使用统一开发好的API即可,

Power BI基础系列-01简介篇

Power BI是一套商业分析软件,它可以连接数百个数量源.简化数据准备并提供即席查询,即席查询(Ad Hoc)是用户根据自己的需求,灵活地选择查询条件,系统可以根据用户选择的条件生成对应的报表. Power BI简介 Power BI 是Microsoft公司自主研发发布的最新可视化工具,它结合了Power Query.Power Privot.Power View和Power Map等一系列工具的经验成果.最重要的是它可以将我们在Excel里的数据通过报表的形象呈现给用户,并且在Excel

Java单体应用 - Markdown - 01.简介

原文地址:http://www.work100.net/training/monolithic-markdown.html 更多教程:光束云 - 免费课程 简介 序号 文内章节 视频 1 概述 2 特性 3 用途 请参照如上章节导航进行阅读 1.概述 Markdown 是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 2.特性 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档 语言在 2004 由约翰·格鲁伯(英语:John G

Sterling B2B Integrator与SAP交互 - 01 简介

公司近期实施上线了SAP系统,由于在和客户的数据交互中采用了较多的EDI数据交换,且多数客户所采用的EDI数据并不太相同(CSV,XML,X12,WebService),所以在EDI架构上选择了IBM产品Sterling B2B Integrator作为中间件把数据统一转换SAP IDOC格式与之交互. 简单来讲可以分成二部分: Inbound:Sterling拿到客户数据文件后转换成SAP的EDI IDOC格式,SAP接收IDOC入系统. Outbound:SAP系统处理完数据后发送IDOC给

01.简介

1.  什么是 AngularJS - 一款非常优秀的前端高级 JS 框架 - 最早由 Misko Hevery 等人创建 - 2009 年被 Google 公式收购,用于其多款产品 - 目前有一个全职的开发团队继续开发和维护这个库 - 有了这一类框架就可以轻松构建 SPA 应用程序 - 轻松构建 SPA(单一页面应用程序) - 单一页面应用程序: + 只有一个页面(整个应用的一个载体) + 内容全部是由AJAX方式呈现出啦的 - 其核心就是通过指令扩展了 HTML,通过表达式绑定数据到 HTM

SQL Server LocalDB 学习笔记 01 简介

SQL Server 2012 新增产品 SQL Sever Express轻量级版本 转为开发人员创建 无需管理 兼用T-SQL语言 编程接口与SQL Server Express一样 适用于小型应用环境.嵌入式环境 好处:无需再笔记本安装维护一个庞大的SQL Server实例了. 特性: 兼容其他SQL Server版本,使用sqlservr.exe作为服务进程,使用相同的客户端访问接口,兼容T-SQL编程语言. 无需安装多个LocalDB,不同程序可以并行执行多个LocalDB进程,所有的

vue.js初级教程--01.简介

Vue特点 渐进式框架 采用自底向上增量开发的设计 核心库只关注视图层 轻量级 22kb min+gzip 高性能 渲染性能:支持条件.循环.服务端渲染方式 更新性能:数据驱动.响应式 特性 数据驱动,支持双向数据绑定,异步批量DOM更新 组件化,支持组件独立.组件复用以及异步加载 模块化,模板.数据.外数据.方法.生命周期函数.样式 指令,支持内置指令和自定义指令 虚拟DOM 为什么需要虚拟DOM DOM是很慢的,其元素非常庞大,页面的性能问题鲜有由JS引起的,大部分都是由DOM操作引起的.如