【SSO】单点登录方案

news2024/12/24 13:22:09

一、单点登录问题

由于Http请求是无状态的请求,服务器无法确认登录信息。当用户登录时,将用户信息存储到Session中,Session将认证的用户信息以Cookie方式返回给客户端。每次用户请求不同的业务系统,都会携带Cookie去请求。保证了不同系统之间访问时,不需要用户重新认证。

如下图所示:当客户端登录商品系统时(①②),Session会记录用户登录的信息并返回给Cookie。当用户发起支付时(③),支付系统会请求Session进行认证(④),Session认证成功后返回认证信息给支付系统(⑤),支付系统完成支付并返回支付信息给商品系统(⑥),从而完成整个购买支付流程。

  • 但不同的服务器,session无法共享,导致商品系统和支付系统无法通信!!!
  • cookie无法跨域,存放在商品系统【http://goods.com】下的cookie认证信息无法在请求支付系统【http://pay.com】中使用(域名不同)!!!

二、Session共享的解决方案

  1. Tomcat集群Session全局复制(集群内每个tomcat的session完全同步)【会影响集群的性能,不建议】。
  2. 根据请求的IP进行Hash映射到对应的机器上(这就相当于请求的IP一直会访问同一个服务器)【如果服务器宕机了,会丢失了一大部分Session的数据,不建议】
  3. 把Session数据放在Redis中(使用Redis模拟Session)【建议】
  4. 独立出来一个认证子系统,将所有的认证信息存放到认证子系统中

三、cookie跨域问题的解决方案

  1. 服务端将Cookie写到客户端后,客户端对Cookie进行解析,将Token解析出来,此后请求都把这个Token带上。
  2. 多个域名共享Cookie,在写到客户端的时候设置Cookie的domain。
  3. 将Token保存在SessionStroage中(不依赖Cookie就没有跨域的问题了)

四、单点登录认证系统实现

 下面对上图简要描述

(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使用该令牌创建与用户的局部会话,返回受保护资源。

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

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

相关文章

CloudCompare

零、安装 软件包直接安装 帮助文档:http://www.cloudcompare.org/doc 官网:http://www.danielgm.net/cc/ 一、操作:分割、删除点 1、打开文件File–>Open 支持的格式: 2、旋转和移动点云 鼠标左键可以旋转、右键可以移动 定轴…

Yolov8改进---注意力机制:ICASSP2023 EMA基于跨空间学习的高效多尺度注意力、效果优于ECA、CBAM、CA | 小目标涨点明显

1.EMA介绍 论文:https://arxiv.org/abs/2305.13563v1 录用:ICASSP2023 通过通道降维来建模跨通道关系可能会给提取深度视觉表示带来副作用。本文提出了一种新的高效的多尺度注意力(EMA)模块。以保留每个通道上的信息和降低计算开销为目标,将部分通道重塑为批量维度,并将…

【Linux】ubuntu20.04上使用xrdp控制输入密码之后一直停顿不动,进不去桌面环境

一、问题背景 如下图所示,每次登录桌面一段时间,就会因为自动锁定机制而锁定账户。 重新去激活账户时,输入正确的密码,回车确定,之后就停留在上面那个界面了。 二、 解决方案 2.1 重启xrdp服务 这个方法&#xff…

支付宝沙箱支付详细教程(IDEA版)—2023最新版

😇作者介绍:一个有梦想、有理想、有目标的,且渴望能够学有所成的追梦人。 🎆学习格言:不读书的人,思想就会停止。——狄德罗 ⛪️个人主页:进入博主主页 🗼专栏系列:无 &#x1f33c…

leetcode数据库题第七弹

leetcode数据库题第七弹 1581. 进店却未进行过交易的顾客1587. 银行账户概要 II1633. 各赛事的用户注册率1661. 每台机器的进程平均运行时间1667. 修复表中的名字1683. 无效的推文1693. 每天的领导和合伙人1729. 求关注者的数量1731. 每位经理的下属员工数量1741. 查找每个员工…

软件性能测试流程指南

1 编写目的 规范Performance Tesing性能测试过程中的活动,明确测试活动流程和过程中各组织、角色的职责;使性能测试工作有章可循,控制测试活动按照计划有效的进行,用于指导性能测试项目的实施,从流程和规范性上保证测…

详细讲解~接口测试实践

目录 前言: 接口测试 为什么介绍接口测试? 模块接口测试 web接口测试 前言: 接口测试是软件测试中的重要环节,它涉及对系统的API(Application Programming Int…

中间件解析漏洞

服务器解析漏洞算是历史比较悠久了,但如今依然广泛存在。在此记录汇总一些常见服务器(WEB server)的解析漏洞,比如IIS6.0、IIS7.5、apache、nginx等 2|0 二、IIS5.x-6.x解析漏洞(针对asa/asp/cer) 2|11、打…

仿造 elementUI 实现一个下拉选择器

前言: 近期在项目中遇到了一个设计需求,在 UI 给我提供的原图中有一个和 element UI 选择器功能基本一致的样式,但是由于我们是有自己的主体颜色和一些细节上的样式设计的,无法直接复用 element 组件库。所以需要自己动手实现一个…

Linux3.权限

1.外壳程序(shell):通常情况下用户不直接与操作系统进行交互,而是通过外壳程序,在windows下叫做图形化界面,在Linux下叫做指令。 centos7使用的外壳程序是bash。 作用 :a.是用户和操作系统交互的中间软件层。b可以在一定程度起到保护操作系统…

HackTheBox - 学院【CPTS】复习3 - XSS、文件包含、文件上传、命令注入

XSS 登录表单 document.write(<h3>Please login to continue</h3><form actionhttp://OUR_IP><input type"username" name"username" placeholder"Username"><input type"password" name"password&…

动态规划:积木画

积木画 问题描述 小明最近迷上了积木画, 有这么两种类型的积木, 分别为 I I I 型&#xff08;大小为 2 个单位面积) 和 L L L 型 (大小为 3 个单位面积): 同时, 小明有一块面积大小为 2 N 2 \times N 2N 的画布, 画布由 2 N 2 \times N 2N 个 1 1 1 \times 1 11 区域…

如何解读 Java 的继承和多态特性?

&#x1f482; 个人网站:【海拥】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 前言继承类的继承继承的…

Gartner宣布,亚马逊云科技全球数据库市场份额超四分之一

对比常规的基础设施上云和应用上云,企业对于数据上云一直保持最为慎重的态度。不过也不是一成不变的,Gartner前不久公布的一组数据显示,在2022年全球数据库管理系统的市场份额排名中,作为纯云厂商的亚马逊云科技,超越了老牌传统数据库厂商甲骨文和微软,首次位居第一。 降低企业…

Qt信号和信号槽(二)

目录 信号槽使用拓展 示例1&#xff08;一个信号可以对应多个槽函数&#xff09;&#xff08;在上篇文章的代码中进行修改&#xff09;&#xff1a; 示例2(用信号连接信号)&#xff1a; 信号槽的连接方式 示例&#xff1a; Lambda表达式 语法格式 定义和调用 信号槽使用拓…

【金融量化】如何筛选基金?

基金的评价与筛选 1 筛选步骤 1.1 股票型基金 &#xff08;1&#xff09;构建备选池 优先考虑股票配置较为稳定的基金&#xff0c;这样才能预估基金未来一段时间的表现&#xff0c;及其对基准股票指数的跟踪情况。因此&#xff0c;首先应该剔除那些仓位变化较大、本身在进行…

[刷题] 删除有序数组中的重复项

系列文章目录 删除有序数组中的重复项 文章目录 系列文章目录在这里插入图片描述 前言1、题目1.2、判题标准1.3、示例 2、解题2.1、双指针正向查找2.1、逆序删除 3、总结 前言 数据结构在程序世界里非常重要&#xff0c;尤其大厂面试是必考项目&#xff0c;今天随机到[删除有…

“三步走”构建全链路数据能力,助力企业全面唤醒数据价值

01 企业数字化转型加速前进&#xff0c;数据价值唤醒仍面临多重挑战 数字经济蓬勃发展时代&#xff0c;数据已成为关键生产要素。随着国家政策对数据要素价值释放的方向引领&#xff0c;数据赋能企业经营决策、业务模式创新的需求不断强化&#xff0c;以及新兴技术工具的有效支…

[LeetCode 1401]圆和矩形是否有重叠

题目描述 给你一个以 (radius, xCenter, yCenter) 表示的圆和一个与坐标轴平行的矩形 (x1, y1, x2, y2) &#xff0c;其中 (x1, y1) 是矩形左下角的坐标&#xff0c;而 (x2, y2) 是右上角的坐标。 如果圆和矩形有重叠的部分&#xff0c;请你返回 true &#xff0c;否则返回 f…

音乐格式转换器mp3免费方法?分享四个实用的!

在日常工作和娱乐中&#xff0c;我们经常会遇到并使用MP3这种音频格式。它以小文件尺寸和优秀音质为特点&#xff0c;成为许多音频文件的首选格式。然而&#xff0c;当我们面对其他音频格式时&#xff0c;可能需要进行转换为MP3的操作。因此&#xff0c;接下来我将向您分享4种简…