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

基于自定义资源的身份认证方法、装置、设备及介质与流程

2022-06-25 05:30:02 来源:中国专利 TAG:


1.本发明涉及通信技术领域,尤其涉及一种基于自定义资源的身份认证方法、装置、设备及介质。


背景技术:

2.随着容器领域的技术不断成熟,越来越多的传统单体应用被改造为容器进行部署,kubernetes作为容器编排领域内的佼佼者受到越来越多的关注。其中,针对kubernetes的认证与授权功能是非常重要的一项。
3.目前现有技术中,通常采用以下两种方式来实现kubernetes dashboard登录中的认证。第一种方式为:使用临时令牌token来登录kubernetes dashboard,具体地每个服务账户(service account)都有一个合法的bearer token,可用于登录dashboard。第二种方式为:使用证书kubeconfig来登录kubernetes dashboard。
4.然而在实践中发现,现有技术中的上述两种方式存在很多问题,例如登录凭证不易牢记,不便携带,登录凭证容易丢失,从而造成信息的安全隐患。


技术实现要素:

5.本技术实施例通过提供一种基于自定义资源的身份认证方法、装置、终端及介质,解决了现有技术中kubernetes dashboard登录中容易造成信息安全隐患的技术问题。
6.一方面,本技术通过本技术的一实施例提供一种基于自定义资源crd的身份认证方法,应用于kubernetes开源平台中,所述方法包括:
7.在所述kubernetes开源平台中创建crd用户资源,所述crd用户资源中至少包括验证用户名和验证密码;
8.接收kubernetes登录请求,所述kubernetes登录请求中携带有待认证用户名和待认证密码;
9.在预配的kubernetes认证器中根据所述验证用户名和所述验证密码,对所述待认证用户名和所述待认证密码进行用户身份认证,以确定是否授权所述待认证用户名具备对应的资源访问权限。
10.可选地,所述在所述kubernetes开源平台中创建crd用户资源包括:
11.通过kubectl命令在所述kubernetes开源平台中创建所述crd用户资源。
12.可选地,所述在所述kubernetes开源平台中创建crd用户资源包括:
13.通过restful api接口在所述kubernetes开源平台中创建所述crd用户资源。
14.可选地,所述crd用户资源包括以下中的至少一项:用户信息资源、用户角色资源及用户角色绑定资源。
15.可选地,所述方法还包括:
16.通过所述restful api接口对所述crd用户资源进行更新操作。
17.可选地,所述在预配的kubernetes认证器中根据所述验证用户名和所述验证密
码,对所述待认证用户名和所述待认证密码进行用户身份认证,以确定是否授权所述待认证用户名具备对应的资源访问权限包括:
18.在预配的kubernetes认证器中,从所述验证用户名中查找是否存在与所述待认证用户名对应的目标用户;
19.若存在,则根据所述目标用户对应的验证密码对所述待认证密码进行认证,以确定是否授权所述待认证用户名具备对应的资源访问权限。
20.可选地,所述根据所述目标用户对应的验证密码对所述待认证密码进行认证,以确定是否授权所述待认证用户名具备对应的资源访问权限包括:
21.对所述待认证密码进行加密处理,得到待认证密文;
22.将所述待认证密文和所述目标用户对应的验证密码进行对比,以实现所述待认证用户名和所述待认证密码的验证;
23.若所述验证成功,则确定授权所述待认证用户名具备对应的资源访问权限。
24.另一方面,本技术通过本技术的一实施例提供一种基于自定义资源crd的身份认证装置,应用于kubernetes开源平台中,所述装置包括创建模块、接收模块和认证模块,其中:
25.所述创建模块,用于在所述kubernetes开源平台中创建crd用户资源,所述crd用户资源中至少包括验证用户名和验证密码;
26.所述接收模块,用于接收kubernetes登录请求,所述kubernetes登录请求中携带有待认证用户名和待认证密码;
27.所述认证模块,用于在预配的kubernetes认证器中根据所述验证用户名和所述验证密码,对所述待认证用户名和所述待认证密码进行用户身份认证,以确定是否授权所述待认证用户名具备对应的资源访问权限。
28.关于本技术实施例中未介绍或未描述的内容可对应参考前述方法实施例中的相关介绍,这里不再赘述。
29.另一方面,本技术通过本技术的一实施例提供一种终端设备,所述终端设备包括:处理器、存储器、通信接口和总线;所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;所述存储器存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如上所述的基于自定义资源crd的身份认证方法。
30.另一方面,本技术通过本技术的一实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序运行在终端设备时执行如上所述的基于自定义资源crd的身份认证方法。
31.本技术实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:本技术在所述kubernetes开源平台中创建crd用户资源,所述crd用户资源中至少包括验证用户名和验证密码;接收kubernetes登录请求,所述kubernetes登录请求中携带有待认证用户名和待认证密码;在预配的kubernetes认证器中根据所述验证用户名和所述验证密码,对所述待认证用户名和所述待认证密码进行用户身份认证,以确定是否授权所述待认证用户名具备对应的资源访问权限。上述方案中,本技术根据kubernetes开源平台中创建的crd用户资源,对kubernetes登录请求中携带的待认证用户名和待认证密码进行用户身份认
证,以确定是否授权该待认证用户具备相应的资源访问权限。这样在kubernetes中实现了基于用户名和密码的快速登录认证,同时解决了现有技术中采用token和kubeconfig登录所存在的登录凭证不易记住、易丢失、导致信息安全隐患等技术问题。
附图说明
32.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
33.图1是本技术实施例提供的一种基于自定义资源crd的身份认证方法的流程示意图。
34.图2是本技术实施例提供的一种基于自定义资源crd的身份认证装置的结构示意图。
35.图3是本技术实施例提的一种终端设备的结构示意图。
具体实施方式
36.本技术实施例通过提供一种基于自定义资源crd的身份认证方法,解决了现有技术中kubernetes dashboard登录中容易造成信息安全隐患的技术问题。
37.本技术实施例的技术方案为解决上述技术问题,总体思路如下:本技术提供一种基于自定义资源crd的身份认证方法,应用于kubernetes开源平台中,所述方法包括:
38.在所述kubernetes开源平台中创建crd用户资源,所述crd用户资源中至少包括验证用户名和验证密码;
39.接收kubernetes登录请求,所述kubernetes登录请求中携带有待认证用户名和待认证密码;
40.在预配的kubernetes认证器中根据所述验证用户名和所述验证密码,对所述待认证用户名和所述待认证密码进行用户身份认证,以确定是否授权所述待认证用户名具备对应的资源访问权限。
41.为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
42.首先说明,本文中出现的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
43.请参见图1,是本技术实施例提供的一种基于自定义资源(custom resource define,crd)的身份认证方法的流程示意图。如图1所示的方法应用于kubernetes开源平台中,所述方法包括如下实施步骤:
44.s101、在所述kubernetes开源平台中创建crd用户资源,所述crd用户资源中至少包括验证用户名和验证密码。
45.本技术所述crd用户资源为系统自定义设置的用户user资源,其可包括但不限于例如用户信息(user)资源、用户角色(userrole)资源及用户角色绑定(userrolebinding)
资源、或其他根据系统实际需求自定义配置的资源等。所述crd资源的数量并不做限定,其可根据系统实际需求进行自定义设置,例如其可为一个或多个等。
46.在一具体实施方式中,本技术可通过/采用kubectl命令在kubernetes开源平台中创建所述crd用户资源。
47.在另一具体实施方式中,本技术可通过restful api接口在kubernetes开源平台中创建所述crd用户资源。其中,所述restful api接口为预先在kubernetes中为用户user资源添加的接口,所述restful api接口支持对各种crd用户资源的创建、修改、删除及获取等操作,本技术并不做限定。
48.举例来说,以所述crd用户资源包括user资源、userrole资源及userrolebinding资源为例。本技术引入新的crd用户资源user。它代表用户,用于定义用户的用户名和密码等信息。如下表1示例性地描述了一个user对象,它创建了一个用户,该用户的用户名为admin,密码为passw0rd@。
49.表1
[0050][0051]
需要说明的是,在将user对象存储至etcd之前,需使用例如哈希算法对密码进行加密处理,以将密码从明文变为密文,不允许在etcd中以明文形式存储密码,而必须以密文形式存储密码。
[0052]
又如,引入新的crd资源userrole。它代表用户角色,用于定义资源的访问权限。如下表2示例性地描述了一个userrole对象,用于授予kubernetes集群中所有资源的读写访问权限。
[0053]
表2
[0054][0055]
又如,引入新的crd资源userrolebinding。它代表用户角色绑定,用于将资源的访问权限授予用户。如下表3示例性地描述了一个userrolebinding对象,用于将kubernetes集群中所有资源的读写访问权限授予用户admin。
[0056]
表3
[0057][0058]
在可选实施例中,本技术在kubernetes中可通过kubectl命令或者restful api接口创建相应的验证用户名admin和验证密码passw0rd@等,并将kubernetes集群中所有资源的读写访问权限均授予用户admin。
[0059]
在可选实施例中,本技术可通过kubectl命令或者restful api接口对kubernetes中创建的所述crd资源进行诸如删除、新增、修改及更新等操作,本技术不做限定。
[0060]
s102、接收kubernetes登录请求,所述kubernetes登录请求中携带有待认证用户名和待认证密码。
[0061]
本技术所述kubernetes登录请求具体可为用户在kubernetes dashboard登录用户界面上操作产生的,也可为接收来自其他设备,例如其他终端设备或服务器等设备获得的,本技术并不做限定。其中,所述kubernetes登录请求中至少包括当前登录kubernetes的待认证用户名username和待认证密码password。可选地其还可包括诸如待认证用户的性别、身高或其他信息等,本技术并不做限定。
[0062]
s103、在预配的kubernetes认证器中根据所述验证用户名和所述验证密码,对所述待认证用户名和所述待认证密码进行用户身份认证,以确定是否授权所述待认证用户名具备对应的资源访问权限。
[0063]
本技术在kubernetes中引入新的认证器userauthenticator,它代表用户认证器,实现基于用户名和密码的认证机制,用于扩展kubernetes现有的认证机制。该kubernetes认证器(userauthenticator)用于实现基于用户名和密码来登录kubernetes。
[0064]
在一具体实施方式中,本技术在预配的kubernetes认证器中,从创建的至少一个所述验证用户名中查找是否存在与所述待认证用户名username对应的目标用户。如果不存在所述待认证用户名username对应的目标用户,则表示认证失败,不授权所述待认证用户名具备对应的资源访问权限。反之,如果存在所述待认证用户名username对应的目标用户,则将查找的目标用户标记为targetuser。进而根据所述目标用户对应的验证密码对所述待认证密码password进行认证,以确定是否授权所述待认证用户名具备对应的资源访问权限。具体实现中:
[0065]
本技术可使用诸如哈希等加密算法对所述待认证密码password进行加密处理,得到待认证密文。进而将所述待认证密文和所述目标用户对应的验证密码进行对比,以实现所述待认证用户名和所述待认证密码的验证。其中所述验证密码以密文的形式存储于kubernetes中。具体地当所述待认证密文与所述目标用户对应的验证密码匹配时,则可确
定基于所述待认证用户名和所述待认证密码的验证成功,进而可确定授权所述待认证用户名具备对应的资源访问权限。反之,当所述待认证密文与所述目标用户对应的验证密码不匹配时,则可确定基于所述待认证用户名和所述待认证密码的验证失败,进而可确定禁止授权所述待认证用户名具备对应的资源访问权限。
[0066]
通过实施本技术实施例,本技术在所述kubernetes开源平台中创建crd用户资源,所述crd用户资源中至少包括验证用户名和验证密码;接收kubernetes登录请求,所述kubernetes登录请求中携带有待认证用户名和待认证密码;在预配的kubernetes认证器中根据所述验证用户名和所述验证密码,对所述待认证用户名和所述待认证密码进行用户身份认证,以确定是否授权所述待认证用户名具备对应的资源访问权限。上述方案中,本技术根据kubernetes开源平台中创建的crd用户资源,对kubernetes登录请求中携带的待认证用户名和待认证密码进行用户身份认证,以确定是否授权该待认证用户具备相应的资源访问权限。这样在kubernetes中实现了基于用户名和密码的快速登录认证,同时解决了现有技术中采用token和kubeconfig登录所存在的登录凭证不易记住、易丢失、导致信息安全隐患等技术问题。
[0067]
基于同一发明构思,本技术另一实施例提供一种实施本技术实施例中所述基于自定义资源crd的身份认证方法对应的装置和终端设备。
[0068]
请参见图2,是本技术实施例提供的一种基于自定义资源crd的身份认证装置的结构示意图。如图2所示的装置20应用于kubernetes开源平台中,所述装置20包括创建模块201、接收模块202和认证模块203,其中:
[0069]
所述创建模块201,用于在所述kubernetes开源平台中创建crd用户资源,所述crd用户资源中至少包括验证用户名和验证密码;
[0070]
所述接收模块202,用于接收kubernetes登录请求,所述kubernetes登录请求中携带有待认证用户名和待认证密码;
[0071]
所述认证模块203,用于在预配的kubernetes认证器中根据所述验证用户名和所述验证密码,对所述待认证用户名和所述待认证密码进行用户身份认证,以确定是否授权所述待认证用户名具备对应的资源访问权限。
[0072]
可选地,所述创建模块201具体用于:
[0073]
通过kubectl命令在所述kubernetes开源平台中创建所述crd用户资源。
[0074]
可选地,所述创建模块201具体用于:
[0075]
通过restful api接口在所述kubernetes开源平台中创建所述crd用户资源。
[0076]
可选地,所述crd用户资源包括以下中的至少一项:用户信息资源、用户角色资源及用户角色绑定资源。
[0077]
可选地,所述装置20还包括处理模块204,其中:
[0078]
所述处理模块204,用于通过所述restful api接口对所述crd用户资源进行更新操作。
[0079]
可选地,所述认证模块203具体用于:
[0080]
在预配的kubernetes认证器中,从所述验证用户名中查找是否存在与所述待认证用户名对应的目标用户;
[0081]
若存在,则根据所述目标用户对应的验证密码对所述待认证密码进行认证,以确
定是否授权所述待认证用户名具备对应的资源访问权限。
[0082]
可选地,所述认证模块203具体用于:
[0083]
对所述待认证密码进行加密处理,得到待认证密文;
[0084]
将所述待认证密文和所述目标用户对应的验证密码进行对比,以实现所述待认证用户名和所述待认证密码的验证;
[0085]
若所述验证成功,则确定授权所述待认证用户名具备对应的资源访问权限。
[0086]
关于本技术实施例中未介绍或未描述的内容可对应参考前方法实施例中的相关介绍,这里不再赘述。
[0087]
请一并参见3,是本技术实施例提供的一种终端设备的结构示意图。如图3所示的终端设备30包括:至少一个处理器301、通信接口302、用户接口303和存储器304,处理器301、通信接口302、用户接口303和存储器304可通过总线或者其它方式连接,本发明实施例以通过总线305连接为例。其中,
[0088]
处理器301可以是通用处理器,例如中央处理器(central processing unit,cpu)。
[0089]
通信接口302可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他终端或网站进行通信。本发明实施例中,通信接口302具体用于获取kubernetes登录请求等信息。
[0090]
用户接口303具体可为触控面板,包括触摸屏和触控屏,用于检测触控面板上的操作指令,用户接口303也可以是物理按键或者鼠标。用户接口303还可以为显示屏,用于输出、显示图像或数据。
[0091]
存储器304可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,ram);存储器也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom)、快闪存储器(flash memory)、硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);存储器304还可以包括上述种类的存储器的组合。存储器304用于存储一组程序代码,处理器301用于调用存储器304中存储的程序代码,执行如下操作:
[0092]
在所述kubernetes开源平台中创建crd用户资源,所述crd用户资源中至少包括验证用户名和验证密码;
[0093]
接收kubernetes登录请求,所述kubernetes登录请求中携带有待认证用户名和待认证密码;
[0094]
在预配的kubernetes认证器中根据所述验证用户名和所述验证密码,对所述待认证用户名和所述待认证密码进行用户身份认证,以确定是否授权所述待认证用户名具备对应的资源访问权限。
[0095]
可选地,所述在所述kubernetes开源平台中创建crd用户资源包括:
[0096]
通过kubectl命令在所述kubernetes开源平台中创建所述crd用户资源。
[0097]
可选地,所述在所述kubernetes开源平台中创建crd用户资源包括:
[0098]
通过restful api接口在所述kubernetes开源平台中创建所述crd用户资源。
[0099]
可选地,所述crd用户资源包括以下中的至少一项:用户信息资源、用户角色资源及用户角色绑定资源。
[0100]
可选地,所述处理器301还用于:
[0101]
通过所述restful api接口对所述crd用户资源进行更新操作。
[0102]
可选地,所述在预配的kubernetes认证器中根据所述验证用户名和所述验证密码,对所述待认证用户名和所述待认证密码进行用户身份认证,以确定是否授权所述待认证用户名具备对应的资源访问权限包括:
[0103]
在预配的kubernetes认证器中,从所述验证用户名中查找是否存在与所述待认证用户名对应的目标用户;
[0104]
若存在,则根据所述目标用户对应的验证密码对所述待认证密码进行认证,以确定是否授权所述待认证用户名具备对应的资源访问权限。
[0105]
可选地,所述根据所述目标用户对应的验证密码对所述待认证密码进行认证,以确定是否授权所述待认证用户名具备对应的资源访问权限包括:
[0106]
对所述待认证密码进行加密处理,得到待认证密文;
[0107]
将所述待认证密文和所述目标用户对应的验证密码进行对比,以实现所述待认证用户名和所述待认证密码的验证;
[0108]
若所述验证成功,则确定授权所述待认证用户名具备对应的资源访问权限。
[0109]
由于本实施例所介绍的终端设备为实施本技术实施例中的方法所采用的终端设备,故而基于本技术实施例中所介绍的方法,本领域所属技术人员能够了解本实施例的终端设备的具体实施方式以及其各种变化形式,所以在此对于该终端设备如何实现本技术实施例中的方法不再详细介绍。只要本领域所属技术人员实施本技术实施例中的方法所采用的终端设备,都属于本技术所欲保护的范围。
[0110]
本技术实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:本技术在所述kubernetes开源平台中创建crd用户资源,所述crd用户资源中至少包括验证用户名和验证密码;接收kubernetes登录请求,所述kubernetes登录请求中携带有待认证用户名和待认证密码;在预配的kubernetes认证器中根据所述验证用户名和所述验证密码,对所述待认证用户名和所述待认证密码进行用户身份认证,以确定是否授权所述待认证用户名具备对应的资源访问权限。上述方案中,本技术根据kubernetes开源平台中创建的crd用户资源,对kubernetes登录请求中携带的待认证用户名和待认证密码进行用户身份认证,以确定是否授权该待认证用户具备相应的资源访问权限。这样在kubernetes中实现了基于用户名和密码的快速登录认证,同时解决了现有技术中采用token和kubeconfig登录所存在的登录凭证不易记住、易丢失、导致信息安全隐患等技术问题。
[0111]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0112]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0113]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0114]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0115]
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0116]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

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

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

相关文献