CN115549970A - 一种oauth2认证轻量级失效JWT令牌的方法 - Google Patents
一种oauth2认证轻量级失效JWT令牌的方法 Download PDFInfo
- Publication number
- CN115549970A CN115549970A CN202211039945.5A CN202211039945A CN115549970A CN 115549970 A CN115549970 A CN 115549970A CN 202211039945 A CN202211039945 A CN 202211039945A CN 115549970 A CN115549970 A CN 115549970A
- Authority
- CN
- China
- Prior art keywords
- token
- jwt
- authenticating
- lightweight
- oauth2
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/108—Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种oauth2认证轻量级失效JWT令牌的方法,包括:创建Redis黑名单;退出登录时,JWT令牌的缓存至Redis黑名单;将Redis黑名单的缓存的过期时间和JWT令牌的有效时间设置一致;请求资源时,判断JWT令牌是否在缓存的Redis黑名单中,是,则拒绝访问。本发明所述的oauth2认证轻量级失效JWT令牌的方法不需要每次签发,都将令牌存储在缓存中,仅仅在某些特殊需求场景下进行缓存,大大的减少了存储的压力,降低了成本。
Description
技术领域
本发明属于通用后端技术领域,尤其是涉及一种oauth2认证轻量级失效JWT令牌的方法。
背景技术
JWT全称JSON Web Token,是目前最流行的跨域身份验证解决方案。其最大的一个优势在于它是无状态的,自身包含了权限认证所需要的所有信息,服务器端无需对其进行存储,从而减少服务器存储开销,以及来回认证的网络开销。但是无状态引发的问题也是显而易见的,它无法作废未过期的JWT,只能等到其自动过期。如何在注销、修改用户信息、修改权限、强制剔除场景下让已签发的JWT令牌失效,是目前行业内急需解决的重要问题之一。
发明内容
有鉴于此,为解决上述问题,本发明旨在提出一种oauth2认证轻量级失效JWT令牌的方法。
为达到上述目的,本发明的技术方案是这样实现的:
一方面,本发明提供了一种oauth2认证轻量级失效JWT令牌的方法,包括:
创建Redis黑名单;
退出登录时,JWT令牌的缓存至Redis黑名单;
将Redis黑名单的缓存的过期时间和JWT令牌的有效时间设置一致;
请求资源时,判断JWT令牌是否在缓存的Redis黑名单中,是,则拒绝访问。
进一步的,在开始登录时,需认证服务器,包括:
用户登录成功后,将所有权限信息封装进Payload有效负载中,生成JWT格式token,服务器无需对其进行存储。
进一步的,认证服务器过程中,还需要创建token下线接口,包括:
对Token存储器改造,继承JwtTokenStore并重写removeAccessToken()移除方法,从redis缓存当中将其移除。
进一步的,还需设置资源服务器,包括:
自定义请求过滤器,在各个资源服务器中从请求头提取JWT令牌进行鉴权;
解析JWT令牌三段式结构是否正确,不正确,抛出无效异常;令牌是否过期,已过期,抛出过期异常;解析出的jti唯一标识,判断其是否在缓存的黑名单里,如果是直接返回令牌失效响应。
进一步的,JWT令牌的缓存至Redis黑名单,包括:
将JWT令牌中的jti唯一标识符,作为存储在Redis黑名单中的键。
第二方面,本发明提供了一种电子设备/服务器,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器在执行所述指令时,实现上述第一方面所述的oauth2认证轻量级失效JWT令牌的方法。
第三方面,本发明提供了一种可读取存储介质,用于存储计算机程序,所述计算机程序在被处理器执行时,实现上述第一方面所述的oauth2认证轻量级失效JWT令牌的方法。
相对于现有技术,本发明所述的oauth2认证轻量级失效JWT令牌的方法具有以下优势:
1、本发明所述的oauth2认证轻量级失效JWT令牌的方法,不需要每次签发,都将令牌存储在缓存中,仅仅在某些特殊需求场景下进行缓存,大大的减少了存储的压力,降低了成本。
2、率先对JWT本身的有效期进行判断,黑名单缓存的过期时间与JWT的有效时间一致,也能更进一步地减少存储的量。
3、缓存的key采用jti唯一标识符,比起原JWT冗长的字符串占用内存更小,value值只用"1"单字符,更轻。
4、资源服务器的过滤逻辑统一依赖公共项目,对接更容易。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明所述的oauth2认证轻量级失效JWT令牌的时序流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合实施例来详细说明本发明。
本实施例提供了一种oauth2认证轻量级失效JWT令牌的方法,主要包括:在退出登录时,将JWT令牌缓存至Redis,缓存的过期时间与JWT的有效时间一致,请求资源时判断令牌是否在缓存的黑名单中,是则拒绝访问。
如图1所示,具体过程如下:
1、认证服务器
用户登录成功后,将所有权限信息封装进Payload(JWT的组成部分)有效负载中,最终生成JWT格式token,服务器无需对其进行存储。
同时创建token下线接口即登出接口,具体实现:
对Token存储器改造,继承JwtTokenStore(oauth2框架原实现类)并重写removeAccessToken()移除方法,从redis缓存当中将其移除。
我们知道,JWT的载体中有个默认的jti(JWT ID唯一标识)字段声明,UUID实现,可以作为JWT的唯一标识符,相较于完整的JWT字符长度大幅度减少,把它作为存储在Redis中的键,而值只需要非空单字符,另外我们只需保证JWT在其有效期内用户登出后失效就可以了,JWT有效期过了黑名单也就没有存在的必要,所以设置黑名单的过期时间与JWT有效时间一致。
2、资源服务器
自定义请求过滤器,在各个资源服务器中从请求头提取JWT进行鉴权。
解析三段式结构是否正确,不正确,抛出无效异常;令牌是否过期,已过期,抛出过期异常;解析出的jti唯一标识,判断其是否在缓存的黑名单里,如果是直接返回令牌失效响应。
由于资源服务器众多,我们将上述逻辑代码,提取至公共项目,以便它们依赖复用。
本实施例提供了一种电子设备/服务器,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器在执行所述指令时,实现上述实施例所述的oauth2认证轻量级失效JWT令牌的方法。
本实施例提供了一种可读取存储介质,用于存储计算机程序,所述计算机程序在被处理器执行时,实现上述实施例所述的oauth2认证轻量级失效JWT令牌的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和系统,可以通过其它的方式实现。例如,以上所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。上述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种oauth2认证轻量级失效JWT令牌的方法,其特征在于,包括:
创建Redis黑名单;
退出登录时,JWT令牌的缓存至Redis黑名单;
将Redis黑名单的缓存的过期时间和JWT令牌的有效时间设置一致;
请求资源时,判断JWT令牌是否在缓存的Redis黑名单中,是,则拒绝访问。
2.根据权利要求1所述的oauth2认证轻量级失效JWT令牌的方法,其特征在于,在开始登录时,需认证服务器,包括:
用户登录成功后,将所有权限信息封装进Payload有效负载中,生成JWT格式token,服务器无需对其进行存储。
3.根据权利要求2所述的oauth2认证轻量级失效JWT令牌的方法,其特征在于:认证服务器过程中,还需要创建token下线接口,包括:
对Token存储器改造,继承JwtTokenStore并重写removeAccessToken()移除方法,从redis缓存当中将其移除。
4.根据权利要求1所述的oauth2认证轻量级失效JWT令牌的方法,其特征在于,还需设置资源服务器,包括:
自定义请求过滤器,在各个资源服务器中从请求头提取JWT令牌进行鉴权;
解析JWT令牌三段式结构是否正确,不正确,抛出无效异常;令牌是否过期,已过期,抛出过期异常;解析出的jti唯一标识,判断其是否在缓存的黑名单里,如果是直接返回令牌失效响应。
5.根据权利要求1所述的oauth2认证轻量级失效JWT令牌的方法,其特征在于,JWT令牌的缓存至Redis黑名单,包括:
将JWT令牌中的jti唯一标识符,作为存储在Redis黑名单中的键。
6.一种电子设备/服务器,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,其特征在于,所述处理器在执行所述指令时,实现权利要求1-5任一所述的oauth2认证轻量级失效JWT令牌的方法。
7.一种可读取存储介质,用于存储计算机程序,其特征在于,所述计算机程序在被处理器执行时,实现权利要求1-5任一所述的oauth2认证轻量级失效JWT令牌的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211039945.5A CN115549970A (zh) | 2022-08-29 | 2022-08-29 | 一种oauth2认证轻量级失效JWT令牌的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211039945.5A CN115549970A (zh) | 2022-08-29 | 2022-08-29 | 一种oauth2认证轻量级失效JWT令牌的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115549970A true CN115549970A (zh) | 2022-12-30 |
Family
ID=84726789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211039945.5A Pending CN115549970A (zh) | 2022-08-29 | 2022-08-29 | 一种oauth2认证轻量级失效JWT令牌的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115549970A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110276197A (zh) * | 2019-06-25 | 2019-09-24 | 四川长虹电器股份有限公司 | 基于共享黑名单撤销jwt令牌实时生效的方法 |
CN110690972A (zh) * | 2019-10-11 | 2020-01-14 | 迈普通信技术股份有限公司 | 令牌认证方法、装置、电子设备及存储介质 |
CN113364798A (zh) * | 2021-06-21 | 2021-09-07 | 浪潮云信息技术股份公司 | 一种基于Redis的用户访问频率处理装置 |
CN114143066A (zh) * | 2021-11-26 | 2022-03-04 | 国网四川省电力公司南充供电公司 | 一种基于代理隔离装置的内外网对接系统及方法 |
-
2022
- 2022-08-29 CN CN202211039945.5A patent/CN115549970A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110276197A (zh) * | 2019-06-25 | 2019-09-24 | 四川长虹电器股份有限公司 | 基于共享黑名单撤销jwt令牌实时生效的方法 |
CN110690972A (zh) * | 2019-10-11 | 2020-01-14 | 迈普通信技术股份有限公司 | 令牌认证方法、装置、电子设备及存储介质 |
CN113364798A (zh) * | 2021-06-21 | 2021-09-07 | 浪潮云信息技术股份公司 | 一种基于Redis的用户访问频率处理装置 |
CN114143066A (zh) * | 2021-11-26 | 2022-03-04 | 国网四川省电力公司南充供电公司 | 一种基于代理隔离装置的内外网对接系统及方法 |
Non-Patent Citations (1)
Title |
---|
徐祎: "一种高安全的Web应用访问控制模型的研究", 《硕士电子期刊库》, 15 July 2012 (2012-07-15), pages 1 - 75 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109587133B (zh) | 一种单点登录系统及方法 | |
CN110086822B (zh) | 面向微服务架构的统一身份认证策略的实现方法及系统 | |
CN106656959B (zh) | 访问请求调控方法和装置 | |
CN109802941A (zh) | 一种登录验证方法、装置、存储介质和服务器 | |
US8468586B2 (en) | Methods and systems for implementing policy based trust management | |
EP3226506B1 (en) | Sophisitcated preparation of an authorization token | |
EP3188453A1 (en) | Detecting and mitigating registrar collusion in drop-add acquisitions of domain names | |
US9635024B2 (en) | Methods for facilitating improved user authentication using persistent data and devices thereof | |
CN106878335B (zh) | 一种用于登录验证的方法及系统 | |
CN111431920A (zh) | 一种基于动态令牌的安全控制方法及系统 | |
CN113839966B (zh) | 一种基于微服务的安全管理系统 | |
CN108924159B (zh) | 一种报文特征识别库的验证方法与装置 | |
CN111209349A (zh) | 一种更新会话时间的方法和装置 | |
US7558845B2 (en) | Modifying a DHCP configuration for one system according to a request from another system | |
CN111107101A (zh) | 一种用于nginx的多维过滤请求的防火墙系统及方法 | |
CN108234122A (zh) | 令牌校验方法和装置 | |
CN115296877B (zh) | 一种jwt存储令牌失效与续期的方法 | |
CN115549970A (zh) | 一种oauth2认证轻量级失效JWT令牌的方法 | |
CN111585978A (zh) | 一种拦截虚假请求的方法、客户端、服务端及系统 | |
CN113824554B (zh) | 数据在中间件间传输的动态认证方法、装置及计算机介质 | |
CN114070589A (zh) | 一种简化JWT后的OAuth2.0认证方法 | |
CN113364798A (zh) | 一种基于Redis的用户访问频率处理装置 | |
CN113221083A (zh) | 一种能够提升服务器性能的区块链用户会话缓存方法 | |
KR102040174B1 (ko) | Hsts를 이용해서 클라이언트를 식별하는 방법 | |
CN112804224B (zh) | 一种基于微服务的认证鉴权方法、装置、介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |