`

单点登录

    博客分类:
  • Java
 
阅读更多

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

 

使用“单点登录”整合后,只需要登录一次就可以进入多个系统,而不需要重新登录,这不仅仅带来了更好的用户体验,更重要的是降低了安全的风险和管理的消耗。

 

另外,使用“单点登录”还是SOA时代的需求之一。在面向服务的架构中,服务和服务之间,程序和程序之间的通讯大量存在,服务之间的安全认证是SOA应用的难点之一,应此建立“单点登录”的系统体系能够大大简化SOA的安全问题,提高服务之间的合作效率。

 

技术实现机制:

 

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

 

 

支持多域的单点登陆:

1、需要验证服务器验证服 务器相当于同一入口,任何登陆和注销工作都会通过这里,验证的工作也在这里进行 2、过程

a,b,c服务器为业务服务器,d为验证服务器

用 户A在a服务器上进行需要验证的操作(比如url_a),a服务器发现用户未登陆,则跳转到d服务器的登陆页面,d服务器通过A用户验证后,生成用户的 session,并同时生成用户的一次性令牌并附加在url_a后面(比如url_a?ssid=key_id)进行跳转,此时a服务器根据传入的 ssid通过远程调用或者服务器间私有通道调用d服务器的验证服务,d服务器判断令牌是否有效并删除次令牌,如果通过验证此时a服务器获得用户信息,d服 务器记录a服务器的地址,此时A用户在a服务器上已经登陆了。如果A用户在b或者c服务器上访问需要验证的操作比如(url_b),则跳转到d服务器的登 陆页面,因为已经存在着a用户的session,此时同样生成一次性令牌重复上述过程。

3、退出过程用户A在a、b服务器登陆,用户点击 d服务器的退出链接,则d服务器清除d服务器session,同时根据session中A用户登录过的服务器列表通过页面上有img指到a,b服务器的退 出功能,此时通过这种方式同时清除a,b服务器上的A用户session

 

 

要实现SSO,需要以下主要的功能:
  • 所有应用系统共享一个身份认证系统。
    统一的认证系统是SSO的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行效验,判断其有效性。
  • 所有应用系统能够识别和提取ticket信息
    要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。

 

上面的功能只是一个非常简单的SSO架构,在现实情况下的SSO有着更加复杂的结构。有两点需要指出的是:
  • 单一的用户信息数据库并不是必须的,有许多系统不能将所有的用户信息都集中存储,应该允许用户信息放置在不同的存储中,如下图所示。事实上,只要统一认证系统,统一ticket的产生和效验,无论用户信息存储在什么地方,都能实现单点登录。

 

 

 

 

统一的认证系统并不是说只有单个的认证服务器,如下图所示,整个系统可以存在两个以上的认证服务器,这些服务器甚至可以是不同的产品。认证服务器之间要通过标准的通讯协议,互相交换认证信息,就能完成更高级别的单点登录。如下图,当用户在访问应用系统1时,由第一个认证服务器进行认证后,得到由此服务器产生的ticket。当他访问应用系统4的时候,认证服务器2能够识别此ticket是由第一个服务器产生的,通过认证服务器之间标准的通讯协议(例如SAML)来交换认证信息,仍然能够完成SSO的功能。

 

分享到:
评论

相关推荐

    单点登录demo

    单点登录

    宁盾单点登录(SSO)与致远A8对接方案.pdf

    宁盾单点登录(SSO)与致远A8对接方案.pdf宁盾单点登录(SSO)与致远A8对接方案.pdf宁盾单点登录(SSO)与致远A8对接方案.pdf宁盾单点登录(SSO)与致远A8对接方案.pdf宁盾单点登录(SSO)与致远A8对接方案.pdf宁盾单点登录...

    Jeecg配置单点登录 登录验证完整代码

    Jeecg配置单点登录 登录验证完整代码

    exchange邮件系统单点登录整合

    exchange邮件系统单点登录整合,单点登录相关设置,支持IE8以上浏览器

    单点登录系统设计与实现源码

    由于用户还没有在单点登录系统上登录过,所以跳转到单点登录系统用户登录页面http://localhost:7771/SSOSite/SignIn.aspx 2、输入正确的用户名和密码(51aspx/51aspx),跳转到企业门户系统首页面...

    vue+springboot前后端分离实现单点登录跨域问题解决方法

    那就意味着做单点登录咯,至于不知道什么是单点登录的同学,建议去找一下万能的度娘。 刚接到这个需求的时候,老夫心里便不屑的认为:区区登录何足挂齿,但是,开发的过程狠狠的打了我一巴掌(火辣辣的一巴掌)。。...

    NC6.5单点登录源码

    NC6.5单点登录,支持单点打开首页以及待办事项直接打开NC单据

    基于SpringBoot+Spring+SpringMvc+Mybatis+Shiro+Redis 开发单点登录管理系统源码

    基于 SpringBoot + Spring + SpringMvc + Mybatis + Shiro+ Redis 开发单点登录管理系统 基于 SpringBoot + Spring + SpringMvc + Mybatis + Shiro+ Redis 开发单点登录管理系统 基于 SpringBoot + Spring + ...

    sso单点登录ppt.ppt

    sso单点登录ppt.ppt

    多域名SSO单点登录

    应用系统应该能对Token进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。 比如说,我现在有3个分站点和1个认证中心(总站)。当用户访问分站点的时候,分站点会发...

    单点登录系统(CS程序)

    基于portal的单点登录系统,系统由CS服务端和BS服务系统组成,一般用户可以通过IE来访问单点登录系统,附件内包含了readme.txt有本系统说明。 备注: 这里只有CS程序及说明,BS程序可以找资源名称:单点登录系统...

    Spring+LDAP实现单点登录

    去掉JAR包了。Spring+LDAP实现单点登录SSO 单点登录 LDAP SPRING

    SSO单点登录

    ASP.NET跨域单点登录源码 asp.net 跨域单点登录实现原理: 当用户第一次访问web应用系统1的时候,因为还没有登录,会被引导到认证中心进行登录; 根据用户提供的登录信息,认证系统进行身份效验,如果 通过效验,...

    JAVA单点登录的实现

    1,通过session会话来判断 2,实现单点登录

    powerBI单点登录

    适用于门户开发,此功能只限于IE浏览器可用,使用的是ActiceXobject函数,实现单点登录

    单点登录个人总结

    单点登录,Single Sign On,也就是我们平时所说的SSO。一般大型的系统平台,都会用到这个东西。它解决了频繁登录、验证的过程,也就是用户的一次登录得到其他系统的信任。可以说:一次登录,全站漫游。实现单点登录...

    跨域单点登录

    单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO和桌面SSO的实现...

    漂亮的单点登录网页模版

    漂亮的单点登录网页模版

    单点登录系统

    单点登录 单点登录 单点登录 单点登录 单点登录 单点登录 单点登录 单点登录 单点登录 单点登录

    java 单点登录.docx

    单点登录

Global site tag (gtag.js) - Google Analytics