码迷,mamicode.com
首页 > 其他好文 > 详细

cas工作原理解析

时间:2015-08-03 09:01:05      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:cas   单点登录   

场景介绍:

    用户先访问基础系统查询数据,访问基础系统时,用户需要先去cas登录,之后访问考试系统时就不需要再次登录了。

讲解登录过程:

1.登录基础系统:

     技术分享

   1.1 第一次访问基础系统,在浏览器输入"http://basic/index.html"访问基础系统,基础系统的cas客户端发现没有传Cookie过来,所以通过浏览器直接重定向cas服务端的登陆页;

   1.2 在登陆页输入用户名/密码后,cas服务端生成Cookie、TGT、ST,在cas服务端保存TGT,Cookie、ST返回到浏览器,浏览器可以用ST访问基础系统了。

   1.3 cas服务端重定向到地址:"http://basic/index.html?ticket= ST-1-qRPh34B1xhe4dquzz",cas客户端拿着ST到cas服务端去验证,验证通过则跳转到目标页面。

2.登录考试系统:

   技术分享

   2.1 第一次访问考试系统,在浏览器输入"http://exam/index.html"。第一次访问没有ST,所以需要到cas服务端去申请一个ST;

   2.2 由于在访问基础系统时,已经在本地浏览器保存了一份TGC信息,所以需要拿着浏览器的TGC信息去服务端申请ST,申请地址为"http://exam/index.html3.https://cas.company.com/login?service=http://exam/index.htm CASTGC";

  2.3  cas服务端验证TGC是不是cas服务端生成的,如果是,则用TGT签发一个ST保存到浏览器;

  2.4  cas服务端重定向到地址:"http://exam/index.html?ticket= ST-2-qRPh78V1xhe4dq",cas客户端拿着ST到cas服务端去验证,验证通过则跳转到目标页面。

  通过上述讲解我们发现,登录基础系统后,再次访问考试系统时是不需要重新登录的,实现了单点登录的效果。


注释:

TGT(Ticket Grangting Ticket)TGT是CAS为用户签发的登录票据,拥有了TGT,用户就可以证明自己在CAS成功登录过。TGT封装了Cookie值以及此Cookie值对应的用户信息。用户在CAS认证成功后,CAS生成cookie(叫TGC),写入浏览器,同时生成一个TGT对象,放入自己的缓存,TGT对象的ID就是cookie的值。当HTTP再次请求到来时,如果传过来的有CAS生成的cookie,则CAS以此cookie值为key查询缓存中有无TGT ,如果有的话,则说明用户之前登录过,如果没有,则用户需要重新登录。

TGC(Ticket-granting cookie):存放用户身份认证凭证的cookie,在浏览器和CAS Server间通讯时使用,并且只能基于安全通道传(Https),是CAS Server用来明确用户身份的凭证。

ST(Service Ticket):ST是CAS为用户签发的访问某一service的票据。用户访问service时,service发现用户没有ST,则要求用户去CAS获取ST。用户向CAS发出获取ST的请求,如果用户的请求中包含cookie,则CAS会以此cookie值为key查询缓存中有无TGT,如果存在TGT,则用此TGT签发一个ST,返回给用户。用户凭借ST去访问service,service拿ST去CAS验证,验证通过后,允许用户访问资源。

版权声明:本文为博主原创文章,未经博主允许不得转载。

cas工作原理解析

标签:cas   单点登录   

原文地址:http://blog.csdn.net/quwenzhe/article/details/47248007

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!