CAS(Central Authentication Service)
SSO (Single Sign On)
Center:CAS 认证中心
A:某应用服务
B:另一个应用服务
Ticket Granted Ticket ( TGT ):全局票
Ticket Granted Cookie ( TGC ): 存放 TGT id 的 cookie
Service Ticket ( ST ):某个服务的票据
用户访问 A
A:登录了吗(cookie 中的 SessionId),没有,有票吗(ST),没有,那去 Center 吧(携带了的url,一会还得回来呢)
Center:有全局票吗(TGC 中的 TGT id,不是 SessionId),没有,那你登录吧。。。
Center:登录成功,创建TGT,并将 TGT 的 id 写到用户的 cookie(TGC)中,同时生成一个随机的 ST 让用户重定向到 A 的 url
A:登录了吗(cookie 中的 SessionId),没有,有票吗(ST),有,A去 Center 验证 ST 有效性,有效,创建 Session,并将 SessionId 写到用户 cookie 里,用户以后就用该 SessionId 与 A 进行通信
用户访问 B
B:登录了吗(cookie 中的 SessionId),没有,有票吗(ST),没有,那去 Center 吧(携带B的url,一会还得回来呢)
Center:有全局票吗(TGC 中的 TGT id,不是 SessionId),有
Center:生成一个随机的 ST 让用户重定向到 B 的 url
B:登录了吗(cookie 中的 SessionId),没有,有票吗(ST),有,B 去 Center 验证 ST 有效性,有效,创建 Session,并将 SessionId 写到用户 cookie 里,用户以后就用该 SessionId 与 B 进行通信
用户登出 A
A 删除Session 并清除用户的 Cookie 中的 SessionId
A 通知 Center 用户登出了
Center 删除 TGT 并清除用户的 TGC(存放 TGT id 的 cookie)
Center 通知所有该用户访问的应用
各个应用删除Session 并清除用户的 Cookie 中的 SessionId
