《深入探究CAS单点登录与Session的关系:Session是否会被清空》
一、CAS单点登录概述
图片来源于网络,如有侵权联系删除
(一)CAS简介
CAS(Central Authentication Service)是一种开源的单点登录协议,它旨在为多个应用系统提供集中式的身份验证服务,使得用户只需登录一次,就能够访问多个相互信任的应用程序,在一个企业内部,可能有办公自动化系统、人力资源管理系统、财务系统等多个不同的应用,通过CAS单点登录,用户无需在每个系统中单独进行登录操作。
(二)工作原理
1、用户请求访问一个受CAS保护的应用(称为服务提供者,Service Provider,简称SP)。
2、如果用户没有登录,SP会将用户重定向到CAS服务器(认证中心)的登录页面。
3、用户在CAS服务器上进行登录,CAS服务器验证用户的身份信息(如用户名和密码)。
4、一旦验证通过,CAS服务器会创建一个全局的会话(通常包含用户身份标识等信息),并生成一个Ticket(票据)。
5、CAS服务器将Ticket返回给SP,SP使用该Ticket向CAS服务器验证其有效性。
6、如果Ticket验证成功,SP就认为用户已经登录,可以为用户提供服务。
二、Session在CAS单点登录中的角色
图片来源于网络,如有侵权联系删除
(一)本地Session
在每个SP中,通常也会有自己的Session机制,当用户首次通过CAS登录并访问某个SP时,SP除了验证从CAS获取的Ticket外,可能会创建自己的本地Session来存储与用户交互相关的一些状态信息,如用户在该应用中的个性化设置、操作历史等。
(二)CAS全局Session
CAS服务器自身维护着一个全局的Session,这个Session主要用于跟踪用户的登录状态以及关联用户与各个SP之间的认证关系,它包含了如用户的基本身份信息、登录时间、IP地址等相关数据。
三、CAS单点登录过程中Session是否会清空
(一)从CAS服务器全局Session角度
1、正常登录流程下
- 在用户成功登录CAS服务器后,只要用户的会话没有超时,CAS的全局Session通常会保持不变,在一个设定的会话超时时间(如30分钟)内,用户连续访问多个受CAS保护的SP时,CAS服务器的全局Session不会被清空,它持续跟踪用户的登录状态,以便为后续的SP验证提供依据。
- 如果CAS服务器进行了一些特殊的维护操作,如服务器资源回收或者安全策略更新可能会影响到全局Session,但这些情况相对较少,并且通常是在有计划的情况下进行,当CAS服务器检测到某个用户的登录存在安全风险(如异地登录异常)时,可能会主动使该用户的全局Session失效,从而要求用户重新登录。
2、登出操作
图片来源于网络,如有侵权联系删除
- 当用户在某个SP或者CAS服务器的登出页面执行登出操作时,CAS服务器会清空其全局Session,这是为了确保用户的登录状态被完全终止,保障安全性,当全局Session被清空后,用户再次访问任何SP时都需要重新登录。
(二)从SP本地Session角度
1、与CAS交互相关
- 当SP从CAS获取到有效的Ticket并验证成功后,创建的本地Session主要是为了满足自身应用的业务需求,在某些情况下,SP可能会根据从CAS获取的用户信息来初始化本地Session,如果用户在CAS服务器的全局Session没有变化(如未超时、未登出),SP的本地Session通常也不会被无故清空,如果SP自身进行系统升级、重启或者出现故障恢复等情况,可能会导致本地Session被清空。
- 在SP与CAS之间的信任关系发生变化时,例如CAS重新颁发了新的认证密钥,SP可能会为了安全起见,清空与该用户相关的本地Session,然后要求用户重新通过CAS进行登录验证。
2、SP内部业务逻辑影响
- SP自身的业务逻辑也可能导致本地Session的清空,在一个在线购物的SP中,如果用户完成了一次购物订单并且结账后,SP可能会根据业务需求清空部分与购物车相关的Session数据,同时保留用户的基本登录信息等其他Session数据,或者,如果用户在SP中执行了密码修改操作,SP可能会重新验证用户身份并清空旧的Session,重新创建一个新的Session以确保安全性。
在CAS单点登录中,CAS服务器的全局Session和SP的本地Session是否会被清空取决于多种因素,包括正常的登录登出流程、服务器维护操作、业务逻辑需求以及安全策略等,理解这些因素对于正确构建和维护基于CAS的单点登录系统至关重要。
评论列表