权限框架——CAS之工作原理

        CAS:Central Authentication Service,中央认证服务,是实现SSO的一个框架。由于本篇博客主要介绍CAS的工作原理,所以首先要简单介绍下SSO的相关内容。

SSO概要

SSO:Single Sign On,单点登录,简单说就是用户一次登录就可以访问多个项目,这样就免去用户访问多个系统时进行的多次登录过程,也避免了用户要访问N个系统要记住N套用户名和密码所带来的尴尬。
要实现SSO,要解决2点问题:
1.存储登录信息;
2.验证登录信息。
接下来通过介绍CAS的工作原理来看看CAS是如何实现单点登录的。

CAS工作原理

说明:此工作原理基于CAS协议1.0展开,CAS1.0协议只适用于参与SSO的项目全部为Web应用,且应用间相互独立,没有复杂的继承关系。
首先介绍几个相关的概念
1.CAS Server:CAS服务端,负责中心认证,后面内容提到的CAS,如无特殊说明,默认是指CAS Server
2.TGT:Ticket Grangting Ticket,CAS为用户签发的登录票据,用户拥有了TGT,才可以证明自己成功登录过。其封装了Cookie值以及此Cookie值对应的用户信息,存储于CAS Server端,当验证请求到来时,CAS以传过来的Cookie值为key查询缓存中有无TGT,有则说明用户已登录过。
3.ST:Service Ticket,CAS为用户签发的访问某一Service(参与SSO的系统)的票据。用户访问Service时,发现用户没有ST,则要求用户去CAS获取ST,然后重定向CAS,发出获取ST的请求,CAS发现用户有TGT,则签发一个ST,返回给用户。用户拿着ST去访问Service,Service拿ST去CAS验证,通过则允许用户访问资源
下面对TGT,ST的概念简单描述:
TGT可以理解为用户唯一标识,存储于CAS Server端,其对应用户的Cookie值保存用户登录信息。
ST可理解为项目判断用户是否有访问权限的依据。
登录验证步骤:
1.访问系统A,第一次访问,没有ST,重定向至CAS服务端,没有传递Cookie,进入登录页面进行登录,成功后CAS保存用户TGT,向浏览器写入Cookie以及访问系统A的ST,重定向到访问系统A的地址;
2.系统A收到访问请求以及ST,去CAS服务端验证ST的有效性,通过后访问系统资源;

3.用户访问系统B,第一次访问,没有ST,重定向到CAS服务端,验证Cookie,使用TGT签发ST,重定向到系统B资源,系统B拿着ST到CAS服务端验证,通过后访问系统B资源


总结

        从上面介绍的工作原理可以看出,要想实现SSO,要考虑的东西还是很多的,CAS只是SSO的其中一种解决方案,当然,明白了其中的原理,我们也可以自己做一个类似于CAS Server的一个公共服务,提供单点登录的中央认证。

你可能感兴趣的:(【管理工具】)