`

SSO技术简介

    博客分类:
  • SSO
阅读更多

SSOSingle Sign-On,单点登录)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。
SSO与身份管理软件背景

   目前的企业应用环境中,往往有很多的应用系统,如办公自动化(OA)系统,财务管理系统,档案管理系统,信息查询系统等等。这些应用系统服务于企业的信息化建设,为企业带来了很好的效益。但是,用户在使用这些应用系统时,并不方便。用户每次使用系统,都必须输入用户名称和用户密码,进行身份验证;而且,应用系统不同,用户账号就不同,用户必须同时牢记多套用户名称和用户密码。特别是对于应用系统数目较多,用户数目也很多的企业,这个问题尤为突出。问题的原因并不是系统开发出现失误,而是缺少整体规划,缺乏统一的用户登录平台。
   使用SSO技术可以解决以上这些问题,SSO是身份管理中的一部分,关于安全与身份管理软件市场,可参考:http://www.blogjava.net/ablix/archive/2005/12/28/25804.html
使用SSO的好处
   使用SSO的好处主要有:
      (1)方便用户
   用户使用应用系统时,能够一次登录,多次使用。用户不再需要每次输入用户名称和用户密码,也不需要牢记多套用户名称和用户密码。单点登录平台能够改善用户使用应用系统的体验。
      (2)方便管理员
   系统管理员只需要维护一套统一的用户账号,方便、简单。相比之下,系统管理员以前需要管理很多套的用户账号。每一个应用系统就有一套用户账号,不仅给管理上带来不方便,而且,也容易出现管理漏洞。
      (3)简化应用系统开发
   开发新的应用系统时,可以直接使用单点登录平台的用户认证服务,简化开发流程。单点登录平台通过提供统一的认证平台,实现单点登录。因此,应用系统并不需要开发用户认证程序。
   实现SSO的技术主要有:
      (1)基于cookies实现,需要注意如下几点:如果是基于两个域名之间传递sessionid的方法可能在windows中成立,在unix&linux中可能会出现问题;可以基于数据库实现;在安全性方面可能会作更多的考虑。另外,关于跨域问题,虽然cookies本身不跨域,但可以利用它实现跨域的SSO。
      (2)Broker-based(基于经纪人),例如Kerberos等;
   这种技术的特点就是,有一个集中的认证和用户帐号管理的服务器。经纪人给被用于进一步请求的电子的身份存取。中央数据库的使用减少了管理的代价,并为认证提供一个公共和独立的"第三方"。例如Kerberos、Sesame、IBM KryptoKnight(凭证库思想)等。
      (3)Agent-based(基于代理人)
   在这种解决方案中,有一个自动地为不同的应用程序认证用户身份的代理程序。这个代理程序需要设计有不同的功能。比如, 它可以使用口令表或加密密钥来自动地将认证的负担从用户移开。代理人被放在服务器上面,在服务器的认证系统和客户端认证方法之间充当一个"翻译"。例如SSH等。
      (4)Token-based,例如SecurID、WebID、
   现在被广泛使用的口令认证,比如FTP,邮件服务器的登录认证,这是一种简单易用的方式,实现一个口令在多种应用当中使用。
      (5)基于网关
      Agent and Broker-based,这里不作介绍。
      (6)基于安全断言标记语言(SAML)实现,SAML(Security Assertion Markup Language,安全断言标记语言)的出现大大简化了SSO,并被OASIS批准为SSO的执行标准。开源组织OpenSAML 实现了 SAML 规范,可参考http://www.opensaml.org/
 
SUN  SSO技术
      SUN SSO技术是Sun Java System Access Manager产品中的一个组成部分。
      Sun 的新身份管理产品包括Sun Java System Identity ManagerSun Java System Directory Server Enterprise Edition Sun Java System Access Manager,以上三者为Sun Java Identity Management Suite (身份识别管理套件)的组成部分,它们与Sun Java Application Platform SuiteSun Java Availability SuiteSun Java Communications SuiteSun Java Web Infrastructure Suite组成Java ES。具有革新意义的这一系列产品提供端到端身份管理,同时可与 60 多种第三方资源和技术实现互操作,集成产品可以从SUN公司网站下载,一般以Agent软件方式提供,是业内集成程序最高、最为开放的身份管理解决方案之一。
   在Sun 的新身份管理产品中,Sun Java System Access Manager是基中的一个重要组成部分,Java Access Manager基于J2EE架构,采用标准的API,可扩展性强,具有高可靠性和高可用性,应用是部署在Servlets容器中的,支持分布式,容易部署且有较低的TCO通过使用集中验证点、其于角色的访问控制以及 SSO,Sun Java System Access Manager 为所有基于 Web 的应用程序提供了一个可伸缩的安全模型。它简化了信息交换和交易,同时能保护隐私及重要身份信息的安全。
SUN SSO实现原理
      SSO的核心在于统一用户认证,登录、认证请求通过IDENTITY SERVER服务器完成,然后分发到相应应用
      SUN SSOjava Access Manager的一个组成部分,SSO基于Cookie实现解释如下:
      (1)Policy Agent on Web or Application Server intercepts resource requests and enforces access control;
      (2)Client is issued SSO token containing information for session Validation with Session service.
      (3)SSO token has no content- just a long random string used as a handle.
      (4)Web-based applications use browser session cookies or URL rewriting to issue SSO token.
      (5)Non Web applications use the SSO API(Java/c) to obtain the SSO token to validate the users identity.
SUN SSO 的应用
   这里说的应用是指Sun Java System Access Manager的应用。成功应用例子很多,包括德国电信等公司的应用,国内也有大量高校在使用,也有相当多的其它行业的应用。
SUN SSO的开源
      Sun 将发布其网络验证与网络单点登录技术,给一项新的开放源代码计划“Open Web Single Sign-On”Open SSO)。OpenSSO网站位于:https://opensso.dev.java.net/。该网站对OpenSSO的概述为:This project is based on the code base of Sun Java(tm) System Access Manager Product, a core identity infrastructure product offered by Sun Microsystems.
      OpenSSO 计划的第一部份源代码,将于今年年底完成,基本的版本将于明年3月份发布,而完整的版本可能要等到明年五月份。Sun 采用与Solaris 操作系统相同的共同开发暨流通授权(Common Development and Distribution License)方式。
 
CAS背景介绍
      CAS(Central Authentication Service),是耶鲁大学开发的单点登录系统(SSO,single sign-on),应用广泛,具有独立于平台的,易于理解,支持代理功能。CAS系统在各个大学如耶鲁大学、加州大学、剑桥大学、香港科技大学等得到应用。
      Spring Framework的Acegi安全系统支持CAS,并提供了易于使用的方案。Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全系统能够轻松地适用于复杂的安全需求。Acegi安全系统在国内外得到了广泛的应用,有着良好的社区环境。
CAS的设计目标
      (1)为多个Web应用提供单点登录基础设施,同时可以为非Web应用但拥有Web前端的功能服务提供单点登录的功能;
      (2)简化应用认证用户身份的流程;
      (3)将用户身份认证集中于单一的Web应用,让用户简化他们的密码管理,从而提高安全性;而且,当应用需要修改身份验证的业务逻辑时,不需要到处修改代码。
CAS的实现原理
      CASCentral Authentication Server)被设计成一个独立的Web应用。实现原理非常简单,CAS Server2.0.12的实现只有30个类,除了JDK本身外,只使用到一个servlet.jar包。它目前的实现是运行在HTTPS服务器的几个Java Servlet上(而客户端可以灵活采用httphttps的方式)。
   通过CAS2.0.12认证的序列图如下图(因图片显示问题,暂时去除)。
CAS在应用中的运行硬件环境
      University of Delaware: Sun Fire 280R/ 2x750 MHz/ 4 GB memory/ 550.3 GB disk storage
      University of Hawaii: a single Sun Netra X1 (UltraSPARC-IIe 500MHz) with 1.0GB RAM dedicated to running CAS. 2.
CAS2.0.12中关于ticket的生成
      CAS创建一个位数很长的随机数(ticket)。CAS把这个ticket和成功登录的用户以及用户要访问的service联系起来。例如,如果用户peon重定向自service S,CAS创建ticket T,这个ticket T允许peon访问service S。这个ticket是个一次性的凭证;它仅仅用于peon和仅仅用于service S,并且只能使用一次,使用之后马上会过期,即ticket通过验证,CAS立即删除该ticket,使它以后不能再使用。这样可以保证其安全性。
   关于ST,在取一个ST时,即使用deleteTicket(ticketId)同时将一次性的ST删除;而对于TGT或PT,则通过resetTimer(ticketId)以更新TGT或PT的时间。CAS服务端返回的ST中只能得出用户名。
      另外,CAS3.0版本也已经发布了,现在最新的版本是3.03,希望CAS3.0在向下兼容的同时,更能向我们提供一些新东西。

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    推荐给大家 sso介绍

    #### 一、SSO技术简介 单点登录(Single Sign-On,简称SSO)是一种身份管理技术的重要组成部分,它的主要目标是在多个相关但独立的应用系统之间实现用户的一次性认证。具体来说,当用户在一个应用系统中完成了身份...

    单点登录技术方案.doc

    3. SSO技术简介: - 修改应用程序SSO方案:这种方案需要对每个应用进行定制,修改其登录逻辑以适应SSO,这可能涉及开发工作量大且不易维护。 - 即插即用SSO方案:此方案提供标准化接口,使得新应用能轻松集成到SSO...

    sso_introduction.pdf

    #### SSO简介 ##### Web系统中的认证挑战 随着互联网/内联网的广泛应用,Web系统已经从简单的网页展示发展到复杂的业务处理流程。这些高度发达的Web系统通常配备了身份验证功能。然而,随着系统数量的增加,以下...

    CAS-SSO-TRIAL.zip_CAS_CAS SSO_java sso_sso

    标签"cas"、"cas_sso"、"java_sso"、"sso"进一步强调了主题内容,分别对应CAS服务、CAS的SSO特性、Java环境下的SSO实现以及SSO技术本身。 在压缩包内的文件" CAS-SSO-TRIAL.doc"很可能是一个详细的文档,提供了关于...

    SSO概念pdf

    #### 一、SSO简介 **SSO**,全称为 **Single Sign-On**(单点登录),是一种身份管理技术,允许用户使用一套登录凭证(如用户名和密码)即可访问多个互联系统。这种机制极大地简化了用户的登录流程,提高了用户体验...

    Java进阶SSO单点登录技术CAS-快速上手与原理探究视频教程

    课程简介 本课程主要通过CAS来实现SSO,本教程会从最基本的基础知识讲起,由浅入深再到实战,完成多应用的单点登录功能。 本课程内容如下: 1、 什么是SSO和CAS 2、 CAS Server服务端和客户端的搭建和配置 3、 单...

    eSDK SSO V100R005C10 安装配置指南 01(Windows)

    一、eSDK SSO简介 eSDK SSO是华为提供的一个身份认证和访问管理解决方案,它允许用户在一次验证后无须再次输入凭证即可访问授权的应用系统。此功能显著提高了用户体验,同时强化了企业的安全策略,减少了密码管理的...

    架构师熟悉cas技术方案实现sso

    ### 架构师熟悉CAS技术方案实现SSO #### 一、CAS简介 ##### 1.1 CAS是什么? CAS(Central Authentication Service),即中央认证服务,最初由耶鲁大学发起,是一个面向企业和开源社区的项目,旨在为Web应用提供...

    sso单点登录(整理的学习文档)

    ### SSO单点登录概述与关键技术 #### 一、单点登录(Single Sign-On, SSO)的概念 单点登录是一种使用户仅需一次身份验证即可访问多个应用程序的技术。这通常应用于互相信任的系统之间,允许用户在一个系统中登录后...

    simple-sso.zip

    SSO,全称为Single Sign-On,即单点登录,是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。简单SSO实现通常涉及到身份验证中心(Identity Provider,IdP)和各个服务提供者...

    Ofbiz实战 之 SSO单点登录

    1. **JSONP原理简介**: - JSONP是一种允许跨域数据交换的技术。它利用了浏览器对`<script>`标签的宽松限制,使得即使是在不同的域名下也能通过JavaScript回调函数的形式接收数据。 - JSONP的工作原理是通过动态...

    唐老师RPR RPR+ SSO等切换方式的比较

    - **简介**:HSA 是一种较早的冗余模式,现在已经被其他更先进的技术所替代。 - **工作原理**:在 HSA 模式下,备用引擎会在主引擎出现故障时接管控制权。但与现代的冗余技术相比,HSA 的故障恢复时间较长,并且在...

    OpenAm,sso实践一

    它通过SSO技术,使用户只需一次登录即可访问所有相互关联的应用程序,提高了用户体验,同时减少了管理多个密码的复杂性。OpenAM还提供了访问控制、策略管理、会话管理和审计等功能,有助于企业实现安全的身份管理和...

    单点登录SSO解决方案之SpringSecurity+JWT实现.docx

    ### 单点登录SSO解决方案之SpringSecurity+JWT实现 #### 一、单点登录(SSO)概述 单点登录(Single Sign-On,简称SSO)是一种认证机制,允许用户仅通过一次登录就能访问同一域下的多个应用程序和服务。这种机制...

    为PHPBB加一个oauth认证方式统一登陆SSO

    随着互联网技术的发展,统一登录系统(Single Sign-On, SSO)已成为网站间资源共享的重要手段之一。它允许用户在一次登录后即可访问多个关联的应用程序,而无需再次输入密码。这种方式不仅提升了用户体验,还加强了...

    基于webspere实现的smal单点sso

    ### 基于WebSphere实现的SAML单点登录(SSO)详解 #### SSO与SAML概述 单点登录(Single Sign-On,SSO)是一种身份...随着企业越来越依赖于分布式和云环境,掌握 SSO 技术对于保障数据安全和提升用户满意度至关重要。

    单点认证(sso)

    - **惠普SSO解决方案简介**:惠普提供的SSO解决方案旨在解决上述挑战,通过集成简单的访问控制和SSO功能,提供了一个真正的“即插即用”SSO解决方案。 - **关键特性**: - **即插即用**:无需修改现有应用系统,...

Global site tag (gtag.js) - Google Analytics