数据在中间件间传输的动态认证方法、装置及计算机介质
文献发布时间:2023-06-19 13:46:35
技术领域
本发明涉及数据鉴权技术领域,具体地说是数据在中间件间传输的动态认证方法、装置及计算机介质。
背景技术
医疗行业日志从终端采集(filebeat)到消息队列(kafka)传输过程中用户鉴权、数据隔离也存在一些技术积累和方案,目前主要有三种:一是静态方式认证(PLAIN),这种方式是kafka预先设置好固定的访问权限(用户名和密码),filebeat访问时配置好访问信息即可;二是伪动态认证(SCRAM),这种方式是kafka结合zookeeper,访问信息(用户名和密码)注册到zookeeper上,kafka通过访问zookeeper实现权限控制,用户可以通过动态修改zookeeper上的访问信息实现动态更新;三是动态认证(集成kerberos),kafka集成kerberos认证框架,通过调用kerberos进行动态认证。
以上kafka用户认证方式已经相对成熟,但都存在一些问题,静态方式认证(PLAIN)问题比较明显,不能动态更新用户名和密码,会有安全问题,同时不能用户隔离,生产环境不建议使用。伪动态认证(SCRAM)虽然做到了用户和密码动态更新,但本质还是基于预设用户和密码(可以预设一对或者多对)的更新,很难做到动态添加,所以严格来说不能算作动态认证。动态认证(集成kerberos)确实做到了用户和密码动态更新、动态添加,但kerberos框架比较复杂,部署和实施有一定门槛,本身也会依赖一些其他中间件,使用成本较高。
基于上述,如何实现医疗日志数据从filebeat到kafka传输过程的动态认证,并实现支持多租户、支持用户名和密码动态更新、并支持用户信息和kafka解耦,轻量化认证过程,是需要解决的技术问题。
发明内容
本发明的技术任务是针对以上不足,提供数据在中间件间传输的动态认证方法、装置及计算机介质,来解决如何实现医疗日志数据从filebeat到kafka传输过程的动态认证的问题。
第一方面,本发明的数据在中间件间传输的动态认证方法,用于实现医疗日志数据从中间件filebeat数据采集终端到中间件kafka消息队列传输过程中,通过动态调用接口进行用户权限控制和数据传输,所述方法包括如下步骤:
通过用户token查询用户信息,将用户信息以及用户配置的日志采集参数写入filebeat默认配置文件中;
在filebeat的启动模块中增加客户端注册逻辑以及客户端认证逻辑,将用户下载的filebeat客户端上传日志采集服务器,并进行安装启动,filebeat客户端将其自身注册到终端管理系统,并调用远程接口对用户信息进行验证;
所述filebeat客户端成功启动后,携带用户信息与kafka交互;
基于kafka插件机制重写kafka默认认证逻辑,并调用用户信息服务对用户信息进行验证,对于认证通过的用户信息,通过kafka本地进行缓存,并将用户信息认证成功信息返回filebeat客户端,以进行数据传输。
作为优选,所述用户信息包括用户的appkey和appsecret。
作为优选,将用户的appkey、加密后的appsecret以及用户配置的日志采集参数写入filebeat默认配置文件中。
作为优选,调用远程接口对用户信息进行验证,如果验证失败,filebeat强制停止和退出。
作为优选,所述filebeat客户端成功启动后,通过ssl机制携带用户信息与kafka交互。
作为优选,如果用户信息认证不通过,将用户信息认证失败信息返回filebeat客户端,filebeat客户端收到用户信息认证失败信息后会强制停止、下线。
第二方面,本发明的装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行第一方面任一所述的方法。
第三方面,本发明的计算机介质,为计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行第一方面任一所述的方法。
本发明的数据在中间件间传输的动态认证方法、装置及计算机介质具有以下优点:
1、实现filebeat到kafka之间用户信息动态修改、动态认证;
2、将用户信息和中间件解耦,用户信息做到单独管理,支持多租户操作。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面结合附图对本发明进一步说明。
图1为实施例1数据在中间件间传输的动态认证方法的流程框图;
图2为实施例1数据在中间件间传输的动态认证方法中用户认证流程框图;
图3位实施例1数据在中间件间传输的动态认证方法中日志接入流程框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
本发明实施例提供数据在中间件间传输的动态认证方法、装置及计算机介质,用于解决如何实现医疗日志数据从filebeat到kafka传输过程的动态认证的技术问题。
实施例1:
本发明的数据在中间件间传输的动态认证方法,用于实现医疗日志数据从中间件filebeat数据采集终端到中间件kafka消息队列传输过程中,通过动态调用接口进行用户权限控制和数据传输,该方法包括如下步骤:
S100、通过用户token查询用户信息,将用户信息以及用户配置的日志采集参数写入filebeat默认配置文件中;
S200、在filebeat的启动模块中增加客户端注册逻辑以及客户端认证逻辑,将用户下载的filebeat客户端上传日志采集服务器,并进行安装启动,filebeat客户端将其自身注册到终端管理系统,并调用远程接口对用户信息进行验证;
S300、filebeat客户端成功启动后,携带用户信息与kafka交互;
S400、基于kafka插件机制重写kafka默认认证逻辑,并调用用户信息服务对用户信息进行验证,对于认证通过的用户信息,通过kafka本地进行缓存,并将用户信息认证成功信息返回filebeat客户端,以进行数据传输。
其中,步骤S100下载filebeat服务中,系统通过用户的token信息查询到用户的appkey和appsecret。用户在系统中配置一些日志采集参数后,系统会将用户配置的参数及appkey、appsecret(加密后)信息写入到filebeat默认配置文件中供用户进行下载,传统filebeat采集都是直接配置固定的用户名和密码,本发明中通过用户token动态获取到用户的appkey和appsecret,省去用户配置过程,同时提升安全性。
步骤S200 filebeat客户端启动中,用户将下载好的filebeat客户端上传到日志采集服务器,进行安装启动。Filebeat启动后传统的方式会直接连接kafka进行认证。本发明改写了filebeat启动模块增加了客户端注册、客户端认证(可配置)逻辑,客户端启动后会先将自身注册到终端管理系统,以便后续远程启停、流程等监控。调用远程接口进行用户信息(app+appsecret)验证,如果验证失败filebeat强制停止、退出。本地验证是防止管理员在服务端修改了用户的信息(appkey+appsecret),如停止用户访问、把用户加入到和名单等操作。
步骤S300 filebeat访问kafka,filebeat启动成功后,会携带这用户信息与kafka交互,进行用户认证。用户信息传输过程采用ssl机制,保证数据安全性。
步骤S400 kafka端认证,基于kafka插件机制,重写了kafka默认认证逻辑。kafka收到filebeat传输过来的用户信息后。调用用户信息服务,校验用户信息的准确性,如果认证通过,kafka本地进行用户信息缓存(管理员修改用户信息或者每隔1分钟会清空缓存),同时将成功信息返回给filebeat,之后进行数据传输。如果认证失败将将失败信息返回给filebeat客户端,filebeat客户端收到失败信息后会强制停止、下线。这里可以看到,本发明中用户信息是和中间件(filebeat、kafka)解耦的,认证都是通过接口的方式,提升了灵活性。
实施例2:
本发明的装置,包括:至少一个存储器和至少一个处理器;至少一个存储器,用于存储机器可读程序;至少一个处理器,用于调用所述机器可读程序,执行本发明任一实施例公开的方法。
实施例3:
本发明的一种计算机介质,为计算机可读可读介质,计算机可读介质上存储有计算机指令,计算机指令在被处理器执行时,使处理器执行实施例1公开的方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
- 数据在中间件间传输的动态认证方法、装置及计算机介质
- 计算机集群间基于消息中间件的消息传输方法及其装置