单点登录(SSO)的介绍
认证是一个复杂的问题。门户需要对访问后端数据资源和应用程序的用户进行认证,然而,这些应用程序每个可能都有强调不同的安全构造。理想的以及最有效的认证方式就是单点登录,或SSO。
单点登录(SSO),就是只要认证一次就可以对你所有的网络资源获得认证的能力。SSO的目的是允许用户从一个入口登录而能访问到所有的应用程序。它提供了一个统一的机制来管理用户的认证和实现决定用户对应用程序和数据的访问的商业规则。单点登录的认证机制已经被集成到很多门户中,成为应用门户技术的一个必然选择。
单点登录的一些优点如下:
提高了用户使用门户的效率。用户再也不用被很多次的登录所困惑,也不需要再记住很多的标识和密码。另外,做支持的人员也可以少回答一些用户忘记密码的问题。
改进了开发者的效率。SSO向开发者提供了一个公共的认证框架。实际上,如果SSO的机制是独立的,那么,开发者就根本不用对认证担忧。他们可以假设,一旦对一个应用程序的请求是与一个用户名关联在一起的,认证就已经发生了。
简化了管理。当应用程序参与到一个单点登录的协议中,管理用户账号的负担就被简化了。因为SSO仅仅处理认证,简化的程度就取决于应用程序。所以,应用程序仍然需要特定用户的属性(例如访问权限)被建立。
然而,单点登录在实际的项目建设中也并非没有缺点,以下是其主要的缺陷:
难以改造翻新的。一个SSO的解决方案可能是困难的,耗时的,并且对已存在系统的改造翻新是昂贵的。
忽视的安全问题。实现SSO减少了一些安全隐患,但增加了其它一些问题。例如,如果一个用户离开了他的电脑并且保持机子登录的状态,那么一个恶意的用户可以获得对他的资源的访问。尽管这是一个普遍的安全问题,但SSO使其变的更糟因为这将威胁所有授权的资源。至少如果必须在多处的登录,在某一时刻,用户只能登录到一个系统,也只有一处的资源受到威胁。
单点的攻击。如果使用单点登录,所有的应用程序都要使用中心认证服务。这将成为想要对服务进行攻击的黑客的目标。
综上所述,虽然单点登录的认证方式有其固有的缺陷,尤其是将其加入到已有的应用程序中则更为困难。然而,只要我们选择合适的解决方案,就能减小其在开发上对我们产生的困难而应用其更多的优势。因此,从用户,管理者以及开发者的角度看,它的优点远超过了它所带的缺点,是一个理想的认证方式。
1.3 本文的工作和意义
如上所述,单点登录是解决门户对用户进行认证的一个有效的方式。因此,在这次毕业设计中,我选择了一个开源项目——eXo平台作为自己的开发平台,来进行单点登录功能的实现。
毕业设计实际的工作包括:
1.学习和理解了J2EE以及门户的相关技术,如Java Servlet,Java ServerPages,Java ServerFaces,Java Portlet API等。
1.深入的分析了eXo平台的体系结构,包括它的框架,提供的服务以及功能的实现。并利用编译部署工具Maven,在一台安装有Windows 2003 Server的PC机,将eXo 平台搭建起来。
2.研究了实现单点登录功能的一种有效的方式——中心认证服务(CAS)的机制。
3.在eXo平台上,利用中心认证服务这种方式,讨论并初步实现了eXo门户单点登录的部分功能。