登录流程
发布时间:2025-03-08 13:05:57
来源: 亿登科技
CAS是一种基于Ticket(票据)的、开放式的单点登录协议,广泛应用于Java及多语言异构环境下的企业级应用系统集成。要熟悉CAS协议,需要先了解CAS协议中的三个核心角色和两种关键票据。
三个核心角色
|
角色
|
术语
|
描述
|
|
用户
|
User
|
通过浏览器访问系统的终端操作者。
|
|
CAS客户端
|
CAS Client
|
受保护的Web应用(如OA系统、CRM系统)。它负责过滤对应用的请求,并在需要时重定向用户到CAS服务端进行认证。通常以过滤器/拦截器形式集成在应用中。
|
|
CAS服务端
|
CAS Server
|
独立的认证中心。负责统一管理用户凭证(用户名/密码)、发放Ticket、验证Ticket。
|
两种关键票据
|
票据
|
简称
|
描述与生命周期
|
|
TGT
|
Ticket Granting Ticket
|
存放在用户浏览器的Cookie中(通常是TGC)。代表用户已在CAS服务端成功登录。用户登录一次后,浏览器持有TGC,后续访问其他应用无需再次输入密码。
|
|
ST
|
Service Ticket
|
临时的一次性票据。由CAS服务端发放给特定的某个服务(应用)。ST有严格的有效期(通常为几秒到几分钟)且只能使用一次,用于防止重放攻击。
|
登录流程

流程图说明
1.用户请求
用户访问应用的受保护资源,应用的CAS客户端过滤器拦截请求,发现Session中无用户信息。客户端生成一个包含自身地址的service参数(如 http://app.a.com/),并返回302响应,指示浏览器重定向到CAS服务端的登录页面。
2.服务端认证
亿登IDaaS返回登录页面,要求用户提交凭证(账密/人脸/指纹),CAS服务端验证凭证通过后,创建TGT,并生成一个与该用户及service参数绑定的一次性有效的ST,将浏览器重新定向回应用,并在URL中附上生成的ticket参数。
3.应用验证票据
浏览器携带ST再次访问应用,应用的CAS客户端拦截器捕获到ticket参数,向CAS服务端的/serviceValidate端点提交ticket和service进行验证,CAS服务端验证ST有效(且未被使用过)后,销毁该ST,并返回一个包含用户名的XML/JSON响应给应用的后端,应用的后端接收到用户信息,创建自己的局部会话(如HttpSession),并返回受保护的资源给浏览器。