`
chentianliang
  • 浏览: 15654 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SSO技术实现机制

    博客分类:
  • 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单点登录SSO技术实现机制

    以下是SSO技术实现机制的详细解释: 1. **SSO工作流程**: - 用户首次访问应用系统1,因未登录,会被重定向至认证系统。 - 用户在认证系统中提供登录信息,系统验证后,若信息正确,会生成一个唯一的认证凭据,即...

    sso的实现机制

    下面我们将深入探讨SSO的实现机制。 1. **原理概述** SSO的核心原理是通过一个中央认证服务(CAS,Central Authentication Service)来验证用户的身份,一旦用户在主系统上验证成功,就可以无感知地访问其他已集成...

    SSO个人实现方式

    SSO(Single Sign-On)是单点登录的...这将帮助你理解和实践SSO技术,从而创建自己的单点登录系统。在实践中,你还需要了解Java相关的Web开发知识,如Servlet、Filter、Spring Security等,以便更好地理解代码和配置。

    SSO的简单实现SSO的简单实现

    SSO(Single Sign-On)是一种身份验证机制,允许用户在一个系统上登录后,无需再次输入凭证即可访问其他相互信任的系统。SSO 提高了用户体验,简化了安全管理,并减少了密码管理的复杂性。以下是对SSO简单实现的详细...

    .net单点登录sso的实现

    .NET下的单点登录(Single Sign-On,简称SSO)是一种让用户在多个应用系统间自由切换,只需要一次登录验证的身份管理技术。它提升了用户体验,减少了密码管理的复杂性,尤其适用于企业内部或拥有多个子系统的环境。...

    SSO(单点登录) 技术的实现

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许...SSO技术的实现涉及多方面的考虑,包括安全性、用户体验、系统集成和合规性。理解其原理和挑战,并结合最佳实践,可以帮助企业构建出高效、安全的SSO系统。

    单点登录系统(SSO)技术实现剖析.PDF

    单点登录系统(Single Sign-On,简称SSO)是一种网络...综上所述,SSO技术通过统一的认证机制,实现了跨系统的一站式登录体验,但在实际应用中需要谨慎处理安全性和复杂性问题,以确保用户数据的安全和系统的稳定性。

    单点登陆的技术实现机制

    ### 单点登录(SSO)技术实现机制详解 #### 一、引言 单点登录(Single Sign-On,简称SSO)技术近年来受到越来越多的关注,它不仅极大地改善了用户体验,而且提高了系统的整体安全性。SSO的基本思想是用户只需要登录...

    java单点登录的实现与应用整合中SSO的技术实现

    SSO技术的应用通常涉及到多系统间的身份验证整合,使得用户只需要一次登录就能访问所有授权的应用系统。以下将详细探讨几种实现SSO的方法及其应用。 1. **商业SSO解决方案**: - **Siteminder**:由Netgrity开发,...

    java web sso 实现

    Java Web SSO(Single Sign-On)实现是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需多次输入凭证。本教程将基于提供的博文链接进行讲解,但请注意,由于没有直接提供具体内容,这里会...

    SSO单点登录实现与实现原理

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在多个相互关联的应用系统中只需要登录一次,即可访问所有系统,而无需再次输入凭证。这种技术在现代企业环境中非常常见,因为它提供了便捷的用户体验并...

    单点登录(SSO)实现方式(附源码).doc

    总结来说,SSO技术通过简化用户登录流程,提高用户体验,同时减少了用户密码管理的复杂性,是现代企业信息化建设中的重要组件。对于跨域SSO,理解其原理和实现方式,有助于开发者构建更加安全、便捷的多应用系统环境...

    java单点登录的实现与应用整合中SSO的技术实现.rar

    Java单点登录(Single Sign-On,简称SSO)是一种网络身份验证...这份"java单点登录的实现与应用整合中SSO的技术实现.pdf"资料应该涵盖了这些关键点,并提供了详细的指导和示例,对于理解和实践Java SSO具有很高的价值。

    关于SSO单点登录的简单实现

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次...通过理解其原理和实现方式,我们可以根据具体需求选择合适的技术方案,构建高效且安全的SSO系统。

    sso单点登录技术

    实现SSO技术需要考虑以下几个关键点: 1. **安全性**:确保用户认证信息在传输过程中不被窃取,通常采用HTTPS协议加密通信。 2. **兼容性**:支持多种浏览器和设备,以及不同开发语言和框架的系统集成。 3. **性能*...

    java单点登录的实现与应用整合中SSO的技术实现.pdf

    SSO技术在大型企业及组织的IT环境中尤为常见,因为它提高了用户体验,同时降低了管理多套独立认证系统的复杂性。 在Java环境中实现SSO,通常有以下几种方式: 1. **采用专门的SSO商业软件**: - Netgrity的...

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

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

    C#单点登陆组件源码SSO

    在IT行业中,SSO技术广泛应用于企业级应用,提高用户体验,简化管理并增强安全性。本项目提供了一款基于C#编写的SSO组件源码,其设计思路类似于微软的认证服务器和Web应用服务器,能够实现跨域和跨服务器的身份验证...

Global site tag (gtag.js) - Google Analytics