SSO单点登陆原理

           SSO是(Single Sign On)简称,用户可以在一个相互信息的应用程序堆中,只登陆一次,就可以访问所有应用程序。举一个通俗的例子,作为“马云背后的女人”,大家都有这样的体验,登陆一次某宝,就可以在各种什么猫,什么划算上使用。这样就是单点登陆的好处,为用户提供了很多的方便而不用从某宝跳到某猫还得再登陆一次。。。

           上面这个例子,很好的说明了单点登陆的原理。只要产生一个信任的东西,并且将信任存储起来,其他应用验证信任之后,然后其他应用程序也可以使用。如下图

SSO单点登陆原理_第1张图片

         最简单实现SSO的方法就是用Cookie,实现具体的流程流程如下所示:


图示解析:

          ST:服务票据,服务的惟一标识码 , 由 CAS Server 发出( Http 传送),通过客户端浏览器到达业务服务器端;一个特定的服务只能有一个惟一的 ST ;
          TGC:存放用户身份认证凭证的 cookie ,在浏览器和Server间通讯时使用,是Server 用来明确用户身份的凭证;




          单点登陆并不是一个单纯的技术,它也代表了一种思想,实现单点登陆的框架也有很多。例如.Net CAS、OpenSSO等。看着其他大牛的博客,写着写着,发现自己对于单点登陆的东西还需要深入研究,对于它的思想,以及不同的实现间的异同点。还有在何种情况下,使用哪一种实现,都是需要很多的实践才能做到的。。好好学习吧。。。



参考博客:

1、 https://wiki.jasig.org/display/CASUM/Introduction

2、 http://www.jasig.org/cas/protocol/

3、 http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/index.html

4、 http://www.blogjava.net/security/archive/2006/10/02/sso_in_action.html

5、 http://baike.baidu.com/view/190743.htm

6、 http://www.cnblogs.com/gxbk629/p/4473569.html

7、 http://www.oschina.net/project/tag/233/sso

8、http://blog.csdn.net/javachannel/article/details/752437

你可能感兴趣的:(SSO单点登陆原理)