`

单点登录原理

 
阅读更多
随着SSO技术的流行,SSO的产品也是满天飞扬。所有著名的软件厂商都提供了相应的解决方案。在这里我并不想介绍自己公司(Sun Microsystems)的产品,而是对SSO技术本身进行解析,并且提供自己开发这一类产品的方法和简单演示。有关我写这篇文章的目的,请参考我的博客(http://yuwang881.blog.sohu.com/3184816.html)。
单 点登录的机制其实是比较简单的,用一个现实中的例子做比较。颐和园是北京著名的旅游景点,也是我常去的地方。在颐和园内部有许多独立的景点,例如“苏州 街”、“佛香阁”和“德和园”,都可以在各个景点门口单独买票。很多游客需要游玩所有德景点,这种买票方式很不方便,需要在每个景点门口排队买票,钱包拿 进拿出的,容易丢失,很不安全。于是绝大多数游客选择在大门口买一张通票(也叫套票),就可以玩遍所有的景点而不需要重新再买票。他们只需要在每个景点门 口出示一下刚才买的套票就能够被允许进入每个独立的景点。
单点登录的机制也一样,如下图所示,当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录(1);根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据--ticket2);用户再访问别的应用的时候(35)就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性(46)。如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。
从上面的视图可以看出,要实现SSO,需要以下主要的功能:
  • 所有应用系统共享一个身份认证系统。
    统一的认证系统是SSO的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行效验,判断其有效性。
  • 所有应用系统能够识别和提取ticket信息
    要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。
 
上面的功能只是一个非常简单的SSO架构,在现实情况下的SSO有着更加复杂的结构。有两点需要指出的是:
  • 单一的用户信息数据库并不是必须的,有许多系统不能将所有的用户信息都集中存储,应该允许用户信息放置在不同的存储中,如下图所示。事实上,只要统一认证系统,统一ticket的产生和效验,无论用户信息存储在什么地方,都能实现单点登录。
 
  • 统一的认证系统并不是说只有单个的认证服务器,如下图所示,整个系统可以存在两个以上的认证服务器,这些服务器甚至可以是不同的产品。认证服务器之间要通过标准的通讯协议,互相交换认证信息,就能完成更高级别的单点登录。如下图,当用户在访问应用系统1时,由第一个认证服务器进行认证后,得到由此服务器产生的ticket。当他访问应用系统4的时候,认证服务器2能够识别此ticket是由第一个服务器产生的,通过认证服务器之间标准的通讯协议(例如SAML)来交换认证信息,仍然能够完成SSO的功能。
 
 
分享到:
评论

相关推荐

    sso 单点登录原理文档附带流程图片

    "SSO单点登录原理文档附带流程图片" 单点登录(SSO)是一种用户认证机制,允许用户在访问多个应用系统时,只需要输入一次用户名和密码。这种机制可以减少用户登录的时间和出错的可能性,提高工作效率和安全性。 ...

    单点登录原理与简单实现

    ### 单点登录原理与简单实现 #### 一、单系统登录机制 ##### 1. HTTP无状态协议 - **HTTP特性**:HTTP是HyperText Transfer Protocol(超文本传输协议)的缩写,是一种用于从Web服务器传输超文本到本地浏览器的...

    CAS实现sso单点登录原理

    "CAS实现sso单点登录原理" CAS(Central Authentication Service)是Yale大学发起的一个企业级的、开源的项目,旨在为Web应用系统提供一种可靠的单点登录解决方法(属于Web SSO)。CAS开始于2001年,并在2004年12月...

    单点登录原理超经典,原理清晰易懂,帮你很好理解单点登录的原理后,再看相关文献代码就很容易明白了

    单点登录原理加部分核心实现例子,经典入门,快速理解单点登录 单点登录原理加部分核心实现例子,经典入门,快速理解单点登录

    单点登录原理介绍.ppt

    单点登录原理介绍.ppt 主要描述 java、c 等语言下如何开发单点登录模块的思想及架构。

    SSO单点登录

    ### SSO单点登录原理及CAS Server配置详解 #### 一、SSO简介 SSO(Single Sign-On,单点登录)是身份管理领域的重要组成部分,它允许用户在一个应用程序中进行一次身份验证后,无需再次登录即可访问同一组织内其他...

    单点登录SSO的实现原理

    单点登录SSO的实现原理 单点登录(SSO)是一种常见的技术实现原理,在多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。实现单点登录说到底就是要...

    CAS整合LDAP实现单点登录原理及部署

    CAS整合LDAP实现单点登录的原理及部署学习笔记,cas实现单点登录,ldap负责账户管理

    单点登录的原理

    单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统或应用中登录后,无需再次认证就能访问多个相互信任的系统。这种机制简化了用户管理和提高了用户体验,尤其在多系统集成的环境中。 ...

    cas单点登录原理以及例子的搭建和实现

    SSO(Single Sign-On)是一种身份验证机制,允许用户在一个应用系统中登录后,无需再次登录即可访问其他相互信任的应用系统。它分为Web-SSO和桌面SSO,本讨论主要集中在Web-SSO上。在Web-SSO中,所有应用通过Web协议...

    十分钟理解单点登录原理(图文)

    单点登录(Single Sign-On,简称SSO)是一种用户访问多个相关系统时只需进行一次身份验证即可访问所有系统的认证机制。单点登录技术通过集中的认证服务来简化用户的登录过程,并提高系统的安全性和管理效率。 HTTP...

    基于JWT实现SSO单点登录流程图解

    一、单点登录原理 单点登录是指用户只需要登录一次,就可以访问多个应用服务器上的资源。其原理是用户在认证服务器上完成认证,并获得一个授权码,然后应用服务器使用该授权码请求令牌,最后获得一个JWT,JWT中包含...

    JEECG 单点登录集成文档(kisso集成)

    1. Kisso单点登录原理: - Kisso实现单点登录(SSO)使用的是加密会话cookie机制,这为系统提供了“无状态”和“分散验证”的特点。 - session信息存放在服务器端,而cookie则存放于客户端,存在两种状态。持久...

    spring security + oauth 2.0 实现单点登录、认证授权

    Spring Security和OAuth 2.0是两个在Web应用安全领域广泛应用的框架,它们结合使用可以构建强大的单点登录(SSO)和认证授权系统。在这个系统中,`xp-sso-server`代表了认证服务器,而`xp-sso-client-a`和`xp-sso-...

    cas单点登录

    **单点登录原理** 单点登录的核心在于一个中心认证服务器(CAS Server)和各个需要认证的应用系统。当用户首次尝试访问受保护的应用时,会被重定向到CAS Server进行身份验证。如果用户通过验证,CAS Server会生成一...

    集成cas实现单点登录认证.zip

    2. 单点登录原理:SSO的核心思想是用户只需要进行一次身份验证,然后这个验证结果可以在所有信任的系统之间共享。当用户访问受保护的应用时,应用会重定向到认证中心进行验证,验证成功后,认证中心会返回一个票据给...

Global site tag (gtag.js) - Google Analytics