单点登录之前世今生

SSO(单点登录)技术漫谈 回到Web1.0时代,这里有“世界上最好的语言”PHP,也有新贵JSP等等,每个企业都有大量的内部应用系统(譬如oa系统,hr系统,休假系统……),小的企业可能十几个应用,大的可能有成千上万个系统,而且很可能每个系统都还是不同的语言写的。 在日常工作中,人类为了能进入各个系统,必须得通过帐号和密码进行登录验证(身份验证)后,才能获取到跟自己身份相符的信息。那么问题来了,这么多的系统,每个系统都搞一个密码的话,大多数用户都要记忆不少于10个用户名和相应密码。为了便于记忆,很多人都在不同的站点使用相同的…… 阅读详情

HTTP无状态协议

    HTTP是无状态协议,浏览器的每一次请求,服务器都会独立处理,不与之前或之后的请求产生关联,所以,任何用户都可以通过浏览器访问服务器资源。


session和cookie机制

   session是服务器级别的,cookie是浏览器级别的。

   session:浏览器第一次请求服务器,服务器创建一个会话,并将会话的id作为响应的一部分发送给浏览器,浏览器存储会话id,之后浏览器的每一次访问服务器都会带上会话id,服务器根据会话id就知道是不是同一个用户了。

                                      

   cookie:session机制每一次浏览器访问服务器,服务器都要判断一次会话id,显然不太合适。于是浏览器来维护会话id就是cookie机制。浏览器每次访问服务器都会自动附带cookie信息。

                                       

    cookie和session机制就可以确保一个用户登录到一个系统后,之后的操作在一定时间内就不需要再次登录系统。


多系统解决方案1--顶级域名

   以上的session和cookie都只适用于单系统,但是系统数量变多成为多系统时,我们总不能访问一个分支系统就登录一次吧,于是将这些子系统的域名统一到一个顶级域名中,然后将cookie域设置成顶级域名,于是各个子系统之间就可以共享cookie。


单点登录

从哪来

    由于共享cookie有很多局限性。例如:域名难以统一,子系统技术难以统一。所以,需要一种全新的登录方式实现多系统应用群的登录--单点登录。


是什么

     单点登录全称single sign on,简称SSO,指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录和单点注销两部分。


如何实现

登录

    sso需要一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,sso认证中心验证用户的用户名密码没问题,创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到令牌,即得到了授权,可以借此创建局部会话,局部会话登录方式与单系统的登录方式相同。具体过程如图所示:        

                       

操作步骤如下:

1.用户访问系统1的受保护资源,系统1发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数
2.sso认证中心发现用户未登录,将用户引导至登录页面
3.用户输入用户名密码提交登录申请
4.sso认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌
5.sso认证中心带着令牌跳转会最初的请求地址(系统1)
6.系统1拿到令牌,去sso认证中心校验令牌是否有效
7.sso认证中心校验令牌,返回有效,注册系统1
8.系统1使用该令牌创建与用户的会话,称为局部会话,返回受保护资源
9.用户访问系统2的受保护资源
10.系统2发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数
11.sso认证中心发现用户已登录,跳转回系统2的地址,并附上令牌
12.系统2拿到令牌,去sso认证中心校验令牌是否有效
13.
sso认证中心校验令牌,返回有效,注册系统2

14.系统2使用该令牌创建与用户的局部会话,返回受保护资源骤


注销

    在一个子系统中注销,所有的子系统都会注销。如下图所示:

          

具体操作步骤

1.用户向系统1发起注销请求
2.系统1根据用户与系统1建立的会话id拿到令牌,向sso认证中心发起注销请求
3.sso认证中心校验令牌有效,销毁全局会话,同时取出所有用此令牌注册的系统地址
4.sso认证中心向所有注册系统发起注销请求
5.各注册系统接收sso认证中心的注销请求,销毁局部会话
6.sso认证中心引导用户至登录页面

一文讲透单点登录架构思想(SSO) 单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是比较流行的。摘自百度百科。 阅读详情

相关推荐

eSDK UC极简开发敏捷创新系列之一:Huawei eSDK到底是个啥玩意儿?

开放是创新之源,一直以来,华为全力支持开源。在解决方案层面,华为专注ICT基础设施,坚守边界,与合作伙伴开放合作满足各类不同的企业需求。在客户层面,通过合作伙伴去签约,由华为的合作伙伴提供商业合同和服务。在此大环境下,eSDK应运而生,通过eSDK开放接口,可以使合作伙伴高效地与华为产品联合起来,给客户带来更多增值价值。

华为开发者社区的博客 9457

单点登录(SSO)详解——超详细

此种实现方式比较简单,但不支持跨主域名。

qq_53895518的博客 3万+

xxl-sso:分布式单点登录框架。(分布式单点登录框架XXL-SSO)

XXL-单点登录 XXL-SSO,一种分布式单点登录框架。 介绍 XXL-SSO是一个分布式单点登录框架。 您只需登录一次即可访问所有受信任的应用程序系统。 它具有“轻量级,可伸缩,分布式,跨域,Web + APP支持访问”功能。 现在,它已经是开放源代码,真正的“开箱即用”。 XXL-SSO是一个分布式单点登录框架。只需要登录一次就可以可以访问所有相互信任的应用系统。拥有“轻量级,分布,跨域,Cookie + Token均支持,Web + APP均支持”等特性。扩展开放源代码,开箱即用。 文献资料 通讯 产品特点 简洁:API直观简洁,可快速上手 轻量级:环境依赖小,部署与接收成本费用

单点登录(SSO)看这一篇就够了

单点登录(SSO)看这一篇就够了

乌龟的专栏 1万+

Python与西门子PLC数据交互实战:基于Snap7的跨平台工业通信指南

本文详细介绍了如何使用Python和Snap7库实现与西门子PLC的数据交互。内容涵盖跨平台环境搭建、连接参数配置、数据读写实战及性能优化技巧,为工业自动化、数据采集和智能制造场景提供了一套轻量、灵活且高效的通信解决方案。

vim8coder的博客 287

ESP32 DMX512与RDM协议栈开发指南

DMX512-A是专业灯光控制领域广泛采用的串行通信标准,基于RS-485物理层实现确定性单向数据传输;RDM(Remote Device Management)则在其基础上扩展双向、可寻址、可配置的智能管理能力,满足现代舞台设备远程固件升级、自动发现与参数配置需求。二者共用同一总线但时序与帧结构严格隔离,对硬件定时精度、中断响应延迟及电气隔离提出极高要求。在嵌入式实践中,ESP32凭借Wi-Fi/蓝牙连接能力与丰富外设资源,成为构建低成本智能DMX节点的理想平台。esp_dmx协议栈正是面向该场景的高性能

weixin_34945060的博客 316

单点登录 SSO 的前世今生

编辑:业余草来源:https://www.xttblog.com/?p=4967在这篇《手把手教你打造 OAuth2 实现单点登录 SSO(附源码)》文章里,已经有里 SSO 的手把手实...

xmt1139057136的专栏 941

技术美术个人笔记(十三)——Houdini金属弯曲模拟

最近接收到使用Houdini自动解算破损/砸坏/扭曲汽车的需求,以此文记录制作金属弯曲自动解算工具时使用的部分节点解析;

小谁的博客 2150

用上帝视角俯瞰单点登录的前世与今生(内含两种实现方式的源码)

目录 1.什么是单点登录? 2.单点登录的前世与今生——前世篇(SSO) 2.1.单点登录的定义是: 2.2.总结成简单一句话说就是: 2.3.单点登录的优点: 2.4.拿去游乐园买票来讲一下单点登录的简单实现机制: 2.5.单点登录的实现机制: 2.6.单点登录的分类: 2.7.同域SSO: 2.7.1.同域SSO概念: 2.7.2.同父域SSO概念: 2.7.3....

小名同学 22万+

Fiddler抓包实战:5分钟搞定微信公众号历史消息接口分析(附完整Python代码)

本文详细介绍了如何使用Fiddler抓包工具逆向分析微信公众号历史消息接口,并提供完整的Python代码实现。从环境准备、动态参数捕获到商业级采集系统架构设计,全面解析了突破官方接口限制的技术方案,帮助开发者高效获取公众号文章数据。

tree8的博客 329

KEIL MDK实战:如何用fromelf工具解析STM32的ELF文件结构(附完整命令行)

本文详细介绍了如何使用KEIL MDK中的fromelf工具解析STM32的ELF文件结构,包括内存段分析、符号表追踪和反汇编关键函数等实战技巧。通过完整的命令行示例,帮助嵌入式开发者优化内存占用、排查运行时问题,并提升STM32项目的开发效率。

weixin_42631411的博客 188

单点登录(SSO)之前世今生

原地址:https://blog.youkuaiyun.com/weienjun/article/details/80059691HTTP无状态协议 HTTP是无状态协议,浏览器的每一次请求,...

公众号-老炮说Java 208

AgentScope 实战训练营-A2UI的完整实现:从概念到部署全流程

本文详细介绍了如何在AgentScope框架中实现Google的A2UI(Agent-to-Agent UI)协议,构建一个能生成可交互UI的智能体应用。文章涵盖了从环境准备、架构设计、核心代码实现到测试部署的完整流程,包括A2UI协议解析、技能系统、客户端实现、通信机制等核心技术点,适合AI Agent和前端开发人员学习参考。

program哲学 202

验证登录的前世今生:session、cookie

参考地址:彻底理解cookie,session,token 使用JSON Web Token设计单点登录系统 1、很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应, 尤其是我不用记住是谁刚刚发了HTTP请求, 每个请求对我...

156

RAG面试内容整理-7. 多轮问答与上下文拼接策略

在对话式的RAG应用中,多轮问答需要处理上下文相关性问题:用户的提问往往依赖于之前的对话内容。为正确理解用户每一轮的问题,系统需要保留和传递对话历史信息。

不务正业的猿 378

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LDAP的前世今生

上世界80年代,就有了LDAP的雏形。 我接触到最早的Windows系列的服务器,是Windows2000 Professional版本里可以加入ActiveDirectory,后来从Windows2003 Server一直用到Windows2008,和AD结下了不解之缘。 尝试过把Windows2008作为Domain Controller,Ubuntu尝试加入域,失败了。当时找到的错误问题...

weixin_33701617的博客 387

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

「优知学院」淘宝架构的前世今生(下)

“ 淘宝技术架构前世今生就是一部架构活教材,今天仍然由陈睿mikechen为大家解读淘宝架构。 我稍微把前面淘宝架构的三个阶段简短总结: 淘宝1.0 采用LAMP mysql读写操作 淘宝2.0 把mysql替换为oracle,为了使用oracle的连接池,php采用代理连接 sqlreplay 淘宝3.0 把php替换为java,业务代码重写,采用多层结构,全部替换为java体系,加入缓存、搜索、分布式存储。 唯一的主线已经非常清晰了,...

一个有情怀的程序猿博客 563

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

LDAP身份验证前世今生

LDAP 自1993年首次推出以来一直非常成功。实际上,LDAP.v3 在1997年成为目录服务的互联网标准。LDAP 还启发了 OpenLDAP 的创建,这是一个领先的开源目录服务平台。

FeelTouch Labs 586

企业信息化的前世今生

企业发展到一定阶段,或主观或客观的总会有些信息化的味道。如果只是家卖衣服的商铺,老板手持计算器也许就可以搞定一切;但如果是产品化了的企业,拥有一定数量的经营资源与管理对象,计算器可能就不是那么好用了。 企业的正常运行,总离不开对资源、客户、员工、产品/服务、业务、财务、管理等各方面的把握与控制,这七项,是企业经营管理的核心要素,因此,围绕这些,企业不可避免的需要开发一些系统,来维...

weixin_30525825的博客 149

OAuth 2.0与JWT的默契:Bearer token的前世今生与最佳实践

本文深入探讨了OAuth 2.0授权框架中Bearer Token的核心角色与设计哲学,并详细解析了JWT作为其流行载体的优势与安全实践。文章从HTTP认证演进出发,阐述了Bearer Token如何成为现代API无状态认证的基石,并提供了从令牌签发、验证到安全增强与兼容性处理的全链路最佳实践指南。

w3x4y的博客 201

Java开发基础不牢?javacas单点登录实现

前言 今年我也33了,离传说中不好找工作的35岁又更近了。说没有焦虑是对自己撒谎,于是我采访了一些人,自己思考了下,写下了这篇文章,希望能有些共鸣。 先看看大家的态度: 色老力衰,不好忽悠,不能带头加班 老油条,学不动,加班就是磨洋工 关键还是贡献的价值。能不能给业务带来价值 找背书 基本逻辑就是,比你这个难得多的哥们都搞定了,你这点小事根本不再话下 去bat镀镀金,捷径 看看你的上司是咋过来的 不知从何时起,很多企业将入职门槛限定在35岁以下,“35岁”已然成为职场老鸟的魔咒,而近年来有关**“程序员

m0_57767600的博客 143

信息安全:告别重复登录,一文读懂联邦认证的前世今生 (SAML & OIDC)

联邦认证技术的发展,是互联网从一个个信息孤岛走向价值互联的缩影。它通过建立标准化的信任协议,极大地简化了用户的数字生活,同时也为企业提供了更安全、更集中的身份管理方案。

十年运维开发经验的王义杰在此分享自己的知识和经验 1159

Java入门教程!细谈分布式事务的前世今生

蚂蚁金服一面:分布式架构 50分钟 个人介绍加项目介绍20分钟 微服务架构是什么,它的优缺点? ACID CAP BASE理论 分布式一致性协议,二段、三段、TCC,优缺点 RPC过程 服务注册中心宕机了怎么办? 微服务还有其他什么组件 分布式架构与微服务的关系 你有什么问题要问我的。 蚂蚁金服二面:1个小时 上来不用自我介绍,项目介绍,直接开始 算法来两道 各种排序算法、未排序常规数据查找第K大的数,时间复杂度。 二叉树的深度 操作系统来两道 虚拟内存分页了解不? 进程和线程区别? 数据库来

m0_56835488的博客 118
上一篇: Web API使用教程
下一篇: 单点登录之jwt
魏恩君--Caroline
博客等级 码龄11年 140粉丝 162原创
评论 83
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值