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技术简介 单点登录(Single Sign-On,简称SSO)是一种身份管理技术的重要组成部分,它的主要目标是在多个相关但独立的应用系统之间实现用户的一次性认证。具体来说,当用户...
5. **用户培训**:向最终用户介绍新的登录流程,确保他们了解如何使用SSO。 "Alum.SSO"可能是一个关于SSO实现的项目文件,其中可能包含了IdP和SP的配置示例、代码示例、文档以及可能的测试数据。通过分析这些文件,...
SSO(Single Sign-On,单点登录)是一种身份验证机制,允许用户在访问多个相互关联的应用系统时只需要进行一次登录。这一技术简化了用户访问流程,增强了用户体验,并且在企业管理中提高了效率,降低了安全风险。 ...
这个系列可能包括了对CAS的介绍、SSO的基本概念、开发环境的搭建、CAS服务器的配置以及实际的软件包下载和构建流程。 标签“CAS SSO”进一步确认了重点是CAS作为实现SSO的工具。CAS是一个基于Java的协议,支持多种...
在《SSO单点登录Java开发教程(七)CAS-搭建CAS Server服务端(静态认证).md》和《SSO单点登录Java开发教程(八)CAS-搭建CAS Server服务端(JDBC认证).md》中,介绍了两种不同的认证方式:静态认证和JDBC认证,以适应不同...
Jasny/SSO 库介绍** Jasny/SSO是由荷兰开发者Arnout Boks创建的一个轻量级的SSO解决方案。它提供了一套简单的API,用于在不同的应用之间共享用户身份信息。在Laravel项目中集成Jasny/SSO库,可以轻松地为你的应用...
以下是对这些技术的详细介绍: 1. CAS:这是一个开源的SSO解决方案,由耶鲁大学开发。它提供了一个中心化的认证服务器,可以为各种客户端应用提供身份验证服务。CAS支持多种协议,包括CAS Protocol、SAML 1.1/2.0和...
该文档描述了SSO相关技术,对其概念做了入门介绍,对于想了解相关技术的人员或者是相关技术的爱好者有一定的帮助作用。
《Microsoft Office SharePoint Server 2007 Single Sign On 配置管理开发图解.pdf》这份文档很可能详细介绍了SharePoint 2007中的SSO配置过程,包括步骤、最佳实践和常见问题解决方案,是学习和实施SharePoint SSO...
本书旨在为单点登录(Single Sign-On,简称SSO)的导入提供入门级的介绍与指导。它不仅涵盖了SSO的基本概念,还深入探讨了其架构设计、实施策略以及如何通过SSO提高系统的安全性和效率。 #### SSO简介 ##### Web...
本文档主要介绍的是淘淘商城SSO接口的具体实现方案,包括用户注册、用户登录、用户信息查询及安全退出等功能模块。 #### 二、接口概览 ##### 2.1 注册接口 **功能描述:** 该接口用于用户注册,用户需提供必要的...
2. **源码必读.txt**:这很可能是一个包含项目介绍、代码结构解析、使用指南或者开发注意事项的文本文件。阅读这个文件对于理解源代码的组织和工作原理至关重要。 3. **App3**:这可能是一个示例应用,用于展示如何...
本文将详细介绍基于CAS(Central Authentication Service)实现的sso单点登录代码,一个广泛应用于网络应用程序中的开源SSO解决方案。 ### 什么是CAS和SSO? CAS是一个开源的SSO解决方案,它允许用户仅通过一次...
#### 背景介绍 在企业的早期发展阶段,所使用的内部系统数量有限,通常为一两个,每个系统都配备有自己的登录模块。这样的架构对于运营人员来说非常便捷,因为他们只需要记住一套登录凭据即可访问所有系统。然而,...
4. **Java SSO实现**:介绍如何使用Java CAS客户端库集成到应用程序中,设置服务代理和验证机制。 5. **.NET SSO实现**:如果文档包含这部分,将涵盖在.NET环境中集成CAS的步骤,包括使用.NET CAS客户端库和配置。 6...
1. **OAuth流程**:介绍OAuth的授权码、Implicit、密码模式等不同流程,以及在SSO场景下如何选择合适的方式。 2. **客户端注册**:在OAuth中,每个SP需要在IDP注册,获取客户端ID和秘密,以便于交互。 3. **安全...
下面详细介绍这些关键技术点: 1. **设置Cookie的路径为setPath("/")** - 这意味着Cookie在整个Tomcat目录下都是有效的。例如,如果一个用户在一个子应用中登录了,那么这个Cookie可以被同一Tomcat下的其他子应用...
下面将详细介绍C#.NET中SSO单点登录WebAuth部分的相关知识点。 1. ASP.NET身份验证基础:在ASP.NET中,主要有两种内置的身份验证模式:Forms Authentication和Windows Authentication。在SSO场景中,通常使用Forms ...
下面将详细介绍这个过程中的关键知识点。 1. **Spring Security**: Spring Security是Spring生态中的安全组件,提供了一套完整的安全解决方案,包括认证、授权等。在SSO场景中,它负责处理用户的登录请求,生成和...
本文档详细介绍了两台domino服务器如何使用“Web服务器配置”和“使用Internet 站点文档”等两种方式建立web sso的详细步骤