SSO(单点登录)入门
版本记录:
版本号 修改人 日期 备注
1.0 智有不明, QQ18918737 2011.9.6 首次整理。不当之处,希斧正web端登录
目录
1 SSO简介 (3)
2 Web SSO (3)
3 SSO的益处 (4)
4 SSO实现技术 (5)
5 SSO方案 (7)
5.1 SUN  SSO (7)
5.2 CAS (9)
5.3 在Tomcat中使用Yale CAS实现SSO (10)
5.4 SAML (20)
5.5 OpenID (20)
5.6 Oauth (21)
5.7 OpenAM (21)
5.8 LoongSSO (23)
1 SSO简介
SSO(Single Sign-On,单点登录)是身份管理中的一部分。SSO的一种较
为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。
SSO与身份管理软件背景
目前的企业应用环境中,往往有很多的应用系统,如办公自动化(OA)系统,财务管理系统,档案管理系统,信息查询系统等等。这些应用系统服务于企业的信息化建设,为企业带来了很好的效益。但是,用户在使用这些应用系统时,并不方便。用户每次使用系统,都必须输入用户名称和用户密码,进行身份验证;而且,应用系统不同,用户账号就不同,用户必须同时牢记多套用户名称和用户密码。特别是对于应用系统数目较多,用户数目也很多的企业,这个问题尤为突出。问题的原因并不是系统开发出现失误,而是缺少整体规划,缺乏统一的用户登录平台。
使用SSO技术可以解决以上这些问题,SSO是身份管理中的一部分,关于
安全与身份管理软件市场,可参考:www.blogjava/ablix/archive/2005/12 /28/25804.html
2 Web SSO
SSO 是一个非常大的主题,无数网友都在尝试使用开源的 CAS , Kerber os 也提供另外一种方式的 SSO ,即基于 Windows 域的 SSO ,还有就是从2005 年开始一直兴旺不衰的 SAML 。
如果将这些免费的 SSO 解决方案与商业的 Tivoli 或 Siteminder 或 RSA
Secure SSO 产品做对比,差距是存在的。毕竟,商业产品的安全性和用户体验
都是无与伦比的,我们现在提到的 SSO ,仅仅是 Web SSO ,即 Web-SSO 是体现在客户端;另外一种 SSO 是桌面 SSO ,例如,只需要作为 Administra tor 登录一次 windows 2000 ,便能够在使用 MSN/QQ 的时候免去登录的环节 ( 注意,这不是用客户端软件的密码记忆功能 ) ,是一种代理用户输入密码的功能。因此,桌面 SSO 是体现在 OS 级别上。
今天,当我们提起 SSO 的时候,我们通常是指 Web SSO ,它的主要特点是, SSO 应用之间走 Web 协议 ( 如 HTTP/SSL) ,并且 SSO 都只有一个登录入口。
简单的 SSO 的体系中,会有下面三种角:
1 , User (多个)
2 , Web 应用(多个)
3 , SSO 认证中心( 1 个)
虽然 SSO 实现模式千奇百怪,但万变不离其宗:
z Web 应用不处理 User 的登录,否则就是多点登陆了,所有的登录都在 SSO 认证中心进行。
z SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是张三 / 李四。
z SSO 认证中心和所有的 Web 应用建立一种信任关系, SSO 认证中心对用户身份正确性的判断会通过某种方法告之 Web 应用,而且判断结
果必须被 Web 应用信任。
3 SSO的益处
使用SSO的益处主要有:
(1)方便用户
用户使用应用系统时,能够一次登录,多次使用。用户不再需要每次输入用户名称和用户密码,也不需要牢记多套用户名称和用户密码。单点登录平台能够改善用户使用应用系统的体验。
(2)方便管理员
系统管理员只需要维护一套统一的用户账号,方便、简单。相比之下,系统管理员以前需要管理很多套的用户账号。每一个应用系统就有一套用户账号,不仅给管理上带来不方便,而且,也容易出现管理漏洞。
(3)简化应用系统开发
开发新的应用系统时,可以直接使用单点登录平台的用户认证服务,简化开发流程。单点登录平台通过提供统一的认证平台,实现单点登录。因此,应用系统并不需要开发用户认证程序。
4 SSO实现技术
实现SSO的技术主要有:
(1)基于cookies
需要注意如下几点:如果是基于两个域名之间传递sessionid的方法可能在w indows中成立,在unix&linux中可能会出现问题;可以基于数据库实现;在安全性方面可能会作更多的考虑。另外,关于跨域问题,虽然cookies本身不跨域,但可以利用它实现跨域的SSO。
(2)Broker-based(基于经纪人)
例如Kerberos等。这种技术的特点就是,有一个集中的认证和用户帐号管理的服务器。经纪人给被用于进一步请求的电子的身份存取。中央数据库的使用减少了管理的代价,并为认证提供一个公共和独立的"第三方"。例如Kerberos、Sesame、IBM KryptoKnight(凭证库思想)等。
(3)Agent-based(基于代理人)
在这种解决方案中,有一个自动地为不同的应用程序认证用户身份的代理程序。这个代理程序需要设计有不同的功能。比如, 它可以使用口令表或加密密钥来自动地将认证的负担从用户移开。代理人被放在服务器上面,在服务器的认证系统和客户端认证方法之间充当一个"翻译"。例如SSH等。
(4)Token-based基于令牌

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。