cas认证时序图

 

名次解释

名词 解释
brower 用户的浏览器
tomcat 业务所在的web服务器
cas cas服务器
service参数 业务方的访问地址,即tomcat的访问地址,在集群中应该是nginx的对外地址,最终应该是用户浏览器访问业务的地址
tgt cas服务器根据账号的用户名密码等信息进行加密生成的凭证,单机随cas应用存储在同一个jvm中,集群应该存储在redis,memcached等高性能分布式存储系统中.一个用户对应一个tgt
tgc 可以理解为tgt的index,即tgt得主键,存储在用户浏览器的cookie中.随用户登录而生成,随用户注销而删除(还有cookie过期时间)
location 重定向
st令牌 根据tgt生成的一次性的访问令牌,业务方发送st令牌和service参数访问cas服务端进行校验
spring security spring 家族的一款权限管理组件,基于servlet规范,类似的有apache 的shiro.都只能很好的进行垂直权限管理

用户第一次登录

sequenceDiagram
brower->>tomcat: 发起登录请求
Note over tomcat: 本地未登录,通知redirect,附带service参数
tomcat-->>brower: location
brower->>cas:访问统一认证
Note over cas: 当前用户未登录
cas-->>brower: 返回登录页面
Note over brower:用户输入账号,密码
brower->>cas: 认证
Note over cas:认证通过,生成tgt令牌,写入tgc,通知redirect,附带st令牌
cas-->>brower: location
brower->>tomcat:重新访问tomcat
Note over tomcat:检测到有st令牌.
tomcat->>cas:发送st令牌和service参数进行验证
Note over cas:进行验证
cas-->>tomcat:返回登录用户名
Note over tomcat:本地进行用户的认证和授权,写入session
tomcat-->>brower: 返回允许的资源

第二次登录

sequenceDiagram
brower->>tomcat: 发起登录请求
Note over tomcat: 本地已登录
tomcat-->>brower: 返回允许的资源

用户注销登录

sequenceDiagram
brower->>tomcat: 发起注销登录请求
Note over tomcat: 本地spring security注销,redirect到cas server,附带service参数
tomcat-->>brower:location
brower->>cas:cas注销请求
Note over cas: 删除tgt,tgc.
cas->>tomcat: 循环通知每一个tomcat进行注销
tomcat-->>cas:注销成功
cas-->>brower: 通知用户注销成功,重定向到登录页面.