一种分布式缓存平台客户端接入认证体系转让专利

申请号 : CN202110177574.6

文献号 : CN112995157B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王东马姿杨晓兵段然于爽白小迪

申请人 : 中原银行股份有限公司

摘要 :

本发明为一种分布式缓存平台客户端接入认证体系,属于缓存访问控制技术领域;本认证体系涉及三个模块:Redis客户端驱动框架、认证管理中心以及Redis服务端;整个接入认证体系主要功能可以分为三部分:认证管理中心生成token,客户端通过认证管理中心接入Redis服务端,认证管理中心禁用客户端;同时,这三个部分都涉及了Redis服务端同步密码列表的操作;通过该认证体系,为每个允许接入的客户端提供专门的token,一旦发现该系统有问题,管理员可在管理平台手动禁用该系统的接入,避免因为一个系统出现问题影响整个Redis服务端的性能。

权利要求 :

1.一种分布式缓存平台客户端接入认证体系,所述认证体系包括以下模块:Redis客户端驱动框架、认证管理中心和Redis服务端,其特征在于:该认证体系包括:认证管理中心生成token,客户端通过认证管理中心接入Redis服务端以及认证管理中心禁用客户端;同时,这三个部分都包括Redis服务端同步密码列表的操作来保证最终Redis服务端中的密码与认证管理中心的密码保持一致,每个客户端需要使用Redis客户端驱动框架配置认证管理中心的地址和token才能接入Redis服务端;其中,客户端通过认证管理中心接入Redis服务端的流程包括:步骤S201、客户端基于提前分配的token向认证管理中心获取Redis服务端的IP地址和密码;

步骤S202、认证管理中心收到客户端的请求,从密码列表中查询该token对应的标识码和密码以及状态;如果状态为禁用,直接返回失败;如果状态为可用,则返回标识码对应的Redis服务端地址和密码;

步骤S203、客户端使用认证管理中心返回的Redis服务端地址和密码尝试与Redis服务端建立连接并发送密码验证;

步骤S204、Redis服务端收到客户端发送的密码后与内存中的密码列表比对,如果密码在密码列表中则返回验证成功,客户端成功接入Redis服务端;否则返回验证失败,客户端接入失败。

2.如权利要求1所述的认证体系,其特征在于:token需要找管理员进行申请,允许接入后,管理员通过认证管理中心为其生成token。

3.如权利要求2所述的认证体系,其特征在于:管理员通过认证管理中心生成token的过程包括以下步骤:

步骤S101、管理员通过认证管理中心为其添加token,添加token时需要填写客户端标识码,每个标识码是唯一的;

步骤S102、添加成功之后,认证管理中心会自动生成对应的密码和token,然后管理员把生成的token告知客户端;

步骤S103、认证管理中心会向Redis服务端同步密码列表,Redis服务端会把密码列表维护在内存中;

其中,认证管理中心有三个时机向Redis服务端同步密码列表保证最终Redis服务端中的密码会与认证管理中心中的密码保持一致。

4.如权利要求1所述的认证体系,其特征在于:管理员在发现某个客户端异常后,通过认证管理中心手动禁用该客户端,具体流程包括:步骤S301、管理员通过认证管理中心点击禁用某个客户端;

步骤S302、认证管理中心把密码列表中该客户端对应的token状态设置为禁用;

步骤S303、认证管理中心刷新密码列表并推送给Redis服务端;

步骤S304、认证管理中心查询出该客户端对应的客户端名称,通过Redis服务端扩展的自定义命令告知Redis服务端禁用该客户端;

步骤S305、Redis服务端收到命令后会主动断开与该客户端的连接。

5.如权利要求3所述的认证体系,其特征在于:Redis服务端在启动时会触发认证管理中心进行密码列表同步,具体流程包括:步骤S401、Redis服务端启动,通知认证管理中心;

步骤S402、认证管理中心向Redis服务端推送密码列表。

6.如权利要求3所述的认证体系,其特征在于:当管理员通过认证管理中心操作token时,会触发认证管理中心推送密码列表到Redis服务端。

7.如权利要求6所述的认证体系,其特征在于:同步的具体流程包括:步骤S501、管理员通过认证管理中心新增或禁用token;

步骤S502、认证管理中心密码列表发生变化;

步骤S503、认证管理中心同步密码列表到Redis服务端。

8.如权利要求3所述的认证体系,其特征在于:认证管理中心定时检测Redis服务端中密码列表的版本号,当发现Redis服务端中密码列表的版本号与认证管理中心版本号不一致时,会向Redis服务端推送密码列表。

9.如权利要求8所述的认证体系,其特征在于:同步的具体流程包括:步骤S601、认证管理中心定时查询Redis服务端中密码列表版本号;

步骤S602、认证管理中心将其与自己的密码列表版本号进行对比;

步骤S603、如果发现版本号不一致,将密码列表推送给Redis服务端,否则不进行操作。

说明书 :

一种分布式缓存平台客户端接入认证体系

技术领域

[0001] 本发明涉及缓存访问控制技术领域,特别是涉及一种基于Redis服务端的分布式缓存平台客户端接入认证体系。

背景技术

[0002] Redis服务端:Redis是一个开源的,内存中的数据结构存储,主要用作数据库,缓存和消息代理。
[0003] Redis客户端驱动框架:程序可以通过其接入Redis服务端,常见的开源Redis客户端驱动框架有lettuce和Jedis。
[0004] 客户端:这里仅代指Redis客户端,相对Redis服务端而言,任何接入Redis服务端的程序都可以称之为Redis客户端,包括通过Redis客户端驱动框架接入Redis服务端的项
目,或者Redis第三方连接工具等。
[0005] 原始的Redis服务端采用明文密码的方式进行接入认证,其明文密码配置在Redis服务端的配置文件中,任何客户端只要通过该明文密码都可以成功接入Redis服务端。常用
的开源Redis客户端驱动框架也采用了原始的Redis服务端认证逻辑,通过明文密码的方式
接入Redis。
[0006] 通过明文密码的方式进行接入认证有以下三个缺点:
[0007] 1)密码安全性差:Redis服务端密码采用明文的方式配置在Redis服务端的配置文件中,只要连接上该Redis服务端所在的给服务器就能看到该密码,同时每个Redis服务端
只有一个密码,很容易造成密码泄露。
[0008] 2)访问控制安全性差:原始Redis服务端仅对密码进行验证,任何类型的客户端只要通过密码就能成功接入Redis服务端,可能会导致他人通过Redis第三方工具等接入
Redis服务端随意操作别的客户端存入的数据,影响其他客户端的使用。
[0009] 3)管理不灵活:原始Redis服务端仅对密码进行验证,无法区分不同客户端,因此无法对每个客户端进行精确的访问控,比如说仅允许某些客户端接入后者断开某个已经接
入的客户端连接。
[0010] 原始的Redis服务端提供了配置文件明文密码的方式进行接入认证,且一个Redis服务端只能设置一个密码,安全性差,只要通过密码就可接入Redis服务端,无法对每个系
统进行精确管理。
[0011] 本发明针对该问题,设计了一套基于Redis服务端的分布式缓存平台客户端接入认证体系,每个客户端可通过认证管理中心颁发的token接入Redis服务端,同时可通过认
证管理中心对客户端进行禁用操作。

发明内容

[0012] 针对现有技术中存在的上述技术问题,本公开提供了一种基于分布式缓存的客户端接入认证体系,每个客户端可通过认证管理中心颁发的token接入Redis服务端,同时可
通过认证管理中心对客户端进行禁用操作。
[0013] 本发明的技术解决方案是:一种分布式缓存平台客户端接入认证体系,所述认证体系包括以下模块:Redis客户端驱动框架、认证管理中心和Redis服务端,其特征在于:该
认证体系包括:认证管理中心生成token,客户端通过认证管理中心接入Redis服务端以及
认证管理中心禁用客户端;同时,这三个部分都包括Redis服务端同步密码列表的操作来保
证最终Redis服务端中的密码与认证管理中心的密码保持一致。
[0014] 进一步的,每个客户端需要使用Redis客户端驱动框架并配置认证管理中心的地址和token才能接入Redis服务端,token需要找管理员进行申请,允许接入后,管理员通过
认证管理中心为其生成token。管理员通过认证管理中心生成token的过程包括以下步骤:
[0015] 步骤S101、管理员通过认证管理中心为其添加Token,添加Token时需要填写客户端标识码,每个标识码是唯一的;
[0016] 步骤S102、添加成功之后,认证管理中心会自动生成对应的密码和token,然后管理员把生成的token告知客户端;
[0017] 步骤S103、认证管理中心会向Redis服务端同步密码列表,Redis服务端会把密码列表维护在内存中;
[0018] 其中,认证管理中心有三个时机向Redis服务端同步密码列表保证最终Redis服务端中的密码会与认证管理中心中的密码保持一致。
[0019] 进一步的,客户端通过认证管理中心接入Redis服务端的流程包括:
[0020] 步骤S201、客户端基于提前分配的token向认证管理中心获取Redis服务端的IP地址和密码;
[0021] 步骤S202、认证管理中心收到客户端的请求,从密码列表中查询该token对应的标识码和密码以及状态;如果状态为禁用,直接返回失败;如果状态为可用,则返回标识码对
应的Redis服务端地址和密码;
[0022] 步骤S203、客户端使用认证管理中心返回的Redis服务端地址和密码尝试与Redis服务端建立连接并发送密码验证;
[0023] 步骤S204、Redis服务端端收到客户端发送的密码后与内存中的密码列表比对,如果密码在密码列表中则返回验证成功,客户端成功接入Redis服务端;否则返回验证失败,
客户端接入失败。
[0024] 进一步的,管理员在发现某个客户端异常后,可以通过认证管理中心手动禁用该客户端,具体流程包括:
[0025] 步骤S301、管理员通过认证管理中心点击禁用某个客户端;
[0026] 步骤S302、认证管理中心把密码列表中该客户端对应的token状态设置为禁用;
[0027] 步骤S303、认证管理中心刷新密码列表并推送给Redis服务端;
[0028] 步骤S304、认证管理中心查询出该客户端对应的客户端名称,通过Redis服务端扩展的自定义命令告知Redis服务端禁用该客户端;
[0029] 步骤S305、Redis服务端收到命令后会主动断开与该客户端的连接。
[0030] 进一步的,Redis服务端在启动时会触发认证管理中心进行密码列表同步,具体流程包括:
[0031] 步骤S401、Redis服务端启动,通知认证管理中心;
[0032] 步骤S402、认证管理中心向Redis服务端推送密码列表。
[0033] 进一步的,当管理员通过认证管理中心操作token时,会触发认证管理中心推送密码列表到Redis服务端。同步的具体流程包括:
[0034] 步骤S501、管理员通过认证管理中心新增或禁用token;
[0035] 步骤S502、认证管理中心密码列表发生变化;
[0036] 步骤S503、认证管理中心同步密码列表到Redis服务端。
[0037] 进一步的,认证管理中心定时检测Redis服务端中密码列表的版本号,当发现Redis服务端中密码列表的版本号与认证管理中心版本号不一致时,会向Redis服务端推送
密码列表。同步的具体流程包括:
[0038] 步骤S601、认证管理中心定时查询Redis服务端中密码列表版本号;
[0039] 步骤S602、认证管理中心将其与自己的密码列表版本号进行对比;
[0040] 步骤S603、如果发现版本号不一致,将密码列表推送给Redis服务端,否则不进行操作。
[0041] 与现有技术相比,本公开实施例的有益效果在于:
[0042] 1)本接入认证体系修改了Redis服务端原有的认证方式,Redis服务端通过密码列表的方式替代了原有的明文密码,且密码列表不在Redis服务端的配置文件中,无法进行查
看,解决了缺点一的问题。
[0043] 2)在本认证体系中,客户端只有集成我们的Redis客户端驱动框架才能接入Redis服务端,而我们的SDK中采用了逻辑隔离手段,每个客户端只能操作自己的数据,解决了缺
点二的问题。
[0044] 3)本认证体系针为每个允许接入的客户端分配单独的token,客户端必须集成我们的Redis客户端驱动框架并配置有效的token才能接入Redis服务端,同时可通过在认证
管理中心开启或禁用已经生成的token,从而实现对客户端的精确控制,解决了缺点三的问
题。

附图说明

[0045] 在不一定按比例绘制的附图中,相同的附图标记可以在不同的视图中描述相似的部件。具有字母后缀或不同字母后缀的相同附图标记可以表示相似部件的不同实例。附图
大体上通过举例而不是限制的方式示出各种实施例,并且与说明书以及权利要求书一起用
于对所公开的实施例进行说明。在适当的时候,在所有附图中使用相同的附图标记指代同
一或相似的部分。这样的实施例是例证性的,而并非旨在作为本装置或方法的穷尽或排他
实施例。
[0046] 图1为本发明的认证中心生成token流程图;
[0047] 图2为本发明的客户端通过认证管理中心接入Redis服务端流程图;
[0048] 图3为本发明的禁用客户端流程图;
[0049] 图4为本发明的Redis服务端启动时触发更新密码列表流程图;
[0050] 图5为本发明的认证管理中心主动推送密码列表流程图;
[0051] 图6为本发明的认证管理中心定时检测Redis服务端的密码列表版本号流程图。

具体实施方式

[0052] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用于解释本申请,并不
用于限定本申请。
[0053] 本申请提供了一种基于分布式缓存的客户端接入认证体系,如图2所示,该认证体系涉及三个模块:Redis客户端驱动框架、认证管理中心、Redis服务端。
[0054] 其中Redis server:Redis服务端,基于开源Redis定制化开发的Redis服务端端服务,改造了其原有的接入认证逻辑。
[0055] Redis Client SDK:Redis客户端驱动框架,本发明设计的客户端需引入该驱动框架并配置有效的token才能接入Redis服务端。Redis客户端驱动框架中包含了对Redis各种
数据类型的操作方法,并且添加了客户端逻辑隔离,保证客户端接入Redis服务端后只能操
作自己的数据。
[0056] 认证管理中心:本发明所设计的接入认证管理中心,具有添加token,根据客户端提供的token向客户端返回密码和禁用token的功能。客户端想要申请接入Redis服务端必
须先向认证管理中心获取token和Redis服务端的ip地址方能成功接入。
[0057] 整个接入认证体系主要功能可以分为三部分:认证管理中心生成token;客户端通过认证管理中心接入Redis服务端;认证管理中心禁用客户端。同时,这三个部分都涉及了
Redis服务端同步密码列表的操作。
[0058] PasswordList:存储在认证管理中心的密码列表,上面保存有每个客户端的唯一标识(appId)和token,以及token对应的password(密码)。认证管理中心会同步该
PasswordList到Redis服务端。
[0059] 如图1所示为认证管理中心生成token的流程图,每个客户端需要使用Redis Client SDK并配置认证管理中心的地址和token才能接入Redis服务端,token需要找管理
员进行申请,允许接入后,管理员通过认证中心为其生成token。管理员通过认证中心生成
token的过程如图1所示:
[0060] 步骤S101:管理员通过认证管理中心为其添加Token,添加Token时需要填写客户端标识码,每个标识码是唯一的。
[0061] 步骤S102:添加成功之后,认证管理中心会自动生成对应的密码和token,然后管理员把生成的token告知客户端。
[0062] 步骤S103:认证管理中心会向Redis服务端同步PasswordList,Redis服务端会把PasswordList维护在内存中。
[0063] 认证管理中心有三个时机会向Redis服务端同步PasswordList保证最终Redis服务端中的密码会与认证管理中心中的密码保持一致。具体过程在“Redis服务端同步
PasswordList”中说明。
[0064] 如图2所示,客户端通过认证管理中心接入Redis服务端的流程如下:
[0065] 步骤S201:客户端基于提前分配的token向认证管理中心获取Redis服务端的IP地址和密码。
[0066] 步骤S202:认证管理中心收到客户端的请求,从PassworList中查询该token对应的标识码和密码以及状态;如果状态为禁用,直接返回失败;如果状态为可用,则返回标识
码对应的Redis服务端地址和密码。
[0067] 步骤S203:客户端使用认证管理中心返回的Redis服务端地址和密码尝试与Redis服务端端建立连接并发送密码验证。
[0068] 步骤S204:Redis服务端端收到客户端发送的密码后与内存中的PasswordList比对,如果密码在PasswordList中则返回验证成功,客户端成功接入Redis服务端;否则返回
验证失败,客户端接入失败。
[0069] 管理员在发现某个客户端异常后,可以通过认证管理中心手动禁用该客户端,具体流程如图3所示:
[0070] 步骤S301:管理员通过认证管理中心点击禁用某个客户端;
[0071] 步骤S302:认证管理中心把PasswordList中该客户端对应的token状态设置为禁用;
[0072] 步骤S303:认证管理中心刷新PasswordList并推送给Redis服务端;
[0073] 步骤S304:认证管理中心查询出该客户端对应的客户端名称,通过Redis服务端扩展的自定义命令告知Redis服务端禁用该客户端;
[0074] 步骤S305:Redis服务端收到命令后会主动断开与该客户端的连接。
[0075] 如图4‑6所示,认证管理中心有三个时机向Redis服务端同步PasswordList来保证最终Redis服务端中的密码会与认证管理中心的密码保持一致。
[0076] Redis服务端在启动时会触发认证管理中心进行PasswordList同步,具体流程如图4所示:
[0077] 步骤S401:Redis服务端启动,通知认证管理中心;
[0078] 步骤S402:认证管理中心向Redis服务端推送PasswordList。
[0079] 当管理员通过认证管理中心操作token时(添加/禁用),会触发认证管理中心推送PasswordList到Redis服务端,具体流程如图5所示:
[0080] 步骤S501:管理员通过认证管理中心新增/禁用token;
[0081] 步骤S502:认证管理中心PasswordList发生变化;
[0082] 步骤S503:认证管理中心同步PassworList到Redis服务端。
[0083] 除了上述两种方式外,认证管理中心还会定时检测Redis服务端中PasswordList的版本号,当发现Redis服务端中PasswordList的版本号与认证管理中心版本号不一致时,
会向Redis服务端推送PasswordList,具体流程如图6所示:
[0084] 步骤S601:认证管理中心定时查询Redis服务端中PasswordList版本号;
[0085] 步骤S602:认证管理中心将其与自己的PasswordList版本号进行对比;
[0086] 步骤S603:如果发现版本号不一致,将PassworList推送给Redis服务端,否则不进行操作。
[0087] 本发明的分布式缓存平台客户端接入认证体系,为每个允许接入的客户端提供专门的token,一旦发现该系统有问题,管理员可在管理平台手动禁用该系统的接入,避免因
为一个系统出现问题影响整个Redis服务端的性能。实现了:
[0088] 1.通过对Redis服务端改造修改了其原有的直接通过密码的方式进行接入认证逻辑。
[0089] 2.封装了自己的Redis客户端驱动框架,客户端需要集成该驱动框架并配置相应token才能接入我们改造的Redis服务端。
[0090] 3.建立了认证管理中心,通过认证管理中心可管理客户端的接入,并禁用已经建立连接的客户端。