CAS基础概念

CAS是什么?

CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS 是 耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。

什么是单点登录?

单点登录SSO(Single Sign ON),指在多个应用系统中,只需登录一次,即可在多个应用系统之间共享登录。如:在学校登录了OA系统,再打开科研、教务系统,都会实现自动登录。

统一身份认证CAS(Central Authentication Service)是SSO的开源实现,利用CAS实现SSO可以很大程度的降低开发和维护的成本。

CAS干什么的?

统一身份认证CAS(Central Authentication Service)是SSO的开源实现,利用CAS实现SSO可以很大程度的降低开发和维护的成本。

CAS怎么用的?

CAS由CAS Server和CAS Client两部分组成。

  1. CAS Server:单点验证服务器。以北师大为例,其CAS Server为cas.bnu.edu.cn

  2. CAS Client:共享CAS Server登录态的客户端。如:人事系统(rs.bnu.edu.cn)、研究生系统(graduate.bnu.edu.cn)、科研系统(kygl.bnu.edu.cn)

CAS三个重要术语:TGT(Ticket Granting Ticket)、TGC(Ticket Granting Cookie)和ST(Service Ticket)。

  1. TGT为用户登录后生成的票根,包含用户的认证身份、有效期等,存储于CAS Server中,类似于服务器会话。

  2. TGC存储于cookie中,类似于会话ID,用户与CAS Server交互时,帮助用户查找相应的TGT。

  3. ST为CAS Server签发的一张一次性票据,CAS Client使用ST与CAS Server进行交互,获取用户的验证状态。

CAS单点登录的完成流程如下:

  1. 用户通过浏览器访问CAS Client的某个界面,如访问研究生管理信息系统(graduate.bnu.edu.cn)。

  2. 当CAS Client判断用户需要进行身份认证时,携带service返回302状态码,指示浏览器重定向到CAS Server,如:https://cas.bnu.edu.cn?service=https://graduate.bnu.edu.cn。service指向用户原访问的页面。

  3. 浏览器携service重定向到CAS Server。

  4. CAS Server获取并校验用户cookie中携带的TGC,若成功则身份认证成功;否则将用户重定向到CAS Server提供的登录页,如:https://cas.bnu.edu.cn/login?service=https://graduate.bnu.edu.cn,由用户输入用户名、密码,再完成身份认证。

  5. 若用户之前登录过系统,那么CAS Server可以获取用户的TGC,根据TGC获取TGT。若首次登录,则CAS Server会首先生成TGT。每次验证,CAS Server根据TGT签发一个ST,然后把ST拼接到service中,同时将相应TGC设置到用户cookie中(域为 CAS Server),并返回302状态码,指示浏览器重定向到service,如:https://graduate.bnu.edu.cn?ticket=xxxxxxxxxxxx

  6. 浏览器存储TGC,并携带ST重定向到service。

  7. CAS Client取得ST(即请求参数的ticket)后,会向CAS Server请求验证该ST的有效性。

  8. 若CAS Server验证该ST有效,就告知CASClient该用户有效,并返回该用户信息。如工号、学号。CAS Client获取用户信息后,可以使用session的形式管理用户会话。后续的交互请求无需再重定向到CAS Server,CAS Client直接返回用户请求的资源即可。

    CAS Client获取用户信息后,可以使用session的形式管理用户会话。后续的交互请求无需再重定向到CAS Server,CAS Client直接返回用户请求的资源即可。

在这里插入图片描述

参考资料:
百度百科
https://blog.csdn.net/tpriwwq/article/details/125740936

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值