原文:http://soft-app.iteye.com/blog/928295
近来搞了一下单点登录。
我们弄的单点登录估计是最简单的。
【概要原理】:
假设有2个应用站点A和B,都需要登录才可以访问,另外有一个专门负责登录的站点SSO。
现在有个用户访问站点A,站点A会先检查该用户是否已经登录,如果已经登录,则返回相应页面;否则转向SSO进行登录,登录成功后,转回站点A,返回请求的相应页面。
接着,该用户又访问站点B。同样,站点B会先检查该用户是否已经登录。这时候发觉是已经登录,于是直接返回请求的相应页面。
这就是单点登录,一次登录,处处通行。
【细节原理】
如何知道用户是否登录?
在SSO登录的时候,会将登录信息记入SSO的COOKIE;返回应用站点A或B时,同时将登录信息记入A或B的COOKIE。因此,登录信息在SSO和应用站点各有一份。
当有用户请求页面的时候,应用站点先检查自身的COOKIE,有的话,就表示已经登录,没有才转向SSO进行登录。
转到SSO的时候,SSO也先检查自己的COOKIE,看是否已经登录,有的话则自动转回应用站点,告诉应用站点该用户已经登录;如果没有COOKIE,才出现登录界面,让用户进行登录。因此,无论哪个应用站点先登录,SSO都有COOKIE,从而实现单点登录。
SSO上的COOKIE应该是永久性COOKIE或者时间比较长的COOKIE,例如2周,1个月,等等;而应用站点的COOKIE是临时性COOKIE,浏览器关掉就会消失那种。
【登出】
步骤是先清除应用站点的登录COOKIE,然后转到SSO清除SSO的COOKIE。
由此可知,单点登录不等于单点登出,站点A登出以后,站点A和SSO的COOKIE都被清除,但站点B的COOKIE还在,它并不知道已经登出了,除非浏览器被关掉,否则它还可以正常运行。
看起来这是一个BUG。不过,对安全性要求不高的情况下,并不会出现很大的问题
分享到:
相关推荐
【CAS_SSO单点登录实例详细步骤】 CAS(Central Authentication Service)是一种开源的单点登录(Single Sign-On,简称SSO)框架,它允许用户通过一个认证入口访问多个应用系统,而无需多次登录。以下是对CAS_SSO单...
1. **单点登录(SSO)原理**: SSO允许用户在一个应用系统中登录后,无需再次验证身份即可访问其他相互信任的应用系统。CAS作为SSO的核心,负责集中处理用户的认证请求,提供一个统一的登录界面。 2. **CAS架构**...
关于单点登录的小文件,Sso是一个技术总监们关心和热衷讨论的话题,需求量很大,但是实际需要掌握的此技术的人不用很多,毕竟哪有那么多技术总监的岗位呢?每个公司有这么一位牛人就够了,或者好多公司共用一个这样...
java办公oa系统源码 转载请注明作者及出处: ...单点登录系统基于一种安全的通信协议,该协议通过多个系统之间的用户身份信息的交换来实现单点登录。使用单点登录系统时,用户只需要登录一次,就可以访问多个系
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。 --------------------- 作者:Tom_WangBo 来源:CSDN 原文:...
该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务...
- **参数化测试**:利用参数化功能来支持不同用户登录等场景。 - **验证点设置**:定义测试中的验证点,确保关键功能按预期工作。 #### QTP中的Action作用 Action在QTP中主要用于组织测试脚本,支持复用和维护。它...
SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在多个应用程序中使用一组共享的认证凭据,如用户名和密码。本详细设计说明书的下篇将深入探讨SSO的工作原理、实现方式以及常见问题。以下是SSO的相关...
【标题】:“JAVA OA平台源码(转载)SPRING BOOT...” 这个开源项目是一个基于Java技术的OA(Office Automation)管理系统的源代码实现,利用了Spring Boot框架进行开发。Spring Boot是Spring生态中的一个核心组件...
例如,如果你需要登录执行1次,查询执行2次,插入执行3次,你不必为每个事务创建单独的脚本或复制事务多次。Block功能可以在Run-time Settings的General选项中找到,它支持Sequential和Random两种模式。Sequential...
### Axure RP Pro 教程知识点详述 #### 一、Axure介绍 在互联网行业中,产品经理的一个核心职责就是设计产品原型(Prototype Design)。产品原型的设计不仅需要清晰地表达产品的结构和逻辑,还需要有效地沟通给UI...
下面将详细阐述该项目的核心知识点。 1. **SpringBoot框架**:SpringBoot是由Pivotal团队提供的全新框架,它简化了Spring应用的初始搭建以及开发过程。项目使用SpringBoot,意味着开发者可以快速构建可独立运行的、...
单点登录 常用框架 Spring SpringBoot 分布式 dubbo zookeeper RocketMQ RabbitMQ kafka 消息中间件 redis 分布式系统 线上问题调优(虚拟机,tomcat) 面试指南 工具 Git Docker 其他 权限控制(设计、shiro) Java...