单点登录原理

news2024/11/17 13:45:39

单点登录原理

一、什么是单点登录

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

二、为什么需要单点登录

在一些子系统用户信息重叠的项目中,可以通过SSO实现统一的登录管理、认证授权。最经典的例子就是淘宝和天猫,如果你登录了淘宝,那么当你访问天猫的时候就会自动登录,因为这两个系统的账户是统一管理认证的。
那么就有一个问题:为什么无法用传统的单系统登录,一定要用单点登录?

cookie的跨域问题

最大的原因就是传统的单系统登录是使用Cookie来保持登录状态的,那么在这种多系统的登陆中,域名往往是不同的,而Cookie是无法跨域的。

也就是说我们需要其他的方案来代替Cookie去解决这种一次登录的问题。其实SSO就可以理解成为一个中转站,我们把Cookie统一存储到SSO中,访问的时候带上访问的路径以及其他参数,这样就可以登录后将你返回到你访问过来的页面,并且在SSO中留下Cookie。因为Cookie是前后端共享的,所以随后在其他的系统想要登录的时候只需要向SSO发送请求查看这个Cookie是否过期就可以保证多个系统中角色的登录状态。

三、Cookie+Token的单点登录原理

假设我们现在有A、B、C、D四个系统,以及SSO系统。ABCD四个系统均被SSO信任,且用户依托于SSO。
在这里插入图片描述
当我们在系统A中做请求操作的时候,会先检查登录状态,如果没有代表登录的Token,就向SSO页面发起loginCheck,检查SSO页面中是否有对应的Cookie,如果没有我们会被重定向到SSO页面中去(携带系统A的地址,以及其他参数),进行注册/登录。登录成功后,SSO页面会在当前页面中保留标识用户在对应系统登录成功的Cookie并且根据请求过来的参数,将我们重新重定向到系统A中,并告知我们已经登陆了(以Token的形式)
在这里插入图片描述
随后当我们在这台机器上再次访问其他的BCD任意一个系统时,都会向SSO系统发起一次loginCheck。这时SSO系统中已经有了Cookie了,那么就会跳过登录直接给对应的系统颁发Token,表示用户在该系统中登录了。
在这里插入图片描述
这样就可以实现单一系统登录后,其他互相信任的系统均可以免去登录步骤直接登录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/700383.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初识Go语言25-数据结构与算法【堆、Trie树、用go中的list与map实现LRU算法、用go语言中的map和堆实现超时缓存】

文章目录 堆Trie树练习-用go中的list与map实现LRU算法练习-用go语言中的map和堆实现超时缓存 堆 堆是一棵二叉树。大根堆即任意节点的值都大于等于其子节点。反之为小根堆。   用数组来表示堆,下标为 i 的结点的父结点下标为(i-1)/2,其左右子结点分别为…

Python图像锐化及边缘检测(Roberts、Prewitt、Sobel、Lapllacian、Canny、LOG)

目录 图像锐化概述 算法方法介绍 代码实现 效果展示 图像锐化概述 图像锐化(image sharpening)是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰,分为空间域处理和频域处理两类。图像锐化是为了突出图像上地物的边缘、轮…

Docker|kubernetes|本地镜像批量推送到Harbor私有仓库的脚本

前言: 可能有测试环境,而测试环境下有N多的镜像,需要批量导入到自己搭建的Harbor私有仓库内,一般涉及到批量的操作,自然还是使用脚本比较方便。 本文将介绍如何把某个服务器的本地镜像 推送到带有安全证书的私有Harb…

【P61】JMeter JDBC Connection Configuration

文章目录 一、JDBC Connection Configuration 参数说明二、准备工作 一、JDBC Connection Configuration 参数说明 可以给数据源配置不同的连接池,供后续 JDBC 采样器使用;使用前请将对应的数据库驱动复制到 $JMETER_HOME/lib/ 或者 $JMETER_HOME/lible…

使用注解开发

使用注解开发 为了方便查看测试结果以及方便调试,先熟悉和配置日志。 日志 日志工厂 如果一个数据库操作出现了异常、需要进行排错,可以通过查看日志的方式实现。 Mybatis内置的日志工厂能够提供日志功能,具体的日志实现有以下几种&#xff…

基于Java+Vue前后端分离“魅力”繁峙宣传网站设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

国产MCU-CW32F030开发学习-ST7735 LCD模块

国产MCU-CW32F030开发学习-ST7735 LCD模块 硬件平台 CW32_48F大学计划板CW32_IOT_EVA物联网开发评估套件0.96 IIC oled模块 ST7735 LCD模块 硬件接口使用的 2.54mm 间距的排针接口,这使用杜邦线进行连接. ST7735参数供电电压3.3~5.5V驱动ICST7735分辨率128x1…

基于antdv封装的特殊复杂表格,带通行描述信息、可展示通行的单元格信息、可跨页选择数据功能、分页功能、可编辑单元格功能

基于antdv封装的特殊复杂表格,带通行描述信息 主要功能: 可展示通行的单元格信息可跨页选择数据功能表单插槽、合计插槽、操作按钮区插槽分页功能接口内请求api可编辑单元格表格组件暴漏出的方法:查询、获取选中数据、接口返回数据、当前表…

消防应急照明和疏散指示系统手动控制的设计与应用

摘要:针对非集中控制型消防应急照明和疏散指示系统在火灾确认后如何手动控制系统的应急启动存在的实际问题:在哪里手动控制?由谁来手动控制?什么时候能够手动控制?提出 3 种手动控制应急启动系统的方案:① …

Fluttter的ClipRRect控件

ClipRRect简介 ClipRRect(Rounded Rectangle Clip)是Flutter中的一个控件,用于将其子控件剪裁为圆角矩形形状。 使用场景 ClipRRect通常在需要给子控件添加圆角效果时使用。它可以用于创建圆角图片、圆角容器等各种UI元素。 主要属性 bo…

uniapp 开发小程序之实现不同身份展示不同的 tabbar(底部导航栏),附带相关问题解答

效果展示: 引言 在开发过程中逐渐意识到uniapp原生的tabbar可能不能满足开发要求,通过浏览博客才选择使用uView的Tabbar 底部导航栏来实现,我选择用的是2X版本 安装 我是使用Hbuilder插件的方式引入的组件库,安装配置可以看这篇…

CVE-2023-34541 LangChain 任意命令执行

漏洞简介 LangChain是一个用于开发由语言模型驱动的应用程序的框架。 在LangChain受影响版本中,由于load_prompt函数加载提示文件时未对加载内容进行安全过滤,攻击者可通过构造包含恶意命令的提示文件,诱导用户加载该文件,即可造成…

单片机学习 14-DS18B20温度传感器实验

DS18B20 温度传感器实验 ​ 本次实验我们来学习精度较高的外部 DS18B20 数字温度传感器,由于此传感器是单总线接口,所以需要使用 51 单片机的一个 IO 口模拟单总线时序与 DS18B20 通信,将检测的环境温度读取出来。开发板上集成了 1 个 DS18B…

createdTime(new Date()) 数据库时间比实际多八小时

本来是createdTime(new Date()),一次生成两条数据 一直正常,今天却多八小时 一开始往new Date()差八个小时的问题上找, 网上说要 在apprication.yml文件中配置一下数据…

大佬详细讲解:银行核心项目之测试阶段

最近有小伙伴留言说「想了解核心系统建设中,冒烟、SIT、UAT、回归测试的重点,如何设计测试案例,或相关的资料推荐等」。 这个话题很笼统,测试这一块儿除了业务测试,还有性能测试、安全测试等;以及不同的角…

解决pyecharts图表在jupyter notebook无法显示的问题

在jupyter notebook尝试制作pyecharts图表,遇到无法显示的问题,网上查到的结果有各种不同原因,此处一一罗列,便于大家排查并彻底解决问题。 情况1:图表完全无法显示 解决方案:参考此文档 注:…

web自动化测试——xpath和css语法详解(五)

目录 1.css选择器 1.1什么是css选择器? 1.2css选择器语法 2.xpath 1.什么是xpath? 2.什么是XML? 3.XML与HTML 4.节点的概念 5.XPath 🎁更多干货 完整版文档下载方式: 1.css选择器 1.1什么是css选择器&#xff1…

SmaAt-UNet github

来源 SmaAt-UNet github SmaAt-UNet: 使用小型关注网结构的降水预报 论文链接 安装依赖 这个项目使用poetry作为依赖性管理。因此,安装所需的依赖项就像这样简单: conda create --name smaat-unet python3.9 conda activate smaat-unet p…

基于Java学生宿舍管理设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

正负压自动控制技术在离体肺通气系统中的应用

摘要:模拟肺呼吸过程的离体肺通气控制新方法——真空压力(正负压)法,目前还停留在理论层面的文献报道,还未见到这种方法的仪器化内容和细节。本文基于这种新方法提出了仪器化实现的具体解决方案,解决方案的…