CAS认证

工作需要学习CAS,所以边学边写博客来印证自己所学。

CAS——Central Authentication Service,集中式认证服务,顾名思义就是把一个网站群的用户认证挪到同一个地方去进行。

架构

CAS架构如下图:

cas_architecture

可以看出来,CAS主要是用在网站群里面。想想也是,如果有好多个网站都需要用户认证,不可能每个网站自己维护一套用户认证系统,不然维护和开发起来不是太麻烦了,所以需要把用户认证挪到同一个地方去集中地进行,这就是CAS的思想。

CAS服务器和App服务器通过协议进行交互,其实也就是相当于我们经常说的“解耦”,把用户认证的体系给单独剥离出来,使得用户认证体系可以在所有网站中复用。这么说来还有点微服务的意思?其实很多想法都是殊途同归的。

流程图

cas_flow_diagram

这是CAS主要的流程,简单来说就是在访问服务器的时候,如果发现没有session,就去CAS Server验证一下,CAS的TGT是为了不让用户重复登录的一个ticket。

CAS Server验证完了身份,就给一个ST,让用户拿给app,app用ST去CAS Server获取到用户的信息,于是创建session。