一种token认证管理系统的制作方法

未命名 10-09 阅读:171 评论:0


1.本发明涉及计算机技术领域,尤其涉及一种token认证管理系统。


背景技术:

2.信息技术的高速发展将数智化技术渗透到各行各业,也引起人们对信息和数据安全问题的高度重视。认证系统作为信息化系统的第一道安全防线,对保护用户和系统自身的信息安全起着至关重要的作用。
3.传统基于session-cookies技术的认证方式,无法适用于当前广泛使用的移动客户端和前后端分离的分布式系统。基于token的认证方式支持跨域访问和无状态服务端,得到广泛应用。但基于token的认证方式也有自身的不足:token的集中式验证使得验证服务器成为系统扩展的瓶颈,现有的分布式验证系统又存在已签发的token无法按需回收的问题,导致系统存在安全风险。


技术实现要素:

4.为了解决以上技术问题,本发明提供了一种token认证管理系统。
5.本发明的技术方案是:
6.一种token认证管理系统,包括认证鉴权授权模块、token管理模块和token验证执行tk-agent;
7.所述认证鉴权授权模块用于根据认证请求中的用户注册信息和相应鉴权授权策略,对资源请求者进行认证鉴权授权;
8.所述token管理模块用于根据系统安全要求管理公私钥对,并根据所述认证鉴权授权结果附加token管理信息,经加密签名后生成本次认证请求的认证token返回给请求方;
9.所述token验证执行tk-agent用于管理所述公钥,并对访问请求中的token进行验证。
10.进一步的,
11.所述token管理模块定期或依据系统运行安全状态即时生成公私钥对,并将公钥下发至token验证执行tk-agent;
12.所述token管理模块在更新公私钥对时执行公钥至少2级优先级轮转机制,并清理优先级轮转为无效的公钥。
13.所述token由标题密文、负载密文和签名密文组成,所述token的标题密文至少包括token类型和签名算法。
14.所述token管理模块使用时间最新的私钥,对附加了token管理信息的token标题密文和负载密文的拼接密文,按照预定签名算法进行签名,生成所述签名密文。token管理模块还可以通过定时或按需改变签名算法加强系统安全性。
15.所述token验证执行tk-agent接收token管理模块下发的公钥,执行本地公钥至少
2级优先级轮转机制,依据公钥优先级验证token有效性,并清理优先级轮转为无效的公钥。所述token验证执行tk-agent可定期同步token认证管理系统维护的公钥。
16.再进一步的,token验证具体包括:
17.1)token验证执行tk-agent对接收到的token分解为标题密文、负载密文和签名密文;
18.2)使用预设解密算法解密标题密文,得到token类型和签名算法;
19.3)按照本地公钥优先级从高到低的顺序,依次使用有效公钥和所述签名算法对所述标题密文和负载密文的拼接密文进行验证;
20.4)只要验证成功认定该token有效,可选进一步验证token是否在有效期内;
21.5)若所有有效公钥都验证无效,认定该token无效。
22.token的有效期可以通过附加在token信息中的签发时间和失效期限判定,或不设定失效期限,通过token管理模块的公私钥更新时间间隔作为token有效期。
23.公私钥管理具体包括:
24.token认证管理系统定期或依据系统运行安全状态即时生成公私钥对,本地以新私钥替换旧私钥,用以生成签名密文,并将相应公钥下发至token验证执行tk-agent,同时执行公钥至少2级优先级轮转机制,并清理优先级轮转为无效的公钥;
25.所述token验证执行tk-agent接收token管理模块下发的公钥,将该公钥优先级置为最高优先级,其他历史公钥优先级按照生成时间依次降低,低于最低优先级的公钥设为无效公钥,本地至少保存2级公钥;
26.本发明的有益效果是
27.本发明通过token的分布式验证降低验证服务器的负载,以便于系统规模化扩展;通过token管理模块定时或按需更新公私钥对,以历史公钥失效的方式,实现已签发token的回收,以便动态保障系统安全性。
附图说明
28.图1是本发明的系统架构示意图;
29.图2是本发明提供的token验证流程示意图。
具体实施方式
30.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
31.本发明的系统架构如图1所示,包括认证鉴权授权模块、token管理模块和token验证执行tk-agent。各模块可根据业务需求采用单实体部署或集群部署,且不限定部署载体为服务器、云主机、容器或微服务。token验证执行tk-agent部署于提供具体被访问业务的实体中,实现token的分布式验证;因该模块功能与具体服务业务解耦,可多服务共用同一个token验证执行tk-agent。
32.用户的访问请求过程为:
33.1、访问请求者携带用户注册凭证向认证鉴权授权模块发起认证请求;认证鉴权授权模块接收到访问请求信息,根据用户凭证完成用户认证、鉴权和授权操作,获取用户具体注册信息和授权结果,形成认证token元数据。
34.2、认证鉴权授权模块携带认证token元数据向token管理模块申请token。
35.3、token管理模块接收token元数据生成token返回给认证鉴权授权模块,最终返回给访问请求者。
36.4、访问请求者携带token向目标服务发起访问请求。
37.5、目标服务通过其所述token验证执行tk-agent进行token验证,对验证通过的请求完成服务请求并返回访问结果;对验证不通过的请求返回token验证失败信息。
38.token管理模块根据系统安全要求管理用于token验证的公私钥对。密钥对的生成和更新可以选择日常周期性更新、应对固定事件的未来定时更新,或者动态应对系统运行威胁的即时性更新。更新的私钥替换历史私钥,并作为新增token签名密文的密钥;对应更新的公钥下发至各token验证执行tk-agent。
39.token管理模块提取token元数据生成token返回给访问请求者。目标token由3部分构成:标题密文、负载密文和签名密文。标题明文包括token类型和签名算法,本实施例token类型以jwt为例,签名算法可结合系统安全性、负载、响应时限采用rsasha系列、ecdsasha系列或rsapsssha系列,甚至可以动态调整签发token的签名加密算法,提升系统安全性。负载明文提取token元数据生成,可附加token签发时间、有效期限和签发方。标题明文和负载明文分别通过base64或base64url编码得到上述标题密文和负载密文。token管理模块对上述标题密文和负载密文的拼接密文以私钥通过标题中的签名算法生成签名密文,附加至上述标题密文、负载密文,得到返回给访问请求者的token。
40.部署于目标服务的token验证执行tk-agent接收到认证鉴权授权模块下发的新公钥,维护本地公钥序列。
41.公钥序列指按公钥生成时间顺序设置优先级,时间最新的公钥具有最高优先级,运行过程中至少保持2个优先级公钥的存在。系统初始状态由系统自动生成1个最高优先级公钥,构成公钥序列。每有新增公钥,设置其为最高优先级,并将原有公钥优先级逐级降低,直至降低至无效公钥,需对无效公钥进行清理。
42.设系统安全要求设置n级公钥,即同一时刻有n个有效公钥;则优先级最高为n,次高为n-1,优先级≤0的公钥为无效公钥,需要即时清理。则在新增公钥时,对新增公钥优先级设置为n,其他公钥优先级依次递减1,直至优先级≤0达到清理门限,执行清理操作。系统初始状态的公钥优先级设置为n。
43.token验证执行tk-agent在收到访问请求时,按照有效公钥序列优先级由高到低的顺序依次使用公钥验证token有效性。具体验证过程如图2所示:设置初始状态为n级公钥,当前验证公钥优先级为a=n;token验证执行tk-agent将接收到的token分解为标题密文、负载密文和签名密文;使用系统预置解密算法(base64或base64url)解密标题密文,得到签名密文的加密算法;使用a优先级公钥和签名算法,对标题密文和负载密文的拼接密文进行加密,得到本地签名密文;本地签名密文与token中的签名进行匹配,根据匹配结果判断token有效性。若匹配成功,则认定token是由合法签发者签发,可选进一步验证token是否在有效期内,也可以直接判定token有效。若匹配不成功,则轮转验证公钥优先级继续匹
配,直到所有有效公钥都匹配失败,则认定该token无效。
44.为应对token验证执行tk-agent公钥更新失败导致token验证故障,token管理模块也需维护上述token验证执行tk-agent的公钥序列,以供token验证执行tk-agent定时与token管理模块同步公钥序列。该设计也可解决分布式系统中公钥同步的问题。
45.若需要在token中签发有效期,须在认定token是由合法签发者签发之后,再验证token有效期。解析token负载中的签发时间和有效期,与当前系统时间比对,若验证时间在有效期内,认定该token有效;若验证时间超出有效期,直接认定该token无效。这一方式可设置公私钥对更新周期较长,或仅设置动态应对系统运行威胁的即时性更新,以token有效期保障正常运行状态下的系统安全,降低系统消耗。
46.本发明主要用于检测到系统处于安全感风险时,通过即时更新公私钥对,使得历史签发token无效,动态保护系统安全。
47.以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

技术特征:
1.一种token认证管理系统,其特征在于,包括:认证鉴权授权模块、token管理模块和token验证执行tk-agent;认证鉴权授权模块,用于根据认证请求中的用户注册信息和相应鉴权授权策略,对资源请求者进行认证鉴权授权;token管理模块,用于根据系统安全要求管理公私钥对,并根据所述认证鉴权授权结果附加token管理信息,经加密签名后生成本次认证请求的认证token返回给请求方;token验证执行tk-agent,用于管理公钥,并对访问请求中的token进行验证。2.根据权利要求1所述的系统,其特征在于,所述token管理模块定期或依据系统运行安全状态即时生成公私钥对,并将公钥下发至token验证执行tk-agent;所述token管理模块在更新公私钥对时执行公钥至少2级优先级轮转机制,并清理优先级轮转为无效的公钥。3.根据权利要求1所述的系统,其特征在于,所述token由标题密文、负载密文和签名密文组成,所述token的标题密文包括token类型和签名算法。4.根据权利要求3所述的系统,其特征在于,所述token管理模块使用时间最新的私钥,对附加了token管理信息的token标题密文和负载密文的拼接密文,按照预定签名算法进行签名,生成所述签名密文。5.根据权利要求4所述的系统,其特征在于,token管理模块还可以通过定时或按需改变签名算法。6.根据权利要求2或4所述的系统,其特征在于,token验证执行tk-agent接收token管理模块下发的公钥,执行本地公钥至少2级优先级轮转机制,依据公钥优先级验证token有效性,并清理优先级轮转为无效的公钥。7.根据权利要求6所述的系统,其特征在于,token验证执行tk-agent定期同步token认证管理系统维护的公钥。8.根据权利要求7所述的系统,其特征在于,token验证具体包括:1)token验证执行tk-agent对接收到的token分解为标题密文、负载密文和签名密文;2)使用预设解密算法解密标题密文,得到token类型和签名算法;3)按照本地公钥优先级从高到低的顺序,依次使用有效公钥和签名算法对所述标题密文和负载密文的拼接密文进行验证;4)只要验证成功认定该token有效,可选进一步验证token是否在有效期内;5)若所有有效公钥都验证无效,认定该token无效。9.根据权利要求8所述的系统,其特征在于,token的有效期通过附加在token信息中的签发时间和失效期限判定,或不设定失效期限,通过token管理模块的公私钥更新时间间隔作为token有效期。10.根据权利要求6所述的系统,其特征在于,公私钥管理具体包括:token管理模块定期或依据系统运行安全状态即时生成公私钥对,本地以新私钥替换
旧私钥,用以生成签名密文,并将相应公钥下发,同时执行公钥至少2级优先级轮转机制,并清理优先级轮转为无效的公钥;token验证执行tk-agent接收token管理模块下发的公钥,将该公钥优先级置为最高优先级,其他历史公钥优先级按照生成时间依次降低,低于最低优先级的公钥设为无效公钥,本地至少保存2级公钥。

技术总结
本发明提供一种token认证管理系统,属于计算机技术领域,本发明包括:认证鉴权授权模块、token管理模块和token验证执行tk-agent;token管理模块管理签名公私钥对的生成和更新,用最新私钥依据签名算法,对认证鉴权授权模块的认证结果进行签名生成签名密文;token验证执行tk-agent接收token管理模块下发的公钥,执行本地公钥的更新,依据公钥优先级验证token有效性。本申请通过历史公钥失效的方式,实现token分布式验证系统中已签发token的回收,提高系统安全性。提高系统安全性。提高系统安全性。


技术研发人员:张文燕 沈林江
受保护的技术使用者:浪潮通信信息系统有限公司
技术研发日:2023.06.21
技术公布日:2023/10/7
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐