JWT 令牌撤销:中心化控制与分布式Kafka处理

2023-09-21 10:34:19

【squids.cn】 全网zui低价RDS,免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等

令牌对于安全数字访问至关重要,但如果您需要撤销它们怎么办?尽管我们尽了最大努力,但有时代币可能会被泄露。这可能是由于编码错误、意外记录、零日漏洞和其他因素造成的。令牌撤销是现代安全性的一个重要方面,确保访问权限掌握在正确的人手中,并且将未经授权的用户拒之门外。在本文中,我们将探讨不同的方法(例如集中式控制和分布式 Kafka 处理)如何在确保系统和数据安全方面发挥重要作用。

访问/刷新令牌

我在本文中描述了有关使用 JWT 的更多信息。JWT 允许您消除使用集中式令牌存储并在每个微服务的中间件层中验证令牌。

为了减轻与令牌泄露相关的风险,访问令牌的生命周期被设置为等于一个较小的时间值(例如,15 分钟)。在最坏的情况下,令牌泄露后,它的有效期还有 15 分钟,之后它将exp小于当前时间,并且令牌将被任何微服务拒绝。

为了防止用户每 15 分钟注销一次,在访问令牌中添加了刷新令牌。这样,用户在身份验证成功后会收到访问令牌/刷新令牌对。当访问令牌的生命周期到期并且用户收到401 Unauthorized响应时,他们应该请求/refresh-token端点,将刷新令牌值作为参数传递,并接收新的访问令牌/刷新令牌对作为响应。之前的刷新令牌变为非活动状态。此过程降低了风险,并且不会对用户体验产生负面影响。

撤销

但在某些情况下,需要立即撤销令牌。这可能发生在金融服务中,或者例如,当用户想要从所有设备注销时,发生在用户的帐户中。在这里,如果没有令牌撤销,我们就无法做到这一点。但是,如何实现撤销 JWT 的机制呢?JWT 本质上是分散的并存储在用户的设备上?

集中式方法

最明显、最简单的方法是组织集中存储。这将是一个令牌黑名单,每个身份验证中间件层除了签名验证和令牌声明验证之外,还会去这个集中存储库检查令牌是否在黑名单中。如果是,请拒绝它。令牌撤销事件本身相当罕见(与授权请求的数量相比),因此黑名单会很小。此外,将令牌永远存储在数据库中是没有意义的,因为它们具有 exp 声明,并且在该值之后,它们将不再有效。如果您系统中发行的令牌的生命周期为 30 分钟,则您可以将已撤销的令牌在数据库中存储 30 分钟。

优点

  • 简单性:与其他解决方案相比,此方法简化了令牌撤销管理。

  • 细粒度控制:您可以细粒度控制撤销哪些令牌以及何时撤销。

注意事项

  • 单点故障:集中式令牌撤销服务可能成为单点故障。您应该实施冗余或故障转移机制来减轻这种风险。

  • 网络开销:微服务需要与中央服务通信,这会引入网络开销。考虑对延迟的影响并进行相应的设计。

  • 安全性:确保中央令牌撤销服务安全实施并防止未经授权的访问。

这种方法提供了令牌撤销管理的集中控制和简单性,这对于某些用例来说是有益的,特别是当需要对撤销进行细粒度控制时。然而,它确实引入了一些网络通信开销,并且需要仔细考虑安全性和冗余性。

去中心化方法(基于 Kafka)

可以使用Kafka实现更先进的无单点故障的方法。Kafka 本质上是一个分布式且可靠的消息日志。它允许多个独立的侦听器和保留策略配置仅存储实际值。因此,可以将已撤销令牌的黑名单存储在 Kafka 中。当令牌需要撤销时,相应的服务会生成一个事件并将其添加到 Kafka。中间件服务包括一个 Kafka 侦听器,用于接收此事件并将其存储在内存中。授权请求时,除了验证令牌的有效性之外,无需联系中心化服务。撤销的令牌存储在内存中,在合适的数据结构中定位令牌是一个快速的过程(如果我们使用 HashMap,它将是O(1))。也没有必要将令牌永远存储在内存中,并且应该在其生命周期结束后定期删除它们。

但是如果我们的服务重新启动并且内存被清除怎么办?Kafka 监听器允许您从头开始读取消息。当微服务恢复时,它将再次从 Kafka 中提取所有消息并使用实际的黑名单。

优点

  • 去中心化:使用像 Kafka 这样的分布式消息代理可以让您以去中心化的方式实现令牌撤销。微服务可以独立订阅撤销消息,无需依赖中央机构。

  • 可扩展性:Kafka 专为高吞吐量和可扩展性而设计。它可以处理大量消息,使其适合管理分布式系统中跨微服务的令牌撤销。

  • 持久性:Kafka 将消息保留可配置的保留期限。这可确保撤销的令牌存储足够长的时间以覆盖其有效期。

  • 弹性:该方法允许微服务处理令牌撤销,即使它们重新启动或经历临时停机。他们可以在恢复后简单地重新使用 Kafka 消息。

注意事项

  • 复杂性:使用 Kafka 实施令牌撤销会增加系统的复杂性。您需要确保所有微服务正确处理 Kafka 主题、订阅撤销消息并管理内存中令牌撤销列表。

  • 延迟:令牌被撤销的时间与微服务使用和处理撤销消息的时间之间可能存在轻微的延迟。在此窗口期间,仍可以接受已撤销的令牌。

  • 可扩展性挑战: 随着系统的增长,跨多个微服务管理大量撤销消息和内存列表可能会变得具有挑战性。您可能需要考虑更高级的策略来分区和管理 Kafka 主题。

集中式令牌撤销方法和基于 Kafka 的方法之间的选择取决于您的具体用例、系统复杂性和偏好。集中式方法提供了简单性和细粒度的控制,但会带来网络开销和潜在的单点故障。基于 Kafka 的方法提供了去中心化、可扩展性和弹性,但实施和维护更加复杂。

结论

在数字安全至关重要的世界中,令牌撤销是一项关键的防御措施。无论您喜欢 Kafka 的集中控制还是分布式处理,核心信息仍然很明确:令牌撤销是强大安全性的重要组成部分。通过有效管理和撤销令牌,组织可以加强防御、保护敏感数据并确保访问权限掌握在正确的人手中。当我们结束关于令牌撤销的讨论时,请记住,主动安全措施是当今数字环境中必须采取的措施。因此,拥抱令牌撤销来保护我们互联世界中最重要的东西。

作者:Viacheslav Shago

更多内容请关注公号【云原生数据库

squids.cn,云数据库RDS,迁移工具DBMotion,云备份DBTwin等数据库生态工具。

更多推荐

嵌入式学习 - 用电控制电

目录前言:1、继电器2、二极管3、三极管3.1特殊的三极管-mos管3.2npn类型三极管3.3pnp类型三极管3.4三极管的放大特性3.5mos管和三极管的区别前言:计算机的工作的核心原理:用电去控制电。所有的电子元件都有数据手册,不同型号的电子元件需要翻阅对应的数据手册。1、继电器电路图和原理如下:如图所示,当继电

CentOS7安装MySQL

文章目录前言一、MySQL5.71.1安装wget1.2下载&安装MySQL的rpm源1.3修改MySQL安装版本1.4下载并启动MySQL1.5开启MySQL远程连接用户二、MySQL8.0注意事项前言CentOS7的安装,采用的是yum的方式安装。yum方式安装,就类似在Windows下不停的下一步,下一步。根据官

灰度变换原理//test later

灰度变换原理图像灰度变换变换原理:通过变换函数T将原图像像素灰度值r映射为灰度值s:2、灰度反转2.1原理灰度反转:将图像亮暗对调,可以增强图像中暗色区域细节�=�(�)=�−1−�其中L为图像灰度级,0~255灰度图像的灰度级为256.2.2c++opencv代码#include<iostream>#include<

如何快速检测代理IP质量?

一直以来,IP代理都是出海跨境业务的刚需。质量好的IP代理,除了在跨境业务产生巨大作用,在SEO监控、爬虫抓取、市场研究等领域也发挥着很大的作用。但是,对于IP代理的质量检测是我们选择高标准IP代理的一句,我们一般都会建议在使用IP代理前,进行测试或检测。那么我们应该如何快速地检测代理IP的有效性与质量的好坏呢?接下来

第三章 关系数据库标准语言SQL

第三章关系数据库标准语言SQL3.1SQL概述3.1.1SQL的产生与发展3.1.2SQL的特点主要特点:综合统一集数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)的功能于一体}数据操作统一可以独立完成数据库生命周期中的全部活动,包括以下一系列操作要求:定义和修改、删除关系模式,定义和删除视图,插

Java版分布式微服务云开发架构 Spring Cloud+Spring Boot+Mybatis 电子招标采购系统功能清单

项目说明随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审计监督要求;通过电子化平台提高招投标工作的公开性和透明性;通过电子化招投标,使得招标采购的质量更高、速度

日志输出-查看 SQL:深入分析 MyBatis 执行过程

😀前言在现代软件开发中,数据库操作是不可或缺的一部分,而持久层框架的应用能够极大地简化这一过程。然而,当我们在开发MyBatis程序时,有时候需要深入了解程序底层实际执行的SQL语句,以便更好地分析和优化数据库操作。本文将探讨如何通过配置日志输出,在MyBatis中查看SQL语句的执行情况,以便更深入地了解其执行过程

逻辑回归中对L1\L2正则化的理解

在逻辑回归中,L1和L2正则化是常用的正则化技术,用于控制模型的复杂度并防止过拟合。它们通过在损失函数中引入额外的正则化项来实现。L1正则化(Lasso正则化):L1正则化使用参数权重的绝对值之和作为正则化项。其目标是将一些权重压缩为零,从而实现特征选择的效果。L1正则化的数学形式如下:R(w)=λ∑i=1n∣wi∣\

英语CN专刊《英语教师》简介及投稿须知

英语CN专刊《英语教师》简介及投稿须知《英语教师》杂志是由中华人民共和国新闻出版总署、正式批准公开发行的优秀期刊,《英语教师》系一本面向基础教育和高等教育英语教师的、兼顾理论性与实践性的专业性期刊。《英语教师》的读者对象主要是广大英语教师、英语教研员以及高校外语院系学生。本刊主要刊载有关英语教学和英语教师教育的论文、实

Linux 系统移植(二)--系统调试

文章目录一、编译文件系统1.1下载资源安装包1.2配置模板ARM64目标平台1.3配置交叉编译器1.4配置登录用户名和密码1.5配置Linux控制台1.6配置文件系统格式1.7编译buildroot文件系统二、编译ARM64Linux三、启动QemuLinux系统参考链接:一、编译文件系统1.1下载资源安装包我们使用b

(日积月累版)大数据基础知识点1-关系型数据库

好久不见,甚是想念。笔者最近有时间整理关于大数据的一些基础知识点,整理的目不在于能提升多少技能,关键在于巩固一些很基础的知识点,毕竟互联网就是基础略稳固的人比较有优势,在遇到或发现一些技术问题时,从底层科学的去理解这些问题,说不定会有另一片天下。那么本期带来大数据面是:关系型数据库一、什么是关系型数据库?关系型数据库是

热文推荐