Day914.安全认证架构演进:单块阶段 -SpringBoot与K8s云原生微服务实践

news2025/7/18 5:39:29

安全认证架构演进:单块阶段

Hi,我是阿昌,今天学习记录的是关于安全认证架构演进:单块阶段的内容。

讲到安全认证的内容,就必然会提到两个点:认证授权

  • 认证:我是谁
  • 授权:我能做什么

一、1.0阶段

参考图如下:
在这里插入图片描述

  1. 用户在浏览器上输入账号密码,请求对于到Web服务器
  2. 服务器服务器到认证过滤器会处理,拿着对应用户的信息去数据库查询
    • 如果存在,将用户的信息数据写入到session中做服务器端缓存并正常处理业务逻辑,最后返回,并将sessionId写入浏览器cookies中做临时客户端储存
    • 如果不存在,直接返回,要求用户重新登陆
  3. 每次用户登陆都会刷新session上的活跃时间来持续储存来保证不会删除。
  4. 当用户退出登陆,就在session上删除该用户对应的记录

对应的session储存方案,走sessionId + 用户信息的方式,相当于一个hashmap,当这个map中找不到或因为存在时间过期了,就会出现会话超时的情况。

session中不仅可以只存储用户的基本信息,也可以存储用户的其他会话信息,比如购物车信息等,相当于用户信息数据的临时存储。


二、1.5阶段

针对上面的1.0版本存在一些列的缺陷, 当web服务器采用集群的时候,会出现困难因负载均衡造成session在只在登陆过的web服务器中存在;

下图给出了一个解决1.0阶段的方案:StickySession粘性会话
在反向代理层做一个sessionId与对应web服务器的映射关系信息,每次当请求在反向代理层根据对应的sessionId来路由到对应的web服务器中,保证一个会话期间,用户请求和对应的web服务器的一一对应的。

在这里插入图片描述

1.1阶段出现的问题,稳定性问题,因为粘性会话到导致用户sessionId跟web服务器进行绑定,当web服务器发生宕机或软件代码升级的场景时,会出现一批量用户出现会话过期的情况,就会造成用户体验不好


解决1.1阶段出现的问题的方案:

  1. 会话同步复制:让web服务器集群间进行session会话的相互复制
  2. 无状态会话:将session的数据直接储存在客户端的浏览器中,通过请求响应循环捎带,但这样子存储用户信息在浏览器中会存在用户数据泄漏的风险,所以一般大概率的都会对这个存储的数据进行加密保存;另外浏览器cookies储存的数据大小是有限制的,只有4k大小,不能储存较大的用户数据
  3. 集中状态会话:把session数据进行集中存储到某个用户鉴权中心(如redis、mysql等)

三、总结

一个网络系统中,认证和授权是十分重要的环节,他告诉了这次请求的用户是谁,他有什么权限,他能不能做这个操作的校验;

  • 在一个开始的1.0方案中是一台web服务器,可直接存储在服务器和客户端的Session&cookies的方式进行直接储存;
  • 在1.1方案中因为web服务器升级为了集群的方案,不能通过单台服务器的session&cookies的方案储存,可使用下面的方案进行解决:
    • 会话同步复制
    • 无状态会话
    • 集中状态会话

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

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

相关文章

Spring中的事务@Transactional

Transactional可以添加在方法上 添加在方法上时,表示该方法出现了异常或者报错,而导致之前数据库没有进行回滚事件,也就是说如果在方法中,有报错,但是添加了Transactional 则会开始回滚。 Transactional 在异常被捕获…

剑指 Offer 29. 顺时针打印矩阵

剑指 Offer 29. 顺时针打印矩阵 难度:middle\color{orange}{middle}middle 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2…

【OpenCV技能树】——OpenCV基础

前言: 😊😊😊欢迎来到本博客😊😊😊 目前正在进行 OpenCV技能树的学习,OpenCV是学习图像处理理论知识比较好的一个途径,至少比看书本来得实在。本专栏文章主要记录学习Op…

Apache apisix默认密钥漏洞(CVE-2020-13945)

目录漏洞描述影响版本漏洞复现声明:本文仅供学习参考,其中涉及的一切资源均来源于网络,请勿用于任何非法行为,否则您将自行承担相应后果,本人不承担任何法律及连带责任。漏洞描述 Apache APISIX 是一个动态、实时、高…

LearnOpenGL-模型加载-3.渲染模型

本人刚学OpenGL不久且自学,文中定有代码、术语等错误,欢迎指正 我写的项目地址:https://github.com/liujianjie/LearnOpenGLProject 文章目录模型加载重要代码读取3D模型递归处理结点的网格加载纹理优化程序代码Model类加载模型流程例子1&…

【运筹优化】拉格朗日松弛 次梯度算法求解整数规划问题 + Java调用Cplex实战

文章目录一、拉格朗日松弛二、次梯度算法三、案例实战一、拉格朗日松弛 当遇到一些很难求解的模型,但又不需要去求解它的精确解,只需要给出一个次优解或者解的上下界,这时便可以考虑采用松弛模型的方法加以求解。 对于一个整数规划问题&…

Python交通标志识别基于卷积神经网络的保姆级教程(Tensorflow)

项目介绍 TensorFlow2.X 搭建卷积神经网络(CNN),实现交通标志识别。搭建的卷积神经网络是类似VGG的结构(卷积层与池化层反复堆叠,然后经过全连接层,最后用softmax映射为每个类别的概率,概率最大的即为识别…

chromium 50 chromium57 版本编译启用 widevine 功能

本实验中 chrome 版本为 57.0.2987.98 01 chromium57 在 win11 版本中启用 widevine 功能 01.01 启用 enable_widevine 选项生成 widevine 相关动态库 在chromium 57 版本中,编译时秩序设置 enable_widevinetrue 即可生成 widevinecdm.dll 和 widevinecdmadapter…

windows下maven更新/安装

写在前面: 我的maven学习的比较早,后面windows文件管理分类的时候,把学习用的全部在一个文件夹了,而这个又不好移动进去。 正好也更新一下maven的版本了,不过和重新安装好像差不多了。 现在写的windows的以后,在看看要…

若依框架部署从零开始2023版(前后端分离)

前言电脑最近重装了一次系统,目前什么都没有安装,记录一下从零开始部署前后端分离版本的若依框架系统先去官网把若依源码拉下来代码克隆若依目前已经有很多的版本了,因为现在开发比较流行前后端分离,因此这里演示前后端分离版本点…

外卖点餐系统小程序 PHP+UniAPP

一、介绍 本项目是给某大学餐厅开发的外面点餐系统,该项目针对校内的学生,配送由学校的学生负责配送。因此,该项目不同于互联网的外卖点餐系统。 该系统支持属于 Saas 系统,由平台端、商家端、用户端、以及配送端组成。 其中&a…

从功能测试进阶自动化测试,爆肝7天整理出这一份超全学习指南【附网盘资源】

因为我最近在分享自动化测试技术,经常被问到:功能测试想转自动化,请问应该怎么入手?有没有好的资源推荐?那么,接下来我就结合自己的经历聊一聊我是如何在工作中做自动化测试的。(学习路线和网盘…

盒子拖拽效果,原生js实现

原生js实现拖拽效果 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevic…

keychron机械键盘使用感受

最近入手了一个Keychron无线机械键盘&#xff0c;跟mac本搭配起来使用&#xff0c;体验非常好。记录下使用的感受。 包装 包装很结实&#xff0c;拆开快递盒后&#xff0c;快递盒里有充气袋包裹着键盘盒&#xff0c;键盘盒塑料薄膜封装&#xff0c;没有一点的磕碰。 拆封 不仅外…

运动蓝牙耳机什么牌子好,比较好的运动蓝牙耳机推荐

现在市面上的运动蓝牙耳机越来越多&#xff0c;在选择耳机的时候应该如何入手呢&#xff1f;最重要的是需要按照自己的需求来选择&#xff0c;但在耳机的配置上不能忽视的是耳机的防水等级&#xff0c;运动耳机对防水等级的要求更高&#xff0c;这样能够更好地防御汗水浸湿耳机…

【汇编】四、内存访问(一只 Assember 的成长史)

嗨~你好呀&#xff01; 我是一名初二学生&#xff0c;热爱计算机&#xff0c;码龄两年。最近开始学习汇编&#xff0c;希望通过 Blog 的形式记录下自己的学习过程&#xff0c;也和更多人分享。 上篇系列文章链接&#xff1a;【汇编】三、寄存器&#xff08;一只 Assember 的成…

mgre实验

实验思路 1、首先根据拓扑结构合理分配IP地址&#xff0c;并对各个路由器的IP地址和R5环回接口的IP地址进行配置。 2、让私网中的边界路由器对ISP路由器做缺省路由。 3、根据实验要求&#xff0c;对需要配置不同类型认证的路由器进行认证配置&#xff0c;和需要不同封装的协议…

Git的基本使用以及上传到GitHub

GIT的基本使用一、安装并配置GIT二、Git的基本操作三、使用GIT上传至GitHub四、Git分支一、安装并配置GIT 1.安装GIT连接 GIT安装包链接 2.打开GIT 鼠标右键点击Git Bash Here 安装完 Git 之后&#xff0c;第一件事就是设置自己的用户名和邮件地址。因为通过 Git 对项目进行…

Spark-序列化、依赖关系、持久化

序列化 闭包检查 序列化方法和属性 依赖关系 RDD 血缘关系 RDD 窄依赖 RDD 宽依赖 RDD 任务划分 RDD 持久化 RDD Cache 缓存 RDD CheckPoint 检查点 缓存和检查点区别 序列化 闭包检查 从计算的角度, 算子以外的代码都是在 Driver 端执行, 算子里面的代码都是在 E…

Lesson 9.3 集成算法的参数空间与网格优化和使用网格搜索在随机森林上进行调参

文章目录一、集成算法的参数空间与网格优化1. 学习曲线2. 决策树对象 Tree二、使用网格搜索在随机森林上进行调参1. 建立 benchmark2. 创建参数空间3. 实例化用于搜索的评估器、交叉验证评估器与网格搜索评估器4. 训练网格搜索评估器5. 查看结果在开始学习之前&#xff0c;先导…