快速业务通道

SSO单点登录解决方案 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
SSO的实现。其中值得一提的是OpenSSO (https://opensso.dev.java.net ),为用Java实现WEB-SSO提供架构指南和服务指南,为用户自己来实现WEB-SSO提供了理论的依据和实 现的方法。

为什么说WEB-SSO比较容易实现呢?这是有WEB应用自身的特点决定的。

众所 周知,Web协议(也就是HTTP)是一个无状态的协议。一个Web应用由很多个Web页面组成,每个页面都有 唯一的URL来定义。用户在浏览器的地 址栏输入页面的URL,浏览器就会向Web Server去 发送请求。如 下图,浏览器向Web服务器发送了两个请求,申请了两个页面。这两个页面的请求是分别使用了两个单独 的HTTP连接。所谓无状 态的协议也就是表现在这里,浏览器和Web服务器会在第一个请求完成以后关闭 连接通道,在第二个请求的时候重新建立连接。Web服务器并不区分哪个请求来 自哪个客户端,对所有 的请求都一视同仁,都是单独的连接。这样的方式大大区别于传统的(Client/Server)C/S结构,在那样 的应用中,客户端 和服务器端会建立一个长时间的专用的连接通道。正是因为有了无状态的特性,每个 连接资源能够很快被其他客户端所重用,一台Web服务器才能够同时服务于成 千上万的客户端。

但是我们通常的应用是有状态的。先不用提不同应用之间的SSO,在同一个应用中也需要保存用户的 登录身份信息。例如用户在访问页面1的时候进行了登录,但 是刚才也提到,客户端的每个请求都是单 独的连接,当客户再次访问页面2的时候,如何才能告诉Web服务器,客户刚才已经登录过了呢?浏览器 和服务器之间有 约定:通过使用cookie技术来维护应用的状态。Cookie是可以被Web服务器设置的字符 串,并且可以保存在浏览器中。如下图所示,当浏览器访问了 页面1时,web服务器设置了一个cookie, 并将这个cookie和页面1一起返回给浏览器,浏览器接到cookie之后,就会保存起来,在它访问页 面2的 时候会把这个cookie也带上,Web服务器接到请求时也能读出cookie的值,根据cookie值的内容就可以判 断和恢复一些用户的信息状 态。

Web-SSO完全可以利用Cookie结束来完成用户登录信息的保存,将浏览器中的Cookie和上文中的 Ticket结合起来,完成SSO的功能。

为了完成一个简单的SSO的功能,需要两个部分的合作:

统一的身份认证服务。

修改Web应用,使得每个应用都通过这个统一的认证服务来进行身 份效验。

3.1 Web SSO 的样例

根据上面的原理,我用J2EE的技术(JSP和Servlet)完成 了一个具有Web-SSO的简单样例。样例包含一个身份认证的服务器和两个简单的 Web应用,使得这两个 Web应用通过统一的身份认证服务来完成Web-SSO的功能。此样例所有的源代码和二进制代码都可以从网 站地址http://gceclub.sun.com.cn/wangyu/下载。

SSO单点登录解决方案(4)

时间:2010-01-06

样例下载、安装部署和运行指南:

Web-SSO的样例是由三个标准Web应用组成,压缩成三个zip文件,从 http://gceclub.sun.com.cn/wangyu/web-sso/中下载。其中SSOAuth (http://gceclub.sun.com.cn/wangyu/web-sso/SSOAuth.zip)是身份认证服务;SSOWebDemo1 (http://gceclub.sun.com.cn/wangyu/web-sso/SSOWebDemo1.zip)和SSOWebDemo2 (http://gceclub.sun.com.cn/wangyu/web-sso/SSOWebDemo2.zip) 是两个用来演示单点登录的Web应 用。这三个Web应用之所以没有打成war包,是因为它们不能直接部署,根据读者的部署环境需要作出小 小的修改。样例部 署和运行的环境有一定的要求,需要符合Servlet2.3以上标准的J2EE容器才能运行( 例如Tomcat5,Sun Application Server 8, Jboss 4等)。另外,身份认证服务需要JDK1.5的运行环境。 之所以要用JDK1.5是因为笔者使用了一个线程安全的高性能的Java集合类 “ConcurrentMap&r

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号