一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多KDC数据源的认证方法和装置与流程

2022-07-13 14:37:26 来源:中国专利 TAG:

多kdc数据源的认证方法和装置
技术领域
1.本发明涉及数据安全认证技术领域,具体涉及一种多kdc数据源的认证方法和一种多kdc数据源的认证装置。


背景技术:

2.在大数据技术数据处理领域,多数数据源支持使用kerberos来进行安全认证,系统中使用开启kerberos的数据源时,在每次读写数据时需要进行kerberos认证,实现逻辑复杂,无法灵活的进行多个kdc(key distribute center,负责分发密钥的中心)的认证。


技术实现要素:

3.本发明为解决上述技术问题,提供了一种多kdc数据源的认证方法,能够支持多kdc数据源的kerberos认证,从而能够降低开发成本。
4.本发明采用的技术方案如下:
5.一种多kdc数据源的认证方法,包括以下步骤:获取待识别数据源的认证信息;标注并解析所述认证信息;获取并缓存用户组信息,其中,所述用户组信息为已认证信息;根据所述用户组信息和所述解析后的认证信息对所述待识别数据源进行认证。
6.根据本发明的一个实施例,所述认证信息为kerberos认证文件,所述kerberos认证文件包括keytab文件和krb5.conf文件。
7.根据本发明的一个实施例,所述标注并解析所述认证信息,具体包括以下步骤:将所述认证信息上传至公共存储组件;对所述上传至公共存储组件中的认证信息标注上传时间戳信息;对所述标注后的认证信息中的keytab文件进行解析。
8.根据本发明的一个实施例,所述获取并缓存用户组信息,具体包括以下步骤:定义所述用户组信息的缓存map对象;采用所述map对象缓存所述用户组信息;封装保存所述用户组信息的ugidata类,其中,所述ugidata类还保存有认证时间戳信息;定义所述用户组信息的更新周期调度线程池;根据所述周期调度线程池更新所述用户组信息。
9.根据本发明的一个实施例,采用new hashmap《string,ugidata》()定义所述map对象;采用new scheduledthreadpoolexecutor(1,new dtclass thread factory("ugi cachefactory"))定义所述周期调度线程池。
10.根据本发明的一个实施例,所述根据所述用户组信息和所述解析后的认证信息对所述待识别数据源进行认证,具体包括以下步骤:判断所述map对象中是否存在对应的用户组信息;若否,则根据所述上传时间戳信息判断是否需要下载所述上传至公共存储组件中的认证信息;若是,则设置系统变量并清空当前认证信息,进而下载所述上传至公共存储组件中的认证信息;根据所述下载得到的认证信息对所述待识别数据源进行认证。
11.根据本发明的一个实施例,所述系统变量为java.security.krb5.conf值。
12.一种多kdc数据源的认证装置,包括:获取模块,所述获取模块用于获取待识别数据源的认证信息;标注解析模块,所述标注解析模块用于标注并解析所述认证信息;缓存模
块,所述缓存模块用于获取并缓存用户组信息,其中,所述用户组信息为已认证信息;认证模块,所述认证模块用于根据所述用户组信息和所述解析后的认证信息对所述待识别数据源进行认证。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述的多kdc数据源的认证方法。
14.一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的多kdc数据源的认证方法。
15.本发明的有益效果:
16.根据本发明实施例提出的多kdc数据源的认证方法和装置,用户可上传不用kdc数据源的认证信息,例如keytab文件和krb5.conf文件,通过处理、缓存该认证信息,例如keytab文件和krb5.conf文件进行认证操作,由此,能够支持多kdc数据源的kerberos认证,从而能够降低开发成本。
附图说明
17.图1为本发明实施例的多kdc数据源的认证方法的流程图;
18.图2为本发明一个实施例的根据用户组信息和解析后的认证信息对待识别数据源进行认证过程的流程图;
19.图3为本发明实施例的多kdc数据源的认证装置的方框示意图。
具体实施方式
20.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.图1为本发明实施例的多kdc数据源的认证方法的流程图。
22.如图1所示,本发明实施例的多kdc数据源的认证方法,包括以下步骤:
23.s1,获取待识别数据源的认证信息。
24.其中,认证信息可为kerberos认证文件,并且kerberos认证文件可包括keytab文件和krb5.conf文件,由此,能够通过kerberos认证文件对待识别数据源进行安全认证。
25.s2,标注并解析认证信息。
26.具体地,可将认证信息上传至公共存储组件,并可对上传至公共存储组件中的认证信息标注上传时间戳信息,然后可对标注后的认证信息中的keytab文件进行解析。
27.更具体地,在上传认证信息之前,还需要判断获取得到的认证信息中是否存在认证必须的文件,即keytab文件和krb5.conf文件,若存在认证必须的文件,即keytab文件和krb5.conf文件,则可将认证信息上传至公共存储组件,例如sftp中并添加上传时间戳信息,以用于高可用部署。
28.进一步地,可对标注后的认证信息中的keytab文件,更具体为keytab文件中的principal信息进行解析,并可将解析结果返回给用户选择。
29.s3,获取并缓存用户组信息,其中,用户组信息为已认证信息。
30.具体地,可自定义用户组信息的缓存map对象,例如可采用new hashmap《string,ugidata》()定义map对象,然后可采用map对象缓存用户组信息,此外,还可封装保存用户组信息的ugidata类,其中,ugidata类还保存有认证时间戳信息,然后可定义用户组信息的更新周期调度线程池,例如可采用new scheduledthreadpoolexecutor(1,newdtclassthreadfactory("ugi cachefactory"))定义周期调度线程池,最后可根据周期调度线程池更新map对象中的用户组信息。其中,缓存在map对象中的用户组信息的key为认证信息中的principal信息和keytab文件路径的组合,由此,能够实现用户组信息与认证信息的关联。
31.更具体地,上述采用周期调度线程池更新map对象中的用户组信息的过程,可设定更新时间频率,例如3小时更新一次,即每3小时判断map对象中的用户组信息是否过期,即ugidata类中的认证时间戳是否超过预设时间,若是,则判定对应的用户组信息过期并清除过期的用户组信息。
32.s4,根据用户组信息和解析后的认证信息对待识别数据源进行认证。
33.具体地,如图2所示,包括以下步骤:
34.s401,判断map对象中是否存在对应的用户组信息。
35.具体地,可根据认证信息中的principal信息和keytab文件路径判断map对象中是否存在对应的用户组信息。
36.s402,若否,则根据上传时间戳信息判断是否需要下载上传至公共存储组件中的认证信息。
37.具体地,可先判断本地文件,例如map对象中是否有认证信息,若map对象中有认证信息,则比较本地文件,例如map对象中的认证信息与公共存储组件,例如sftp中认证信息之间的时间戳信息,并选择时间戳较新的认证信息使用;若map对象中没有认证信息,则从公共存储组件,例如sftp中下载认证信息使用。
38.s403,若是,则设置系统变量并清空当前认证信息,进而下载上传至公共存储组件中的认证信息。
39.具体地,系统变量可为java.security.krb5.conf值,可将系统变量,即java.security.krb5.conf值设置为本地文件,例如map对象中krb5.conf文件的路径,用于在认证时寻找kdc信息。
40.s404,根据下载得到的认证信息对待识别数据源进行认证。
41.具体地,可调用ugidata类loginuserfromkeytabandreturnugi方法传pprincipal信息和keytab文件的绝对路径进行认证,并可将返回的用户组信息进行缓存并返回给用户。
42.进一步地,用户在拿到返回的用户组信息后可调用doas方法来执行自己的业务逻辑,例如hdfs文件的上传、下载,以及yarn日志的读取和/或mr任务的提交。
43.综上所述,根据本发明实施例提出的多kdc数据源的认证方法,用户可上传不用kdc数据源的认证信息,例如keytab文件和krb5.conf文件,通过处理、缓存该认证信息,例如keytab文件和krb5.conf文件进行认证操作,由此,能够支持多kdc数据源的kerberos认证,从而能够降低开发成本。
44.对应上述实施例提出的多kdc数据源的认证方法,本发明还提出了一种多kdc数据
源的认证装置。
45.如图3所示,本发明实施例的多kdc数据源的认证装置,包括获取模块10、标注解析模块20、缓存模块30和认证模块40。其中,获取模块10用于获取待识别数据源的认证信息;标注解析模块20用于标注并解析认证信息;缓存模块30用于获取并缓存用户组信息,其中,用户组信息为已认证信息;认证模块40用于根据用户组信息和解析后的认证信息对待识别数据源进行认证。
46.在本发明的一个实施例中,认证信息可为kerberos认证文件,并且kerberos认证文件可包括keytab文件和krb5.conf文件,由此,能够通过kerberos认证文件对待识别数据源进行安全认证。
47.在本发明的一个实施例中,标注解析模块20可具体用于将认证信息上传至公共存储组件,并可对上传至公共存储组件中的认证信息标注上传时间戳信息,然后可对标注后的认证信息中的keytab文件进行解析。
48.更具体地,在上传认证信息之前,还需要判断获取得到的认证信息中是否存在认证必须的文件,即keytab文件和krb5.conf文件,若存在认证必须的文件,即keytab文件和krb5.conf文件,则可将认证信息上传至公共存储组件,例如sftp中并添加上传时间戳信息,以用于高可用部署。
49.进一步地,可对标注后的认证信息中的keytab文件,更具体为keytab文件中的principal信息进行解析,并可将解析结果返回给用户选择。
50.在本发明的一个实施例中,缓存模块30可具体用于自定义用户组信息的缓存map对象,例如可采用new hashmap《string,ugidata》()定义map对象,然后可采用map对象缓存用户组信息,此外,还可封装保存用户组信息的ugidata类,其中,ugidata类还保存有认证时间戳信息,然后可定义用户组信息的更新周期调度线程池,例如可采用new scheduledthreadpool executor(1,newdtclassthreadfactory("ugi cachefactory"))定义周期调度线程池,最后可根据周期调度线程池更新map对象中的用户组信息。其中,缓存在map对象中的用户组信息的key为认证信息中的principal信息和keytab文件路径的组合,由此,能够实现用户组信息与认证信息的关联。
51.更具体地,上述采用周期调度线程池更新map对象中的用户组信息的过程,可设定更新时间频率,例如3小时更新一次,即每3小时判断map对象中的用户组信息是否过期,即ugidata类中的认证时间戳是否超过预设时间,若是,则判定对应的用户组信息过期并清除过期的用户组信息。
52.在本发明的一个实施例中,如图2所示,认证模块40可具体用于:
53.s401,判断map对象中是否存在对应的用户组信息。
54.具体地,可根据认证信息中的principal信息和keytab文件路径判断map对象中是否存在对应的用户组信息。
55.s402,若否,则根据上传时间戳信息判断是否需要下载上传至公共存储组件中的认证信息。
56.具体地,可先判断本地文件,例如map对象中是否有认证信息,若map对象中有认证信息,则比较本地文件,例如map对象中的认证信息与公共存储组件,例如sftp中认证信息之间的时间戳信息,并选择时间戳较新的认证信息使用;若map对象中没有认证信息,则从
公共存储组件,例如sftp中下载认证信息使用。
57.s403,若是,则设置系统变量并清空当前认证信息,进而下载上传至公共存储组件中的认证信息。
58.具体地,系统变量可为java.security.krb5.conf值,可将系统变量,即java.security.krb5.conf值设置为本地文件,例如map对象中krb5.conf文件的路径,用于在认证时寻找kdc信息。
59.s404,根据下载得到的认证信息对待识别数据源进行认证。
60.具体地,可调用ugidata类loginuserfromkeytabandreturnugi方法传pprincipal信息和keytab文件的绝对路径进行认证,并可将返回的用户组信息进行缓存并返回给用户。
61.进一步地,用户在拿到返回的用户组信息后可调用doas方法来执行自己的业务逻辑,例如hdfs文件的上传、下载,以及yarn日志的读取和/或mr任务的提交。
62.综上所述,根据本发明实施例提出的多kdc数据源的认证装置,用户可上传不用kdc数据源的认证信息,例如keytab文件和krb5.conf文件,通过处理、缓存该认证信息,例如keytab文件和krb5.conf文件进行认证操作,由此,能够支持多kdc数据源的kerberos认证,从而能够降低开发成本。
63.对应上述实施例,本发明还提出一种计算机设备。
64.本发明实施例的计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现上述实施例的多kdc数据源的认证方法。
65.根据本发明实施例的计算机设备,用户可上传不用kdc数据源的认证信息,例如keytab文件和krb5.conf文件,通过处理、缓存该认证信息,例如keytab文件和krb5.conf文件进行认证操作,由此,能够支持多kdc数据源的kerberos认证,从而能够降低开发成本。
66.对应上述实施例,本发明还提出一种非临时性计算机可读存储介质。
67.本发明实施例的非临时性计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的多kdc数据源的认证方法。
68.根据本发明实施例的非临时性计算机可读存储介质,用户可上传不用kdc数据源的认证信息,例如keytab文件和krb5.conf文件,通过处理、缓存该认证信息,例如keytab文件和krb5.conf文件进行认证操作,由此,能够支持多kdc数据源的kerberos认证,从而能够降低开发成本
69.在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。“多个”的含义是两个或两个以上,除非另有明确具体的限定。
70.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
71.在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以
是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
72.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
73.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
74.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
75.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
76.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
77.此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模
块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
78.上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献