cas5.3.14二,cas介绍及登陆流程

CAS系统体系结构由两个物理组件组成,CAS服务端和CAS客户端,它们通过各种协议进行通信,CAS服务端负责完成对用户的认证工作 , 需要独立部署。CAS客户端负责处理受保护资源的访问请求,需要对请求方进行身份认证时,重定向到 CAS服务端进行认证

CAS Architecture Diagram

cas 的登陆流程如图

Ticket Granting Ticket(TGT) :

TGT是CAS为用户签发的登录票据,拥有了TGT,用户就可以证明自己在CAS成功登录过。TGT封装了Cookie值以及此Cookie值对应的用户信息。用户在CAS认证成功后,CAS生成cookie(叫TGC),写入浏览器,同时生成一个TGT对象,放入自己的缓存,TGT对象的ID就是cookie的值。当HTTP再次请求到来时,如果传过来的有CAS生成的cookie,则CAS以此cookie值为key查询缓存中有无TGT,如果有的话,则说明用户之前登录过,如果没有,则用户需要重新登录

Ticket-granting cookie(TGC)

存放用户身份认证凭证的cookie,在浏览器和CAS Server间通讯时使用,并且只能基于安全通道传输(Https),是CASServer用来明确用户身份的凭证。

Service ticket(ST) :

服务票据,服务的惟一标识码 , 由 CASServer 发出( Http 传送),用户访问Service时,service发现用户没有ST,则要求用户去CAS获取ST.用户向CAS发出获取ST的请求,CAS发现用户有TGT,则签发一个ST,返回给用户。用户拿着ST去访问service,service拿ST去CAS验证,验证通过后,允许用户访问资源

 CAS登录流程

 步骤 1:用户请求cas客户端(Protected App)受保护的资源,第一次访问,cas客户端发现它没有认证,就把请求重定向到cas服务端进行认证,但是在重定向的时候会把访问的受保护资源地址作为参数拼接到后面如下图抓包

步骤2:浏览器请求重定向地址(cas服务端的登陆地址),由于还没有登陆过,cas server 弹出登陆界面让用户进行登陆,用户输入用户名密码,提交 CAS认证成功后,CAS生成cookie(叫TGC),写入浏览器,同时生成一个TGT对象,放入自己的缓存,TGT对象的ID就是cookie的值。之后CAS Server 将浏览器请求重定向到刚才作为参数传入的受保护资源地址(cas client),并将ST作为参数拼接到后面

步骤3: 浏览器请求重定向地址(cas client) ,cas client 拿到ST参数后去 cas server 端进行ST的有效性验证,如果验证成功,cas server 会返回cas client 有关用户信息(可以在server端定义后面在讲),登陆成功后,CAS客户端应该在会话中保存登陆状态信息,并设置会话cookie并将浏览器转发回应用程序

步骤4:浏览器再次请求cas client ,并且在请求头中带有刚才设置的cookie,cas client 验证cookie ,验证通过,返回资源

步骤5: 当浏览器再次请求相同的cas client 资源的时候,在请求时浏览器就会带着上次保存的cookie ,cas client 验证cookie,如果没过时则返回资源,如果过时则重复以上登陆步骤

步骤6:当浏览器请求不同的cas client 资源的时候,会带着之前的cookie,cas client 验证不通过,重定向到cas server ,cas server验证发现在server 端已经登陆过,就把请求重定向到app2,app2 向 server 验证ST,然后重复 步骤3和步骤4

步骤7:登出

在cas client 和cas server 相互验证成功后就会建立连接,浏览器或CAS客户端向“登出URL”发起GET请求,CAS服务器销毁TGT和ST,并向所有已登陆的业务系统发出登出通知请求

结束

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值