`
cjh820425
  • 浏览: 154945 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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应用,使得每个应用都通过这个统一的认证服务来进行身份效验。

分享到:
评论

相关推荐

    spring boot 实现SSO单点登陆

    spring boot整合spring security 实现SSO单点登陆 完整DEMO. ...2、先后启动SsoServer、sso-resource、sso-client1、sso-client2 3、访问http://sso-taobao:8083/client1/ 或 http://sso-tmall:8084/client2/

    对跨域SSO(单点登录)思路的补充(UML 顺序图)

    注:图中代码段仅作为思路理解 直接copy当然是不可以的喔">关于SSO的思路 csdn和cnblog中都有许多大牛给出了解释 此图是在学习了 韩星 的 基于 Net的单点登录 SSO 解决方案 基础上做的个人总结(顺序图) 小弟初探 ...

    SSO个人实现方式

    SSO(Single Sign-On)是单点登录的缩写,是一种网络身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。在本文中,我们将探讨SSO的原理,以及如何通过提供的压缩包文件实现...

    SSO单点登陆解决方案

    SSO单点登录解决方案 SSO(Single Sign-On)单点登录解决方案旨在提供一个统一的身份验证入口,满足集团多个成员网站的身份验证需求。该方案的主要目标是实现单点登录,提高用户体验,降低成员网站的登录负载,并...

    SSO单点登录

    SSO(Single Sign-On)单点登录是一种网络身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。这个技术在现代企业信息化建设中扮演着重要角色,因为它提供了便捷的用户体验,同时...

    sso 单点登陆 java 动手写sso

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后,就能访问多个相互关联的应用系统,而无需再次进行身份验证。在Java中实现SSO,我们可以利用Spring Boot框架的强大功能,它提供了丰富的...

    sso单点登录demo

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。这个“sso单点登录demo”是基于Java Servlet技术实现的示例项目,旨在帮助开发者理解...

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

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

    SSO配置

    ### SSO配置:详解MOSS单点登录机制与配置步骤 #### 一、SSO服务概览 在现代企业IT架构中,单点登录(Single Sign-On,简称SSO)是一种用户认证机制,允许用户通过一次登录即可访问多个应用系统而无需再次输入密码...

    sso解决方案汇总

    本文将深入探讨SSO的几种常见实现方案,包括虚拟目录的主应用与子应用之间的SSO、不同验证机制下的SSO、同一域名或不同域名下子域名间SSO的实现,以及不同.NET版本和混合身份验证模式下的SSO解决方案。 ### 虚拟...

    smart-sso.rar

    单点登录(Single Sign-On,简称SSO)是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。在本文中,我们将深入探讨基于Spring Boot、MyBatis和Redis实现的SSO解决方案——...

    SSO跨域单点登录Demo

    SSO(Single Sign-On)跨域单点登录是一种网络身份验证机制,允许用户在一次登录后,可以在多个相互信任的应用系统之间自由切换,无需再次进行身份验证。这种技术广泛应用于多应用系统的集成环境中,提高了用户体验...

    xxl-sso-1.1.0

    XXL-SSO 1.1.0 是一个专为初学者设计的简单单点登录(Single Sign-On,简称SSO)系统示例。这个项目是基于Maven构建的,适用于那些想要学习如何实现SSO功能的开发者。通过将源代码导入Eclipse等开发工具,用户可以...

    SSO7.0.2安装包下载

    SSO(Single Sign-On)是一种身份验证机制,它允许用户在一个系统上登录后,无需再次认证即可访问其他多个相互信任的系统。SSO7.0.2是该技术的一个特定版本,可能包含了优化的安全特性、增强的用户体验以及对新系统...

    java web sso 实现

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

    SSO 单点登录(java)

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后,能够访问多个相互关联的应用系统,而无需再次输入凭证。在Java环境下实现SSO,通常涉及以下几个核心知识点: 1. **原理**:SSO的核心思想...

    sso单点登录

    单点登录(Single Sign-On,简称SSO)是一种网络访问控制机制,允许用户在一次登录后,无需再次认证即可访问多个相互信任的应用系统。这种方式极大地提高了用户体验,减少了用户记忆和输入多个账号密码的麻烦,同时...

    Laravel开发-sso

    **Laravel 开发中的 SSO 实现** 在 Laravel 框架中,Single Sign-On (SSO) 是一种用户身份验证方法,允许用户在一个应用系统中登录后,无需再次输入凭证即可访问其他关联的应用系统。这提高了用户体验,尤其是在...

    Laravel开发-sso-broker

    **Laravel 开发 - SSO (Single Sign-On) Broker** 在IT行业中,SSO(Single Sign-On)是一种身份验证机制,允许用户通过一次登录就可以访问多个相互关联的应用系统,极大地提高了用户体验并强化了安全性。Laravel是...

    WEBSSO-单点登录

    单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一次登录后,无需再次输入凭证即可访问多个相互关联的应用系统。它简化了用户在多个应用之间的身份验证过程,提高了用户体验,同时也降低了...

Global site tag (gtag.js) - Google Analytics