CAS 认证

摘要:
CAS首次登录到系统A1。用户浏览器访问系统A以登录受限资源。2.系统A发现请求需要登录。认证中心显示登录页面,认证中心将请求重定向到系统A4。系统A再次检查登录。CAS第二次登录到系统B1。浏览器访问另一个应用程序B以登录受限资源。2.系统B发现请求需要登录,而认证中心发现它已经登录。证明用户已登录。登录状态决定用户登录认证中心后,用户随后访问系统应用程序的时间。

CAS 介绍

CAS 是 Central Authentication Service 的缩写,中央认证服务,为 Web 应用系统提供一种可靠的 SSO 解决方案。

CAS 第一次登录系统A

1、用户浏览器访问系统A需登录受限资源,此时进行登录检查,发现未登录,然后进行获取票据操作,发现没有票据。

2、系统A发现该请求需要登录,将请求重定向到认证中心,进行登录。

3、认证中心呈现登录页面,登录成功后,认证中心重定向请求到系统A,并附上认证通过令牌,此时认证中心同时生成了全局票据。

4、系统A再次进行登录检查,发现未登录,然后再次获取票据操作,系统A与认证中心通信,验证令牌有效,证明用户已登录。

5、系统A将受限资源返给用户。

CAS 认证第1张

CAS 第二次登录系统B

1、浏览器访问另一应用B需登录受限资源,此时进行登录检查,发现未登录,然后进行获取票据操作,发现没有票据。

2、系统B发现该请求需要登录,将请求重定向到认证中心,获取全局票据操作,获取全局票据,可以获得,认证中心发现已经登录。

3、认证中心发放临时票据,并携带该令牌重定向到系统B。

4、再次登录检查,发现未登录,获取票据操作,此时可以获得票据,系统B与认证中心通信,验证令牌有效,证明用户已登录。

5、系统B将受限资源返回给客户端。

登录状态判断

用户到认证中心登录后,用户和认证中心之间建立起了会话,我们把这个会话称为全局会话。当用户后续访问系统应用时,我们不可能每次应用请求都到认证中心去判定是否登录,这样效率非常低下,这也是单Web应用不需要考虑的。我们可以在系统应用和用户浏览器之间建立起局部会话,局部会话保持了客户端与该系统应用的登录状态,局部会话依附于全局会话存在,全局会话消失,局部会话必须消失。用户访问应用时,首先判断局部会话是否存在,如存在,即认为是登录状态,无需再到认证中心去判断。如不存在,就重定向到认证中心判断全局会话是否存在。

登出

1、客户端向应用A发送登出 Logout 请求。

2、应用A取消本地会话,同时通知认证中心,用户已登出。

3、应用A返回客户端登出请求。

4、认证中心通知所有用户登录访问的应用,用户已登出,将它们的局部会话全部销毁。

免责声明:文章转载自《CAS 认证》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇商业价值:谷歌娱乐影音之路上的硬件产品c++ 控制台输入参数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL(5.0~5.7)Linux环境

 安装服务 1.MySQL-5.0.40 1.1.Source Installation Overview(lines 74 of install-source) 系统默认可能会安装三个mysql的包: mysql-libs mysql mysql-devel 从下往上依赖关系。 源码包安装mysql #检查环境 rpm -aq | grep...

基于WPF系统框架设计(3)-Fluent Ribbon界面布局

一个系统框架除了功能菜单导航,有系统内容显示区域,系统状态栏。 Silver: Blue: Black: 系统界面设计,就不进行技术细节介绍了,主题以框架设计为主,Xaml源码参考: <Fluent:RibbonWindow x:Class="TLAgent.SecurityManager.WPF.MainWindow" xml...

【底层原理】用户进程缓冲区和内核缓冲区

  常常听到有程序员会跟你讨论:“我们在读写文件的时候,系统是有缓存的”。但实际上有一部分人把用户进程缓存区和系统空间缓存区的概念混淆了,包括这两种缓冲区的用法和所要解决的问题,还有其它类似的概念。本文就来区分一下不同的缓冲区概念(主要针对类unix平台)。   用户进程和操作系统的关系,首先我用一张图来解释“用户进程和操作系统的关系   这是一个计算机...

LINUX 上 实现SNTP (时间同步)

Network Time Protocol (NTP) 也是RHCE新增的考试要求. 学习的时候也顺便复习了一下如何设置Linux的时间,现在拿出来和大家分享 设置NTP服务器不难但是NTP本身是一个很复杂的协议. 这里只是简要地介绍一下实践方法和上次一样,下面的实验都在RHEL5上运行  https://bbs.csdn.net/topics/33019...

Dubbo分布式日志追踪

使用dubbo分布式框架进行微服务的开发,一个大系统往往会被拆分成很多不同的子系统,并且子系统还会部署多台机器,当其中一个系统出问题了,查看日志十分麻烦。 所以需要一个固定的流程ID和机器ip地址等来把所有的日志进行染色处理,当然可以通过调用其他接口时参数进行传递,但是这样子对代码的耦合性太强,对代码有侵入性。 我们可以通过dubbo的filter 结合s...

虚拟机安装win10系统

一、创建一个新的虚拟机 默认典型安装,下一步 安装向导来,如图,先在映像中选中ISO镜像文件,再选择稍后安装  找到对应的版本,选择对应的版本(这里是Windows10)  选择虚拟机的存放位置,给虚拟机起名  选择磁盘大小(最好默认吧) 完成(我的虚拟机名修改过) 二、在虚拟机上安装Windows10系统 1、安装虚拟机前,需要去虚拟机的设置...