SSO 原理浅谈
SSO 是一个非常大的主题,我对这个主题有着深深的感受,自从广州 UserGroup 的论坛成立以来,无数网友都在尝试使用开源的 CAS , Kerberos 也提供另外一种方式的 SSO ,即基于 Windows 域的 SSO ,还有就是从 2005 年开始一直兴旺不衰的 SAML 。
如果将这些免费的 SSO 解决方案与商业的 Tivoli 或 Siteminder 或 RSA Secure SSO 产品做对比,差距是存在的。毕竟,商业产品的安全性和用户体验都是无与伦比的,我们现在提到的 SSO ,仅仅是 Web SSO ,即 Web-SSO 是体现在客户端;另外一种 SSO 是桌面 SSO ,例如,只需要作为 Administrator 登录一次 windows 2000 ,我便能够在使用 MSN/QQ 的时候免去登录的环节 ( 注意,这不是用客户端软件的密码记忆功能 ) ,是一种代理用户输入密码的功能。因此,桌面 SSO 是体现在 OS 级别上。
今天,当我们提起 SSO 的时候,我们通常是指 Web SSO ,它的主要特点是, SSO 应用之间走 Web 协议 ( 如 HTTP/SSL) ,并且 SSO 都只有一个登录入口。
简单的 SSO 的体系中,会有下面三种角色:
1 , User (多个)
2 , Web 应用(多个)
3 , SSO 认证中心( 1 个)
虽然 SSO 实现模式千奇百怪,但万变不离其宗:
l Web 应用不处理 User 的登录,否则就是多点登陆了,所有的登录都在 SSO 认证中心进行。
l SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是张三 / 李四。
l SSO 认证中心和所有的 Web 应用建立一种信任关系, SSO 认证中心对用户身份正确性的判断会通过某种方法告之 Web 应用,而且判断结果必须被 Web 应用信任。
JBoss SSO (or JBoss Federated Single Sign-On) 是一个产品从JBoss的SOA套件,使单点登录和注册取舍和联邦访问多个应用和计算资源在整个网络和互联网。
Single Sign On (SSO)
单点登录(SSO)是一种专门形式的用户身份验证,可让用户进行身份验证后,和获得资源的多个系统/ Web应用程序在该届会议期间。
通过使用SSO在您的Web应用程序联合好处会包括:
巩固发射井商店的身份出现了一段时间内有多个Web应用程序。
提高用户帐户配置进程显着。
提供更好的最终用户体验,使用网络的SSO 。
提高效率的用户时,将获得新的应用,包括第三方的ASP服务,如SalesForce.com 。
使安全公司内部获得应用企业之间和它们的合作伙伴,供应商和客户的组织。
功能简介:
端到端的安全跨域/跨组织的单点登录/采用行业标准单点登录,如SAML的
更实际的集中办法的SSO相比,更多的限制枢纽和以架构。
可插拔连接器框架身份连接到自定义存储系统,如身份( JDBC的数据库等) 。包括一个基于标准的LDAP身份连接。成功测试Red Hat Directory Server, OpenLDAP和OpenDS 。
干净的区分框架和应用验证。同时支持基于标准的JAAS的认证机制以及自定义验证机制,如(Struts actions, Servlet Filters,JSF Actions, Plain Servlets等)。
无缝集成与JBoss门户。工作进展情况的JBoss Seam Framework的一体化。
组成部分:
JBoss SSO Framework(Java开源 身份认证管理)
JBoss SSO Framework是一个组件集能够很容易集成到现有的web应用中提供单一登录功能.该框架已经能够支持一些重要的SSO标准如SAML。整个系统
包括以下组件:
1、联合服务器(Federation Server) 一个联合服务器用于为放置在不同安全域(security domain)中的web应用程序安全地传播Federation Token。
2、Token编排框架(Token Marshalling Framework) 这是一组灵活的/可插件的Java API用来marshal/unmarshal一个Federation Token。该系统默认提供一个SAML兼容的编排器(Marshaller) 。
3、身份管理框架(Identity Management Framework)这是一组灵活的/可插件的Java API用来连接中中央身份存储库(Identity Store)。该系统默认提供一个Provider来连接基于LDAP的身份存储库。