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

SSO(单点登录)—CAS总结

时间:2015-05-31 21:43:37      阅读:361      评论:0      收藏:0      [点我收藏+]

标签:

概述

       SSO(Single Sign On),单点登录,多个具有独立运行的系统组成一个大系统,实现用户登录一次,即可随意访问该大系统的子系统。单点登录的具体实现有多种方式,我们可以自己实现,也可以采用第三方提供的框架。


自定义SSO

       方式一

              部署图

                     技术分享

             具体实现过程

                     1、用户通过浏览器,输入用户名和密码进行登录

                     2、权限系统接收到用户名和密码后,进行校验,校验通过后,将相应的用户信息,写入到Cookie中

                     3、登录后的用户此时访问考试系统时,考试系统先从Cookie中获取相应的值,然后判断其是否登录

            小结

                    这个过程,我们可以非常清楚的知道,这样做不安全,因为用户的信息存放在Cooike上,所以,非常的不安全。

       方式二

              部署图

                     技术分享

              流程描述

                     这个流程和上面的流程几乎一样,不一样的地方就是用户信息的存放地方,方式一是将用户信息直接存放到Cookie上,方式二是将用户信息存放到Radis上,然后,用户访问考试系统时,系统从Cookie中获得相应的值,然后,通过这个值,从Radis中获取相应的用户信息,判断用户是否登录。

              小结

                     方式二虽然解决了方式一的一个不足,但是,对于这两种方式都存在的一种不足,它没有解决,这个不足就是Cookie,Cookie值得获取是有一定的要求的,域名规范等等,使用时,具有很大的限制,例如:权限系统是域名1,那么,考试系统必须是这类(定好的规则)域名时,才可以获取Cookie的值。

第三方框架CAS

       部署图

              技术分享

              看到这幅图后,你一定很惊讶,这个和自己实现的第二种方式,非常的相似,唯一不同的Redis服务器变成了CAS服务器,对,非常的对,但是,也就是因为这个不同,就解决了那个问题。注意,此时具体系统都引入CAS相应的jar了

       流程描述

              1、用户输入用户名和密码,登录
              2、权限系统中的CAS的过滤器拦截后,让其转发到CAS服务器
              3、转发到CAS服务器后,CAS看有没有Cookie,没有的话,说明没有登录过,此时,就给Cookie中写入CAS的值,并返回钥匙,然后,让浏览器带着钥匙转发到权限系统,然后,权限系统中的CAS再拿着钥匙和CAS服务器进行验证,验证通过,CAS服务器将用户的信息返回给权限系统,且登录成功。
              4、用户转到考试系统时,考试系统的过滤器拦截,看是否具有钥匙,不具有的话,就重复2和3操作,有的话,直接和CAS服务器进行验证,通过后,CAS服务器将用户信息返回给考试系统,进入成功

       小结

              CAS解决Cookie取值限制的方式时,让CAS服务器放Cookie值,并且,让CAS服务器取值,当然,这里面也要有子系统的CAS的jar进行的转发和验证操作。


总结

       CAS服务器端各种验证规则,客户单单点注销,对用户操作等具体操作,在这里就不再描述,现提供相应的代码,有兴趣的话,可以下载下来看看。

SSO(单点登录)—CAS总结

标签:

原文地址:http://blog.csdn.net/jiben2qingshan/article/details/46288963

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