CAS架构及原理

CAS 架构及原理
CAS架构及原理

CAS系统有两部分组成,分别为cas server和cas client, 这两个物理部件之间可以通过多个协议进行交互。

CAS 服务端
CAS服务端是用springframework建成的java servlet,主要任务是认证用户登录和授权启用CAS的service(简称cas 客户端)。而这种认证主要是通过下发和验证tickets实现的。在用户成功登陆之后,CAS服务端会生成一个ticket-granting ticket(TGT)和建立一个SSO的session。通过服务器的转发,将service ticket(ST)发给发出cas请求的服务。这个ST就会在接下来的这个会话中使用,如果需要CAS验证,就把这个ticket发给server,然后server给予反馈。

CAS 客户端
CAS客户端主要两种不同的实现。一个CAS客户端可以是通过CAS支持协议进行交互的任何应用。一个CAS客户端也可以是一个软件安装包,可以与其他软件集成在一起进行CAS验证。

简化的工作流程:

  1. web请求application
  2. application发送认证请求给CAS服务端
  3. CAS服务端进行认证,认证成功建立cookie和返回ST否则返回认证失败.
  4. 返回认证结果到application.

PS:
这里SSO只是负责在多个应用之间免重复登陆,并不控制session。有一句话说的很好,CAS只负责验证,而session的管理都归application负责。