统一身份认证(CAS)的工作流程

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

        统一身份认证CAS(Central Authentication Service)是SSO的开源实现,利用CAS实现SSO可以很大程度的降低开发和维护的成本。PS:CAS是由耶鲁大学发起的企业级开源项目,历经20多年的完善,具有较高的稳定性、安全性。国内多数高校的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直接返回用户请求的资源即可。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 主要介绍CAS SSO的认证流程。有关这方面的内容再网上也有很多资料,写这篇总结目的一来是自己在理解这块内容的时候...
    spilledyear阅读 9,952评论 1 17
  • 转载自https://blog.csdn.net/wang379275614/article/details/46...
    QuantRuu阅读 2,052评论 0 49
  • CAS,Central Authentication Service—中央认证服务,是Yale 大学发起的一个企业...
    ackier阅读 1,729评论 0 0
  • 1. CAS 简介 1.1. What is CAS ? CAS ( Central Authenti...
    人在码途阅读 9,885评论 3 51
  • 1.体系结构 从结构体系看,CAS 包括两部分: CAS Server 和 CAS Client 。 CAS Se...
    codeMan_6616阅读 2,128评论 0 0

友情链接更多精彩内容