一张图说明CAS协议原理

1名词解释

Single Sign On,SSO: 单点登录,通过一对ID和密码实现不同系统的无缝登录功能,可以将用户管理中心化,避免每个系统都需要一套单独的账户配置和用户管理实现。目前广泛应用了LDAP和CAS协议。

LightweightDirectory Access Protocol, LDAP: 轻量目录访问协议,一种支持TCP/IP协议的目录结构协议,常用来统一存储和查询企业员工信息、公用证书等信息,可视为一种特殊的数据库。

CAS Server:CASServer 负责完成对用户的认证工作 , 需要独立部署 , CAS Server 会处理用户名 / 密码等凭证(Credentials) 。

CAS Client:负责处理对客户端受保护资源的访问请求,需要对请求方进行身份认证时,重定向到 CAS Server 进行认证。(原则上,客户端应用不再接受任何的用户名密码等Credentials)。

Ticket-grantingticket, TGT:CAS协议中存放用户身份认证凭证的票据,在浏览器和CAS Server间通讯时使用,并且只能基于安全通道传输(https),是CASServer用来明确用户身份的凭证。

Service ticket,ST:CAS协议中服务票据,服务的惟一标识码 , 由CASServer发出(http传送),通过客户端浏览器到达业务服务器端;一个特定的服务只能有一个惟一的ST,并且只能使用一次。

2 详细原理

CAS实现单点登录简单来说可以归纳为一个cookie(TGC),多个session,多次重定向,多个ticket。下面根据CAS官网给出的时序图来说明原理:

时序图主要分为三个阶段:用户首次访问App1,用户再次访问App1,用户访问App2.

用户首次访问App1时,App1将请求重定向到CAS Server. CAS Server发现不存在用户登录的SSO session,将登录表单页面返回给用户。用户填写表单,CAS Server校验用户信息,通过后生成CASTGC,一个cookie,包含了TGT。TGT是SSO session的 key 。同时根据TGT生成了ST,然后返回给用户。用户再次请求App1(这里就是重定向到App1),请求里包含了ST。app1收到后有ST的请求后,请求CAS Server 去校验ST的合法性,检验通过后,返回一个校验成功的XML文件,然后生成用户在App1中的session并重定向到用户浏览器,生成了App1的session cookle.

用户再次请求App1时,校验session cookie通过后,并返回资源给用户。

用户访问别的应用App2时,App2将请求重定向到CAS Server. CAS Server 根据请求中的TGT检查存在用户登录的SSO session,这个时候不需要重新登录,而是直接生成新的ST重定向到App2。App2收到ST后向CAS Server发出请求去校验ST的合法性。后面的流程就和用户首次访问App1一样。

因为用户访问别的应用App2不需要重新登录,从而实现了单点登录。下面的协议简化了时序图

 

 

  • 28
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值