用户单点登录

news2024/11/28 16:33:28

一、用户身份认证

1、单一服务器模式

我们使用传统的Session贺Coookie的模式,就可以完成单一服务器的登录,会话跟踪技术,
在这里插入图片描述
一般过程如下:
用户向服务器发送用户名和密码。
验证服务器后,相关数据(如用户名,用户角色等)将保存在当前会话(session)中。
服务器向用户返回session_id,session信息都会写入到用户的Cookie。
用户的每个后续请求都将通过在Cookie中取出session_id传给服务器。
服务器收到session_id并对比之前保存的数据,确认用户的身份。
缺点:
单点性能压力,无法扩展。
分布式架构中,需要session共享方案,session共享方案存在性能瓶颈。,sesion由服务器产生,不同的服务器session无法共享。
我可以加以层来处理,多个服务器之前session不能共享的问题,
可以采用redis来存储共享信息,每次用户访问redis就行
session共享方案:
session广播:性能瓶颈,不推荐
redis代替session:推荐,性能高

2、SSO(Single Sign On)模式

CAS单点登录、OAuth2
在这里插入图片描述
我使用一个服务端负责专门的用户信息认证,每次将认证的信息存储到redis中,当用户再次访问时,先访问认证中心服务,查看redis是否存储用户信息,如果存储了那么就是已经登录的用户。
分布式,SSO(single sign on)模式:单点登录英文全称Single Sign On,简称就是SSO。它的解释是:在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。
如图所示,图中有3个系统,分别是业务A、业务B、和SSO。
业务A、业务B没有登录模块。
而SSO只有登录模块,没有其他的业务模块。
一般过程如下:
当业务A、业务B需要登录时,将跳到SSO系统。
SSO从用户信息数据库中获取用户信息并校验用户信息,SSO系统完成登录。
然后将用户信息存入缓存(例如redis)。
当用户访问业务A或业务B,需要判断用户是否登录时,将跳转到SSO系统中进行用户身份验证,SSO判断缓存中是否存在用户身份信息。
这样,只要其中一个系统完成登录,其他的应用系统也就随之登录了。这就是单点登录(SSO)的定义。
优点 :
用户身份信息独立管理,更好的分布式管理。可以自己扩展安全策略
缺点:
认证服务器访问压力较大。

3、Token模式

在这里插入图片描述
我的理解是:当客户端,发送用户登录请求的时候,先访问授权服务器,授权服务器进行合法性校验,然后分发一个”令牌“,用户可以拿着这这个令牌进入不同的服务器中,因为不同的服务器中有相同的校验令牌的机制,所以能够保证用户登录是否携带合法令牌
优点:
无状态: token是无状态,session是有状态的
基于标准化:你的API可以采用标准化的 JSON Web Token (JWT)
缺点:
占用带宽
无法在服务器端销毁

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

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

相关文章

SpringBoot自定义动态定时任务(三十五)

二八佳人体似酥,腰间仗剑斩愚夫。虽然不见人头落,暗里教君骨髓枯。 上一章简单介绍了SpringBoot整合Quartz实现动态定时任务(三十四) ,如果没有看过,请观看上一章 通过 Quartz 实现了动态定时任务,还需要引入 Quartz 组件, 能不…

腾讯前端二面高频手写面试题总结

实现LRU淘汰算法 LRU 缓存算法是一个非常经典的算法,在很多面试中经常问道,不仅仅包括前端面试 LRU 英文全称是 Least Recently Used,英译过来就是” 最近最少使用 “的意思。LRU 是一种常用的页面置换算法,选择最近最久未使用的…

降本提效 | AIRIOT设备运维管理解决方案

传统运维多是使用在本地化系统,以人工运维和独立系统执行运维工作,重点关注的是设施运行,存在以下几个问题: 1、信息孤岛:本地化系统的接口不同,功能单一独立,各个系统之间的数据无法对接、交互…

了解枚举。

在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。 [1] 是一个被命名的整型常数的集合,枚举在日常生活中很常见&#xff0…

xxx.OpenResty+Lua后续补充

OpenRestyLua后续补充-请求参数处理看上图,鼠标右键-在新标签中打开图片食用 这是对xxx.nginx转发OpenResty(nginx升级版)_web服务器lua_tgbyhn31的博客-CSDN博客 的一个补充,用于nginx处理请求参数。 附代码: nginx 配置 #user nobody; w…

centos7 安装docker和docker-compose

本人使用的是 阿里云的centos7 的 镜像 安装在虚拟机里面的linux系统 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 如果这条命令没用 在国内很慢 换个地址用下面的试试 curl -sSL https://get.daocloud.io/docker | sh 安装成功 设置开机启动doc…

让你轻松掌握电商设计的在线工具,无门槛

零门槛不用经过工具认识,跟着教程就能上手的电商主图设计平台,让无基础又急需要设计电商主图的你轻松设计商品主图,下面跟着小编的教程一起学习如何使用乔拓云,在线设计电商主图!按照步骤就能搞定!第一步&a…

适配器Adapter

1.意图:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 2.结构 类适配器结构图 对象适配器结构图 类适配器使用多重继承对一个接口与另一个接口进行匹配。对象适配器依赖于对象组合。 Targ…

职场一些办公技能和技巧总结

办公软件Word、Excel、PPT职场一些办公技能和技巧总结一、Word(含 WPS word)1、输入带小方框的对勾 / 叉号法1法2(搜狗输入法)备注:Word、Excel、PPT 职场一些办公技能和技巧总结一、Word(含 WPS word&…

MySQL调优-深入理解MySQL事务隔离级别与锁机制

目录 MySQL调优-深入理解MySQL事务隔离级别与锁机制 概述 事务及其ACID属性 (1) 原子性(Atomicity) (2)一致性(Consistent) (3) 隔离性(Isolation) (4) 持久性(Durable) 原子性和一致性有何区别? 并发事务处理带来的问题 更新丢失(Lost Update)或脏写 脏读&…

Mysql 使用存储过程合并多个表数据

Mysql 使用存储过程合并多个表数据 drop procedure if exists mergeTable; CREATE PROCEDURE mergeTable() BEGIN#定义变量declare temp_table_name varchar(20);declare total int default 0;declare done int default false;#游标数据来源 查询出你想要合并的表名称declar…

分布式锁实现

分布式锁实现一 为什么要使用分布式锁二 分布式锁应该具备哪些条件三 分布式锁的三种实现方式四 基于数据库的实现方式五 基于Redis的实现方式一 为什么要使用分布式锁 我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用…

HCIE-Security:顺利通过,备考心得

备考半年多,终于通过华为HCIE安全,今天把心得贴出来,供大家参考。 我是4月1日开始在机构开始学习安全IE的,报名之后从IA开始学习,学习期间也算勤勤恳恳,每次上课都进行预习和复习,形成自己的笔记…

论文投稿指南——中文核心期刊推荐(大气科学)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

2023-1-5 javaScript

JavaScript基础 javaScript 概念 概念:一门客户端脚本语言 脚本语言:不需要编译,直接就可以被浏览器解析执行了 功能:可以增强用户和heml页面交互的过程可以控制html元素,让页面有一些动态的效果,增强用…

[AHK]腾讯实时股票数据接口

腾讯财经接口获取最新行情以五粮液为例,要获取最新行情,访问数据接口:qt.gtimg.cn/qsz000858返回数据:v_sz000858"51~五 粮 液~000858~27.78~27.60~27.70~417909~190109~227800~27.78~492~27.77~332~27.76~202~27.75~334~27.…

[ERROR] Malformed \uxxxx encoding.报错解决

今天用idea运行完项目。想直接打包的时候,结果打包失败,一直报错 [ERROR] Malformed \uxxxx encoding. 网上查了之后,一直说是,有路径在使用斜杠的时候,使用错误。将"\“换成”/“就好了,但是我配置文…

pb将字符串中的中文和英文(含符号)拆分

//用于将字符串中的中文和英文(含符号)拆分 //uf_split_str_enorcn(as_inputstr) //as_inputstr:导入字符串 long i, li_len, li_lenA as_return_cn = as_return_en = if as_inputstr > then li_len = len(as_inputstr) //带中文长度 li_lenA = lenA…

ICMP隧道-调研笔记

ICMP隧道通信原理与通信特征 https://baijiahao.baidu.com/s?id1652047934643855432&wfrspider&forpc 1.一个正常的 ping每秒最多只会发送两个数据包,而使用ICMP隧道的浏览器在同一时间会产生大量ICMP 数据包 2.ICMP隧道数据包中DATA 往往大于64 比特 3.正…