对CAS单点登陆的理解

时间:2024-03-22 16:17:53

一.什么是CAS

         CAS是实现单点登陆的框架。用户只需要登陆一次就可以访问所有相互信任的应用系统。

         CAS通过票据之间的传递达到目的。

          对CAS单点登陆的理解

二.CAS的几大核心概念

1. 基本票据介绍

      首先明确:CAS只是控制分布式集群 的单点登陆,并不负责资源权限的控制

      TGT(登陆票据): 表示某用户登陆 整个系统的票据,Session实现。 对应多个Session

      TGC: TGT存放在Cookie的id,Cookie实现

         ST(服务票据): 表示用户访问 某单点系统的票据。

2.特殊票据介绍

       TGC: 用户持有的对自己身份信息的一种凭证。用户免输密码获得其他服务的Service Ticket

       PGT:  CAS Client持有的对用户身份信息的一种凭证。Web应用代理用户实现后端认证,而无需用户参数                               

2.几大组件

        多个应用系统,一个认证中心,多个浏览器

        一个Cookie,多个Session

        全局会话:Cookie实现,浏览器中保存相应的CookieId

        局部会话:Session实现,浏览器中保存相应的JessionId,存放 用户对象

三.登陆流程

3.1用户首次登陆流程

        1)用户访问系统A,系统A通过JessionID检查其是否有票据,若没有,则重定向到CAS Server进行登陆认证

        2)CAS Server通过CookID检查其是否登陆,若没登陆,则返回登陆页面进行验证,若通过,则生成登陆票据TGT,

              然后生成服务票据ST,然后重定向到应用系统A,此时浏览器记录CookieId。

        3)应用系统A收到ST后,发往CAS Server进行票据验证,若验证成功,创建Session保存用户对象,并返回给浏览器

              受限资源并携带JessionId。

3.2用户二次访问系统A

        1) 用户二次访问系统A,Filter过滤请求携带的JessionId,若可以从Session读取用户对象,则返回浏览器受限资源

3.3用户首次登陆系统B

         1) 用户首次访问系统B,检查没有JessionId,也没有ST,则重定向到CAS Server进行登陆认证

         2) CAS Server 通过检查请求中携带CookieId,生成相应服务的ST,重定向到系统B

         3) 系统B将ST发往CAS Server进行票据验证,若认证成功则创建Session保存用户对象,并返回给浏览器

              受限资源并携带JessionId。

四. 登出流程

 

五. CAS代理模式

 

六.  CAS安全性讨论