`
guanfuneng
  • 浏览: 741 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

2011.12.16 初解SSO(Single Sign On)

阅读更多
2011年12月16日,天气晴...
今天是公司组织去湖南凤凰游玩的日子,各地分公司的人员都在赶往广州集合的途中...

无意中从看到SSO,上网查了一下SSO(Single Sign On)单点登录。

SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。


SSO技术实现机制
  当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性。如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。

要实现SSO,需要以下主要的功能:
1、所有应用系统共享一个身份认证系统
  统一的认证系统是SSO的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行效验,判断其有效性。
2、所有应用系统能够识别和提取ticket信息
  要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。   另外:   1、单一的用户信息数据库并不是必须的,有许多系统不能将所有的用户信息都集中存储,应该允许用户信息放置在不同的存储中,事实上,只要统一认证系统,统一ticket的产生和效验,无论用户信息存储在什么地方,都能实现单点登录。   2、统一的认证系统并不是说只有单个的认证服务器   认证服务器之间要通过标准的通讯协议,互相交换认证信息,就能完成更高级别的单点登录。如:当用户在访问应用系统1时,由第一个认证服务器进行认证后,得到由此服务器产生的ticket。当他访问应用系统2的时候,认证服务器2能够识别此ticket是由第一个服务器产生的,通过认证服务器之间标准的通讯协议(例如SAML)来交换认证信息,仍然能够完成SSO的功能。


WEB-SSO的实现
  用户在访问页面1的时候进行了登录,但是客户端的每个请求都是单独的连接,当客户再次访问页面2的时候,如何才能告诉Web服务器,客户刚才已经登录过了呢?浏览器和服务器之间有约定:通过使用cookie技术来维护应用的状态。Cookie是可以被Web服务器设置的字符串,并且可以保存在浏览器中。当浏览器访问了页面1时,web服务器设置了一个cookie,并将这个cookie和页面1一起返回给浏览器,浏览器接到cookie之后,就会保存起来,在它访问页面2的时候会把这个cookie也带上,Web服务器接到请求时也能读出cookie的值,根据cookie值的内容就可以判断和恢复一些用户的信息状态。Web-SSO完全可以利用Cookie技术来完成用户登录信息的保存,将浏览器中的Cookie和上文中的Ticket结合起来,完成SSO的功能。   
为了完成一个简单的SSO的功能,需要两个部分的合作:   
    1、统一的身份认证服务。   
    2、修改Web应用,使得每个应用都通过这个统一的认证服务来进行身份效验。   很多的网站都有用到SSO技术,新浪的用户登录也是用到的SSO技术.实现SSO的技术主要有:
      (1)、基于cookies实现,需要注意如下几点:如果是基于两个域名之间传递sessionid的方法可能在windows中成立,在unix&linux中可能会出现问题;可以基于数据库实现;在安全性方面可能会作更多的考虑。另外,关于跨域问题,虽然cookies本身不跨域,但可以利用它实现跨域的SSO。   
       (2) Broker-based(基于经纪人),例如Kerberos等;这种技术的特点就是,有一个集中的认证和用户帐号管理的服务器。经纪人给被用于进一步请求的电子的身份存取。中央数据库的使用减少了管理的代价,并为认证提供一个公共和独立的"第三方"。例如Kerberos,Sesame,IBM KryptoKnight(凭证库思想)等。Kerberos是由麻省理工大学发明的安全认证服务,当前版本V5,已经被UNIX和Windows作为默认的安全认证服务集成进操作系统。   
       (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 规范。   CAS由耶鲁大学开发的单点登录系统(SSO,single sign-on),应用广泛,具有独立于平台的,易于理解,支持代理功能。
分享到:
评论

相关推荐

    SSO.zip_http://sso.sto-expr_killer_sso

    标题中的"SSO.zip_http://sso.sto-expr_killer_sso"表明这是一个与单点登录(Single Sign-On, SSO)相关的压缩文件,可能包含一个或多个用于阻止屏幕保护程序激活的程序。"Screen saver killer.exe"是描述中的关键...

    CAS单点登录SSO( Single Sign-On)

    CAS(Central Authentication Service)单点登录(Single Sign-On,简称SSO)是一种网络认证协议,旨在简化用户在多个应用系统间的登录流程。当用户通过CAS认证后,可以在无需再次输入凭证的情况下访问已接入CAS的...

    SSO-Single-Sign-on实战.docx

    SSO-Single Sign-on实战 SSO(Single Sign-on)是一种单点登录技术,能够让用户在多个相关的应用程序之间进行身份验证,提高用户体验和安全性。SSO可以分为Web SSO和桌面SSO两种,Web SSO是指客户端的单点登录,而...

    sso.rar_DotNetCasClient.dll_sso_sso 单点登录_单点登录_鍗曠偣鐧诲綍

    单点登录(Single Sign-On,简称SSO)是一种网络身份验证技术,允许用户在一次登录后,无需再次输入凭证即可访问多个相互关联的应用系统。在IT领域,它极大地提升了用户体验和安全性,尤其对于大型企业或组织,管理...

    SSO.rar_CAS SSO_ladp sso_ldap_linux sso_sso

    SSO(Single Sign-On)是一种身份验证机制,它允许用户在一个系统中登录后,无需再次认证即可访问其他多个相互信任的系统。在这个场景中,我们关注的是如何在Linux环境中利用LDAP(Lightweight Directory Access ...

    单点登陆(Single Sign On) 简称为 SSO

    单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统

    SSO Single_Sign-on__in_Action(cas)

    ### SSO (Single Sign-On) 原理与 CAS 实现 #### SSO 概念与重要性 单点登录(Single Sign-On, SSO)是一种让用户只需一次登录即可访问多个应用系统的认证机制。这种机制简化了用户体验,提高了工作效率,并在一定...

    Sharepoint 2007 Single Sign On(SSO)设置说明文档

    SharePoint 2007 单点登录(Single Sign-On, SSO)是该平台提供的一种身份验证机制,允许用户登录一次后即可访问多个相互关联的软件系统,无需重复输入凭证。SSO 提高了用户体验,同时简化了权限管理,尤其是在大型...

    Single Sign-on

    单点登录(Single Sign-on,简称SSO)是企业级应用集成解决方案中的一个重要组成部分,它旨在提供用户在多个系统和应用程序之间无缝切换的能力,而无需多次输入认证信息。微软为其实现提供了集成服务,如与Microsoft...

    single sign on流程图

    ### Single Sign-On (SSO) 流程解析 #### 单点登录(SSO)概念介绍 单点登录(Single Sign-On,简称 SSO)是一种身份验证机制,它允许用户通过一次登录过程,即可访问所有相互信任的应用程序和服务,而无需在每个应用...

    CAS讲义SSO (Single Sign-on)原理等

    SSO(Single Sign-on)是一种身份验证机制,允许用户在一个应用系统中登录后,无需再次登录即可访问其他相互信任的应用系统。SSO分为Web-SSO和桌面SSO,我们主要讨论的是Web-SSO,它涉及Web协议,如HTTPS,并且用户...

    Node.js-基于NodeExpress的SSO单点登录实践

    本实践项目聚焦于使用Node.js中的Express框架实现一个SSO(Single Sign-On)系统,这是一种用户只需一次登录就能访问多个应用系统的身份验证机制。在这个过程中,我们将利用Redis作为session的存储,以提高性能和可...

    SSO解决方案大全-Single-Sign-On-for-everyone.docx

    单点登录(Single Sign-On,简称SSO)是近年来非常热门的话题。许多客户都有多个运行在.NET框架中的Web应用程序或者多个子域名,而他们希望在不同的域名中只登录一次就可以畅游所有站点。本文将详细介绍如何在各种...

    springboot+cas5.x+shiro+pac4j实现sso集成

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。本项目基于SpringBoot、CAS5.x、Shiro和Pac4j实现了SSO集成,下面将详细阐述这些技术...

    单点登录Single Sign On

    单点登录(Single Sign-On,简称SSO)是一种身份验证机制,它允许用户在通过一次认证后,可以访问多个相互信任的应用系统,而无需再次输入凭证。这种技术大大提升了用户体验,减少了用户记忆和输入多种登录凭据的...

    SSO解决方案大全 Single Sign-On for everyone

    SSO(Single Sign-On)是一种身份验证机制,允许用户在一个应用系统中登录后,无需再次认证即可访问其他关联的系统。这种技术对于拥有多个应用程序或网站的企业尤其有用,可以提高用户体验,减少用户记忆多套登录...

    Single-sign-on

    Single sign-on (SSO) is a property of access control of multiple related, but independent software systems. With this property a user logs in once and gains access to all systems without being ...

    sso.rar_sso_sso java

    SSO(Single Sign-On)是单点登录的缩写,是一种网络身份验证机制,它允许用户在一次登录后访问多个应用程序或服务,而无需再次输入凭证。SSO 提供了便利性和安全性,尤其是在大型企业或拥有众多子系统的环境中,...

    sso_prog_guide_5_5.pdf

    vCenter Single Sign-On(SSO)是vSphere环境的一部分,它为整个vSphere解决方案提供集中的身份验证服务。通过单点登录,用户只需要一次认证就可以访问vSphere环境中的所有组件。vCenter SSO支持SAML(安全断言标记...

    基于SpringBoot 2.0.3.RELEASE+Mybatis+Redis的SSO单点登录系统

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。基于SpringBoot 2.0.3.RELEASE、Mybatis和Redis实现的SSO系统是利用现代Web技术进行...

Global site tag (gtag.js) - Google Analytics