本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
CAS全称Central Authentication Service,中文名集中式认证服务。
CAS是一种针对万维网的单点登录协议。它的目的是允许一个用户访问多个应用程序,而只需提供一次凭证(如用户名和密码)。它还允许web应用程序在没有获得用户的安全凭据(如密码)的情况下对用户进行身份验证。CAS即指协议,也指实现了该协议的软件包。
CAS最早由Yale发起,目前有三个版本,即v1,v2,v3。
相关定义
Client
终端用户或者是 WEB 浏览器
Server
统一认证服务所在的服务器
Service
终端用户或者 WEB 浏览器试图访问的应用
Proxy
作为代理的服务,用户通过该服务(代理)访问Back-end service(后端应用)
Back-end service
用户通过代理访问的应用,这个应用就被称为后端服务(Back-end service) 。它也被称作“target service”目标服务
TGT
Ticket Grangting Ticket 。TGT是CAS为用户签发的登录票据,拥有了TGT,用户就可以证明自己在CAS成功登录过。TGT封装了Cookie值以及此Cookie值对应的用户信息。当HTTP请求到来时,CAS以此Cookie值为key查询缓存中有无TGT ,如果有的话,则相信用户已登录过。
ST
Service Ticket 。ST是CAS为用户签发的访问某一service的票据。用户访问service时,service发现用户没有ST,则要求用户去CAS获取ST。用户向CAS发出获取ST的请求,CAS发现用户有TGT,则签发一个ST,返回给用户。用户拿着ST去访问service,service拿ST去CAS验证,验证通过后,允许用户
TGC
Ticket Grangting Cookies 保持TGT信息的cookies,保存在使用浏览器的客户端
PGT
Proxy TicketGranting Ticket。Proxy Service认证成功后,CAS会生成PGT,并将值回传给Proxy Service 。Proxy Service拿到PGT后,就可以为Target Service做代理,为其申请PT。
PGTIOU
Proxy TicketGranting Ticket IOU。PGTIOU是CAS协议中定义的一种附加票据,它增强了传输、获取PGT的安全性。
PT
Proxy Ticket。PT是用户访问Target Serivce的票据。用户经由Proxy Service去CAS获取到PT后,再访问Target Serivce,Target Serivce去CAS验证PT成功后,才允许用户访问。
Web登录流程图
网址定义
CAS作为一个规范,规定了一系列需要暴露的服务端
/login | 登录 |
/logout | 登出 |
/validate | 验证ST |
/serviceValidate | 验证ST [CAS 2.0] |
/proxyValidate | 验证PT [CAS 2.0] |
/p3/serviceValidate | ST验证 [CAS 3.0] |
/p3/proxyValidate | PT验证 [CAS 3.0] |
参考文档
CAS标准:https://apereo.github.io/cas/4.2.x/protocol/CAS-Protocol-Specification.html
CAS实现:https://www.apereo.org/projects/cas
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯