资料收集于网络,版权属于原作者,谢谢分享。
java
实现简单的单点登录
Posted on 2010-04-13 10:28 xcp 阅读(58505) 评论 (0) 编辑 收藏 所属
分类: JAVA
摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当
中。本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度
分析了单点登录技术的内部机制和实现手段,并且给出 Web-SSO 和桌面 SSO
的实现、源代码和详细讲解;还从安全和性能的角度对现有的实现技术进行进
一步分析,指出相应的风险和需要改进的方面。本文除了从多个方面和角度给
出了对单点登录(SSO)的全面分析,还并且讨论了如何将现有的应用和 SSO
服务结合起来,能够帮助应用架构师和系统分析人员从本质上认识单点登录,
从而更好地设计出符合需要的安全架构。
关键字:SSO, Java, J2EE, JAAS
1
什么是单点登陆
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整
合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就
可以访问所有相互信任的应用系统。
较大的企业内部,一般都有很多的业务支持系统为其提供相应的管理和 IT 服 务。
例如财务系统为财务人员提供财务的管理、计算和报表服务;人事系统为人事
部门提供全公司人员的维护服务;各种业务系统为公司内部不同的业务提供不
同的 服务等等。这些系统的目的都是让计算机来进行复杂繁琐的计算工作,来
替代人力的手工劳动,提高工作效率和质量。这些不同的系统往往是在不同的
时期建设起来 的,运行在不同的平台上;也许是由不同厂商开发,使用了各种
不同的技术和标准。如果举例说国内一著名的 IT 公司(名字隐去),内部共有
60 多个业务系统,这些系统包括两个不同版本的 SAP 的 ERP 系统,12 个不同
类型和版本的数据库系统,8 个不同类型和版本的操作系统,以及使用了 3 种
不同的防火墙技术,还有数十种互相不能兼容的协议和标准,你相信吗?不要
怀疑,这种情况其实非常普遍。每一个应用系统在运行了数年以后,都会成为
不可替换的企业 IT 架构的一部分,如下图所示。