CAS入门

  1. 云栖社区>
  2. 博客>
  3. 正文

CAS入门

dandan911217 2015-05-27 21:32:00 浏览1413
展开阅读全文

           接触CAS有一段时间,一直以来总听到别人说这是块难啃的骨头,于是我饿了,想啃一啃,CAS的原理其实还是比较好理解的,但是在实现的过程中确实出现了很多问题,而且CAS的Server和Client如果版本不合适的话,也会有这样那样的问题。下面和大家共享一下我做Cas的一些feeling。

      CAS1.0

     CAS1.0也称为基础模式

     适用场合

          参与SSO的应用都为Web应用,且各应用之间相互独立,没有复杂的集成关系

   CAS2.0 

    CAS2.0称为代理模式

    适用场合

   参与SSO的应用存在非Web应用(CAS使用Cookie,故非Web应用不宜于直接做CAS的客户应用)应用之间,存在集成关系。

     下面了解一下CAS的基本知识:

         CAS协议定义了一组术语,一组票据,一组接口。         

         术语:Client、Server、Service、Proxy、Target。
         接口:/login、/logout、/validate、/serviceValidate、/proxyValidate、/proxy
         票据:TGT、ST、PGT、PGTIOU、PT

         Client、CAS Server、Service三者,是通过各种票据的传递与验证,来实现单点认证功能的。


         下面解释一下这些基本知识:票据,我想大家听起来都会比较熟悉,它就是个通行证,比如当你登录QQ的时候如果你记住密码、自动登录,你有了票据就可以登录,如果你没有记住密码,就需要有一个输入密码验证的过程。那票据呢又分了很多种。

           TGT(TicketGrangtingTicket)CAS为用户签发的登录票据,拥有了TGT,用户就可以证明自己在CAS成功登录过。TGT封装了Cookie值以及此Cookie值对应的用户信息。当HTTP请求到来时,CAS以此Cookie值为key查询缓存中有无TGT,如果有的话,则相信用户已登过。比如你之前登录过淘宝,当你再登的时候它会首先用票据核对,有对应的用户信息,则可以登录。

      ST(ServiceTicket )CAS为用户签发的访问某一service的票据。用户访问service时,service发现用户没有ST,则要求用户去CAS获取ST。用户向CAS发出获取ST的请求,CAS发现用户有TGT,则签发一个ST,返回给用户。用户拿着ST去访问serviceserviceSTCAS验证,验证通过后,允许用户访问资源。举个形象的例子,比如说你是想去看一场演唱会,你想进去人家首先会验票,一看你没票,人家就会先让你去买票,买完票以后验票的人会看看你是不是**的粉丝啊,于是查一下用户信息(TGT),有你,那你就会被安排的粉丝团。这个例子中演唱会就是一场服务,粉丝身份就是你进入粉丝专用座的TGT。

       

网友评论

登录后评论
0/500
评论
dandan911217
+ 关注