掌桥专利:专业的专利平台
掌桥专利
首页

数据认证的方法、装置和终端

文献发布时间:2023-06-19 11:29:13


数据认证的方法、装置和终端

技术领域

本发明涉及计算机技术领域,具体而言,涉及一种数据认证的方法、装置和终端。

背景技术

容器虚拟化技术Docker镜像仓库是一种存储和分发容器镜像的服务。在私有的镜像仓库中,用户在拉取和推送镜像时需要进行权限认证,目前的方式主要是通过验证用户的认证信息,来进行权限认证。在这种模式下,每台拉取镜像的节点都需要通过dockerlogin生成认证文件。这些认证信息会存储在本地,有一定的安全风险。

目前的镜像仓库权限认证方法主要是通过验证用户登录信息实现。权限认证服务器会验证Docker客户端上传的用户登录信息,并验证该用户是否可以访问请求的namespace。除此外,还有基于用户白名单的权限认证方法,流程为:客户端访问镜像仓库时将认证信息发送到认证服务器,服务器获取其中的用户信息,查询其是否在镜像所属namespace对应的用户白名单中,并据此返回认证结果。可见,上述两种方式都需要依赖docker login生成的本地鉴权文件。

针对相关技术中本地文件容易泄露导致的安全性低的技术问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种数据认证的方法、装置和终端,以至少解决相关技术中本地文件容易泄露导致的安全性低的技术问题。

根据本发明实施例的一个方面,提供了一种数据认证的方法,包括:根据接收到的鉴权请求中的地址信息和镜像所属信息查询预设名单;判断预设名单中是否存在地址信息和镜像所属信息;根据判断结果反馈认证结果。

可选的,根据接收到的鉴权请求中的地址信息和镜像所属信息查询预设名单包括:在预设名单包括地址信息和镜像所属信息的黑名单,以及地址信息和镜像所属信息的白名单,且镜像所属信息与黑名单和白名单存在映射关系的情况下,依据地址信息和镜像所属信息查询黑名单和白名单。

进一步地,可选的,镜像所属信息与黑名单和白名单存在映射关系包括:一个镜像所属信息绑定一个黑名单和白名单;或,多个镜像所属信息绑定一个黑名单和白名单;或,一个镜像所属信息绑定多个黑名单和白名单;或,多个镜像所属信息绑定多个黑名单和白名单。

可选的,判断预设名单中是否存在地址信息和镜像所属信息包括:在预设名单包括地址信息和镜像所属信息的黑名单,以及地址信息和镜像所属信息的白名单的情况下,判断地址信息所在的地址段是否在黑名单中;在判断结果为否的情况下,判断地址信息所在的地址段是否在白名单中。

进一步地,可选的,根据判断结果反馈认证结果包括:在判断结果为地址信息所在的地址段在白名单中的情况下,确定认证结果为认证成功;在判断结果为地址信息所在的地址段不在白名单中的情况下,确定认证结果为认证失败。

可选的,该方法应用于镜像仓库权限认证场景中的边缘计算中的容器镜像分发。

根据本发明实施例的另一方面,还提供了一种数据认证的方法,包括:接收鉴权请求,其中,鉴权请求包括:地址信息和镜像所属信息;判断地址信息所在的地址段是否在地址信息和镜像所属信息的黑名单中;在判断结果为地址信息所在的地址段在黑名单中的情况下,确定认证结果为认证失败;在判断结果为地址信息所在的地址段不在黑名单中的情况下,判断地址信息所在的地址段是否在地址信息和镜像所属信息的白名单中;在判断结果为地址信息所在的地址段不在白名单中的情况下,确定认证结果为认证失败;在判断结果为地址信息所在的地址段在白名单中的情况下,确定认证结果为认证成功。

可选的,镜像所属信息与黑名单和白名单存在映射关系。

进一步地,可选的,镜像所属信息与黑名单和白名单存在映射关系包括:一个镜像所属信息绑定一个黑名单和白名单;或,多个镜像所属信息绑定一个黑名单和白名单;或,一个镜像所属信息绑定多个黑名单和白名单;或,多个镜像所属信息绑定多个黑名单和白名单。根据本发明实施例的又一方面,还提供了一种数据认证的装置,包括:查询模块,用于根据接收到的鉴权请求中的地址信息和镜像所属信息查询预设名单;判断模块,用于判断预设名单中是否存在地址信息和镜像所属信息;认证模块,用于根据查询结果反馈认证结果。

根据本发明实施例的再一方面,还提供了一种数据认证的装置,包括:接收模块,用于接收鉴权请求,其中,鉴权请求包括:地址信息和镜像所属信息;第一判断模块,用于判断地址信息所在的地址段是否在地址信息和镜像所属信息的黑名单中;第一认证模块,用于在判断结果为地址信息所在的地址段在黑名单中的情况下,确定认证结果为认证失败;第二判断模块,在判断结果为地址信息所在的地址段不在黑名单中的情况下,判断地址信息所在的地址段是否在地址信息和镜像所属信息的白名单中;第二认证模块,用于在判断结果为地址信息所在的地址段不在白名单中的情况下,确定认证结果为认证失败;第三认证模块,用于在判断结果为地址信息所在的地址段在白名单中的情况下,确定认证结果为认证成功。

根据本发明另一实施例的一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述数据认证的方法。

根据本发明另一实施例的一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述数据认证的方法。

根据本发明另一实施例的一方面,还提供了一种终端,其中,包括处理器和存储介质,其中,所述存储器用于存储信息及程序,所述处理器通过调用存储器存储的信息及程序,以执行上述数据认证的方法。

在本发明实施例中,根据接收到的鉴权请求中的地址信息和镜像所属信息查询预设名单;判断所述预设名单中是否存在所述地址信息和镜像所属信息;根据判断结果反馈认证结果。与现有技术相比,上述方案建立了镜像所属信息和地址信息之间的关系,通过验证鉴权请求中的镜像所属信息是否包含于预设名单中,达到了对镜像仓库的权限进行验证的目的。本发明不需要客户端在本地存储登录信息,简化了认证流程,进而解决了相关技术中本地文件容易泄露导致的安全性低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例一的一种数据认证的方法的计算机终端(或移动设备)的硬件结构框图;

图2是根据本发明实施例一的一种数据认证的方法的流程图;

图3(a)是根据本发明实施例一的一种数据认证的方法中的一个镜像所属信息绑定一个IP黑/白名单的示意图;

图3(b)是根据本发明实施例一的一种数据认证的方法中的多个镜像所属信息绑定一个IP黑/白名单的示意图;

图3(c)是根据本发明实施例一的一种数据认证的方法中的一个镜像所属信息绑定多个IP黑/白名单的示意图;

图3(d)是根据本发明实施例一的一种数据认证的方法中的多个镜像所属信息绑定多个IP黑/白名单的示意图;

图4是根据本发明实施例二的一种数据认证的方法的流程图;

图5是根据本发明实施例三的一种数据认证装置的示意图;

图6是根据本发明实施例四的一种数据认证装置的示意图;

图7是根据本申请实施例五的一种计算机终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本申请实施例涉及的技术名词如下:

Docker:一种应用广泛的容器虚拟化技术,每个容器内运行一个应用,不同的容器之间相互隔离,容器之间也可以建立通信机制。

Docker镜像仓库:存储和分发容器镜像的服务。

Namespace:镜像命名空间,其中包含多个容器镜像,Namespace是Docker镜像仓库中唯一的区分用户的标识。

边缘计算(Edge Computing):是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。

实施例1

根据本发明实施例,还提供了一种数据认证的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种数据认证的方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据认证的方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据认证的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,简称NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(RadioFrequency,简称RF)模块,其用于通过无线方式与互联网进行通讯。

在上述运行环境下,本申请提供了如图2所示的数据认证的方法。图2是根据本发明实施例一的一种数据认证的方法的流程图,如图2所示,该方法包括以下步骤:

步骤S202,根据接收到的鉴权请求中的地址信息和镜像所属信息查询预设名单。

本申请上述步骤S202中,鉴权请求可以在拉取或推送容器镜像时产生,地址信息可以为发起鉴权请求的Docker客户端服务器的源地址信息(例如,源IP),镜像所属信息可以为镜像仓库的镜像命名空间(Namespace)。

其中,Namespace是镜像仓库中唯一的区分用户的标识,例如,Namespace可以为test、ubuntu等。

需要说明的是,Docker是一种应用广泛的容器虚拟化技术,每个容器内运行一个应用,不同的容器之间相互隔离,容器之间也可以建立通信机制。容器的创建和停止都十分快速,资源需求远远低于虚拟机。容器可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效、轻量、自给自足,还能保证部署在任何环境中的软件都能始终如一地运行。

其中,用户通过客户端从仓库拉取或推送容器镜像时,Docker客户端发送带有地址信息和镜像所属信息的鉴权请求。服务器在收到该鉴权请求后,从鉴权请求中读取源IP和镜像所属namespace信息。

此外,本申请上述步骤S202中,预设名单可以为服务器中预存的与地址信息和镜像所属信息有关联的权限信息,例如namespace和IP黑/白名单的绑定关系,以判断哪些镜像所属信息在服务器的白名单中,哪些镜像所属信息在服务器的黑名单中,进而判断哪些地址信息具有操作权限,哪些地址信息没有操作权限。

步骤S204,判断预设名单中是否存在地址信息和镜像所属信息。

本申请上述步骤S204中,通过查询镜像所属信息namespace和IP黑/白名单的绑定关系,可以判断请求源IP所在的IP段是否存在于namespace绑定的IP黑/白名单之中。

需要说明的是,IP段是多个IP地址的集合,比如192.168.1.1/24,代表192.168.1.1~192.168.1.25这一段的所有地址。

步骤S206,根据判断结果反馈认证结果。

本申请上述步骤S206中,认证结果可以为成功或失败。

基于步骤S202的预设名单中指明了具有操作权限的IP地址,通过步骤S204的判断结果即可判断鉴权请求的发送方是否有操作权限。

具体的,结合步骤S202至步骤S206,用户通过客户端从仓库拉取容器镜像test时(test字段就是用来区分用户的namespace信息),Docker客户端发送带有192.168.1.10的地址信息和test的鉴权请求。服务器在收到该鉴权请求后,从鉴权请求中读取出源IP192.168.1.10和镜像所属namespace信息test,随即查询test绑定的IP黑/白名单。如果发现test对应的IP白名单为192.168.1.1/24,即鉴权请求的源IP所在字段存在于test绑定的IP白名单中,则向用户开放拉取容器镜像test的权限。如果通过鉴权得到test对应的IP黑名单为192.168.1.1/24,即鉴权请求的源IP所在字段存在于test绑定的IP黑名单中,则向客户端返回拒绝响应消息,以使得关闭拉取容器镜像test的权限。

在本实施例中,根据接收到的鉴权请求中的地址信息和镜像所属信息查询预设名单;判断所述预设名单中是否存在所述地址信息和镜像所属信息;根据判断结果反馈认证结果。与现有技术相比,上述方案建立了镜像所属信息和地址信息之间的关系,通过验证鉴权请求中的镜像所属信息是否包含于预设名单中,达到了对镜像仓库的权限进行验证的目的。本发明不需要客户端在本地存储登录信息,简化了认证流程,进而解决了相关技术中本地文件容易泄露导致的安全性低的技术问题。

可选地,步骤S202中根据接收到的鉴权请求中的地址信息和镜像所属信息查询预设名单包括:

步骤S2021,在预设名单包括地址信息和镜像所属信息的黑名单,以及地址信息和镜像所属信息的白名单,且镜像所属信息与黑名单和白名单存在映射关系的情况下,依据地址信息和镜像所属信息查询黑名单和白名单。

本申请上述步骤S2021中,黑名单,用于表示地址信息所在的地址段没有访问容器镜像的权限,白名单,用于表示地址信息所在的地址段有访问容器镜像的权限。

需要说明的是,本申请上述步骤S2021中,镜像所属信息与黑名单或白名单的映射关系是可以动态变化的。例如,用户可以根据需求随时更换上述映射关系,并且可以即时生效,服务器也不需要重启,极大地方便了用户。

使用镜像仓库的客户端可以拥有多个namespace和多个IP黑/白名单。namespace中包含一组容器镜像,IP黑/白名单中则包含多个IP段。用户通过客户端动态设置namespace与IP黑/白名单的绑定关系,以根据需求来控制镜像的访问权限。namespace下的容器允许与其绑定的IP白名单中的IP段访问,禁止与其绑定的黑名单中的IP段访问。

可选地,步骤S2021中的镜像所属信息与黑名单和白名单存在映射关系,该映射关系具体可以包括:

一个镜像所属信息绑定一个黑名单和白名单;或,多个镜像所属信息绑定一个黑名单和白名单;或,一个镜像所属信息绑定多个黑名单和白名单;或,多个镜像所属信息绑定多个黑名单和白名单。

由上可知,该映射关系囊括了镜像所属信息与黑/白名单的所有组合方式,如一对一,即一个namespace绑定一个IP黑/白名单;多对一,即多个namespace绑定同一个IP黑/白名单;一对多,即一个namespace绑定多个IP黑/白名单;多对多,即多个namespace和多个IP黑/白名单互相绑定。

例如,镜像所属信息test可以和IP名单存在多种绑定关系。服务器在查询的时候会将test作为钥匙(key),对查询到的与test对应的一个或多个IP名单进行一一验证。

具体的,图3(a)是根据本发明实施例一的一种数据认证的方法中的一个镜像所属信息绑定一个IP黑/白名单的示意图,其中,如图3(a)所示,图3(a)表示镜像所属信息namespace1-namespace3各自绑定一个IP黑/白名单;

图3(b)是根据本发明实施例一的一种数据认证的方法中的多个镜像所属信息绑定一个IP黑/白名单的示意图;其中,如图3(b)所示,图3(b)表示多个镜像所属信息namespace1-namespace3绑定一个IP黑/白名单;

图3(c)是根据本发明实施例一的一种数据认证的方法中的一个镜像所属信息绑定多个IP黑/白名单的示意图;其中,如图3(c)所示,图3(c)表示一个镜像所属信息namespace同时绑定IP黑/白名单1-IP黑/白名单3;

图3(d)是根据本发明实施例一的一种数据认证的方法中的多个镜像所属信息绑定多个IP黑/白名单的示意图,其中,如图3(d)所示,图3(d)表示多个镜像所属信息namespace1-namespace3绑定多个IP黑/白名单IP黑/白名单1-IP黑/白名单3,如namespace1同时绑定IP黑/白名单1和IP黑/白名单2,而IP黑/白名单2可以同时被namespace1和namespace3绑定,上述绑定关系可以根据用户需求动态设置,且即时生效,服务器也不需要重启。

需要说的是,步骤S2021中的映射关系还可以为:namespace+镜像名与IP黑/白名单绑定。例如,用户需要同时访问镜像仓库test和ubuntu时,则通过查询test+ubuntu与IP黑/白名单的映射关系,来判断是否有同时访问test和ubuntu的权限。

可选地,步骤S204中判断预设名单中是否存在地址信息和镜像所属信息包括:

步骤S2041,在预设名单包括地址信息和镜像所属信息的黑名单,以及地址信息和镜像所属信息的白名单的情况下,判断地址信息所在的地址段是否在黑名单中。

步骤S2042,在判断结果为否的情况下,判断地址信息所在的地址段是否在白名单中。

具体的,结合步骤S2041和步骤S2042,需要首先判断源地址信息所在的地址段是否在黑名单中,如果源地址信息所在的地址段不在黑名单中,再判断源地址信息所在的地址段是否在白名单中,如果存在于白名单中,则认证成功,否则认证失败。

可选地,步骤S206中根据判断结果反馈认证结果包括:

步骤S2061,在判断结果为地址信息所在的地址段在白名单中的情况下,确定认证结果为认证成功。

步骤S2062,在判断结果为地址信息所在的地址段不在白名单中的情况下,确定认证结果为认证失败。

具体的,结合步骤S2061和步骤S2062,在地址信息所在的地址段在白名单的情况下,认证成功;反之,认证失败。

此外,若地址信息所在的地址段同时包含在黑名单和白名单中,黑名单优先生效。其中黑名单优先生效,确保了用户信息的安全。

需要说明的是,在本申请实施例中,当白名单中也无法对源IP所在的地址段进行判断,在本次鉴权完成后,对本次从仓库拉取或推送容器镜像的行为进行判断,若该源IP行为判定为合法,则将该源IP所在的地址段添加至白名单,即,对白名单进行更新;或,若该源IP行为判定为非法,则将该源IP所在的地址段添加至黑名单,即,对黑名单进行更新。

可选地,本申请实施例提供的数据认证的方法应用于镜像仓库权限认证场景中的边缘计算中的容器镜像分发。

需要说明的是,本申请实施例提供的数据认证的方法中地址信息以IP地址为例进行说明,此外还可以为设备的MAC地址,封装在鉴权请求中的序列号等具备验证属性的信息,以实现本申请实施例提供的数据认证的方法为准,具体不做限定。

本实施例提供的数据认证的方法,旨在增强镜像仓库权限验证方式的安全性并降低操作复杂性,因此,适用于边缘计算中的容器镜像分发。通过请求源的地址信息来进行权限认证,不需要客户端在本地存储登录信息,简化了认证流程,消除了本地鉴权信息泄露的风险。namespace和IP黑/白名单动态绑定则提高了权限认证的灵活性和适用范围。

通过上述实施例,首先根据接收到的鉴权请求中的地址信息和镜像所属信息查询预设名单,然后判断所述预设名单中是否存在所述地址信息和镜像所属信息,再根据判断结果反馈认证结果。与现有技术相比,上述方案建立了镜像所属信息和地址信息之间的关系,通过验证鉴权请求中的镜像所属信息是否包含于预设名单中,达到了对镜像仓库的权限进行验证的目的。本发明不需要客户端在本地存储登录信息,简化了认证流程;镜像所属信息和IP黑/白名单之间动态绑定,提高了权限认证的灵活性和适用范围,进而解决了相关技术中本地文件容易泄露导致的安全性低的技术问题。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种数据认证的方法,图4是根据本发明实施例二的一种数据认证的方法的流程图,如图4所示,该方法可以包括如下步骤:

步骤S402,接收鉴权请求,其中,鉴权请求包括:地址信息和镜像所属信息;

本申请上述步骤S402中,鉴权请求可以在拉取或推送容器镜像时产生,地址信息可以为发起鉴权请求的Docker客户端服务器的源地址信息(例如,源IP),镜像所属信息可以为镜像仓库的镜像命名空间(Namespace)。

其中,Namespace是镜像仓库中唯一的区分用户的标识,例如,Namespace可以为test、ubuntu等。

需要说明的是,Docker是一种应用广泛的容器虚拟化技术,每个容器内运行一个应用,不同的容器之间相互隔离,容器之间也可以建立通信机制。容器的创建和停止都十分快速,资源需求远远低于虚拟机。容器可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效、轻量、自给自足,还能保证部署在任何环境中的软件都能始终如一地运行。

其中,如图4所示,用户通过客户端从仓库拉取或推送容器镜像时,Docker客户端发送带有地址信息和镜像所属信息的鉴权请求。服务器在收到该鉴权请求后,从鉴权请求中读取源IP和镜像所属namespace信息。

步骤S404,判断地址信息所在的地址段是否在地址信息和镜像所属信息的黑名单中。

本申请上述步骤S404中,黑名单,用于表示地址信息所在的地址段没有访问容器镜像的权限。

其中,地址段是多个IP地址的集合,比如192.168.1.1/24,代表192.168.1.1~192.168.1.25这一段的所有地址。

步骤S406,在判断结果为地址信息所在的地址段在黑名单中的情况下,确定认证结果为认证失败。

本申请上述步骤S406中,通过查询镜像所属信息namespace和IP黑名单的绑定关系,可以判断请求源IP所在的IP段是否存在于namespace绑定的IP黑名单之中,如果存在,则认证失败。

步骤S408,在判断结果为地址信息所在的地址段不在黑名单中的情况下,判断地址信息所在的地址段是否在地址信息和镜像所属信息的白名单中。

本申请上述步骤S408中,白名单,用于表示地址信息所在的地址段有访问容器镜像的权限。

步骤S410,在判断结果为地址信息所在的地址段不在白名单中的情况下,确定认证结果为认证失败。

步骤S412,在判断结果为地址信息所在的地址段在白名单中的情况下,确定认证结果为认证成功。

具体的,结合步骤S402至步骤S412,在地址信息所在的地址段在白名单的情况下,认证成功;反之,认证失败。

此外,若地址信息所在的地址段同时包含在黑名单和白名单中,黑名单优先生效。其中,黑名单优先生效,确保了用户信息的安全。

需要说明的是,在本申请实施例中,当白名单中也无法对源IP所在的地址段进行判断,在本次鉴权完成后,对本次从仓库拉取或推送容器镜像的行为进行判断,若该源IP行为判定为合法,则将该源IP所在的地址段添加至白名单,即,对白名单进行更新;或,若该源IP行为判定为非法,则将该源IP所在的地址段添加至黑名单,即,对黑名单进行更新。

可选地,镜像所属信息与黑名单和白名单存在映射关系。

上述方案中,镜像所属信息与黑名单或白名单的映射关系是可以动态变化的。例如,用户可以根据需求随时更换上述映射关系,并且可以即时生效,服务器也不需要重启,极大地方便了用户。

使用镜像仓库的用户可以拥有多个namespace和多个IP黑/白名单。namespace中包含一组容器镜像,IP黑/白名单中则包含多个IP段。用户通过动态设置namespace与IP黑/白名单的绑定关系,以根据需求来控制镜像的访问权限。Namespace下的容器允许与其绑定的IP白名单中的IP段访问,禁止与其绑定的黑名单中的IP段访问。

可选地,镜像所属信息与黑名单和白名单存在映射关系包括:一个镜像所属信息绑定一个黑名单和白名单;或,多个镜像所属信息绑定一个黑名单和白名单;或,一个镜像所属信息绑定多个黑名单和白名单;或,多个镜像所属信息绑定多个黑名单和白名单。

可见,上述映射关系囊括了镜像所属信息与黑/白名单的所有组合方式。如一对一,即一个namespace绑定一个IP黑/白名单;多对一,即多个namespace绑定同一个IP黑/白名单;一对多,即一个namespace绑定多个IP黑/白名单;多对多,即多个namespace和多个IP黑/白名单互相绑定。例如,镜像所属信息test可以和IP名单存在多种绑定关系。服务器在查询的时候会将test作为钥匙(key),对查询到的与test对应的一个或多个IP名单进行一一验证。

需要说的是,上述映射关系还可以为:namespace+镜像名与IP黑/白名单绑定。例如,用户需要同时访问镜像仓库test和ubuntu时,则通过查询test+ubuntu与IP黑/白名单的映射关系,来判断是否有同时访问test和ubuntu的权限。

可选地,方法应用于镜像仓库权限认证场景中的边缘计算中的容器镜像分发。

现有技术中,Docker镜像仓库权限认证方法主要依赖存储在本地的Docker登录信息,不仅请求认证的过程复杂,而且在一些本地文件容易泄露的场景下,存在安全风险。

在边缘计算场景下,节点情况复杂,不可控性较高,权限认证信息存储在本地带来的风险提高。同时,由于节点分散且数量较大,生成认证文件的开销也比较大。本实施例的数据认证的方法,旨在增强镜像仓库权限验证方式的安全性并降低操作复杂性,因此,尤其适用于边缘计算中的容器镜像分发。通过请求源的地址信息来进行权限认证,不需要客户端在本地存储登录信息,简化了认证流程,消除了本地鉴权信息泄露的风险。namespace和IP黑/白名单动态绑定则提高了权限认证的灵活性和适用范围。

需要说明的是,本实施例的可选或优选实施方式可以参见实施例1中的相关描述,但不仅限于实施例1所公开的内容,在此不再赘述。

实施例3

根据本申请实施例,还提供了一种数据认证的装置,图5是根据本发明实施例三的一种数据认证装置的示意图,如图5所示,该装置500包括:查询模块502、判断模块504和认证模块506。

其中,查询模块502,用于根据接收到的鉴权请求中的地址信息和镜像所属信息查询预设名单。

判断模块504,用于判断预设名单中是否存在地址信息和镜像所属信息;

认证模块506,用于根据判断结果反馈认证结果。

可选地,查询模块502可以包括:查询子模块,用于在预设名单包括地址信息和镜像所属信息的黑名单,以及地址信息和镜像所属信息的白名单,且镜像所属信息与黑名单和白名单存在映射关系的情况下,依据地址信息和镜像所属信息查询黑名单和白名单。

可选地,查询子模块中的镜像所属信息与黑名单和白名单存在映射关系可以包括:一个镜像所属信息绑定一个黑名单和白名单;或,多个镜像所属信息绑定一个黑名单和白名单;或,一个镜像所属信息绑定多个黑名单和白名单;或,多个镜像所属信息绑定多个黑名单和白名单。

可选地,判断模块504可以包括:第一判断子模块,用于在预设名单包括地址信息和镜像所属信息的黑名单,以及地址信息和镜像所属信息的白名单的情况下,判断地址信息所在的地址段是否在黑名单中;第二判断子模块,用于在判断结果为否的情况下,判断地址信息所在的地址段是否在白名单中。

可选地,认证模块506可以包括:第一认证子模块,用于在判断结果为地址信息所在的地址段在黑名单中的情况下,确定认证结果为认证失败;第二认证子模块,用于在判断结果为地址信息所在的地址段不在白名单中的情况下,确定认证结果为认证失败。

可选地,上述装置应用于镜像仓库权限认证场景中的边缘计算中的容器镜像分发。

此处需要说明的是,上述查询模块502、判断模块504和认证模块506对应于实施例1中的步骤S202至步骤S206,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。

实施例4

根据本申请实施例,还提供了一种数据认证的装置,图6是根据本发明实施例四的一种数据认证装置的示意图,如图6所示,该装置600包括:接收模块602、第一判断模块604、第一认证模块606、第二判断模块608、第二认证模块610和第三认证模块612。

其中,接收模块602,用于接收鉴权请求,其中,所述鉴权请求包括:地址信息和镜像所属信息;第一判断模块604,用于判断所述地址信息所在的地址段是否在地址信息和镜像所属信息的黑名单中;第一认证模块606,用于在判断结果为所述地址信息所在的地址段在所述黑名单中的情况下,确定所述认证结果为认证失败;第二判断模块608,在判断结果为所述地址信息所在的地址段不在所述黑名单中的情况下,判断所述地址信息所在的地址段是否在地址信息和镜像所属信息的白名单中;第二认证模块610,用于在判断结果为所述地址信息所在的地址段不在所述白名单中的情况下,确定所述认证结果为认证失败;第三认证模块612,用于在判断结果为所述地址信息所在的地址段在所述白名单中的情况下,确定所述认证结果为认证成功。

可选地,镜像所属信息与黑名单和白名单存在映射关系。

可选地,镜像所属信息与黑名单和白名单存在映射关系包括:一个镜像所属信息绑定一个黑名单和白名单;或,多个镜像所属信息绑定一个黑名单和白名单;或,一个镜像所属信息绑定多个黑名单和白名单;或,多个镜像所属信息绑定多个黑名单和白名单。

可选地,上述装置可以应用于镜像仓库权限认证场景中的边缘计算中的容器镜像分发。

此处需要说明的是,上述接收模块602、第一判断模块604、第一认证模块606、第二判断模块608、第二认证模块610和第三认证模块612对应于实施例2中的步骤S402至步骤S412,六个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。

实施例5

本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

在本实施例中,上述计算机终端可以执行应用程序的数据认证的方法中以下步骤的程序代码:根据接收到的鉴权请求中的地址信息和镜像所属信息查询预设名单;判断所述预设名单中是否存在所述地址信息和镜像所属信息;根据判断结果反馈认证结果。

可选地,图7是根据本申请实施例五的一种计算机终端的结构框图。如图7所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器102以及存储器104。

其中,存储器可用于存储软件程序以及模块,如本申请实施例中的数据认证的方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述数据认证的方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器可以通过传输模块调用存储器存储的信息及应用程序,以执行下述步骤:根据接收到的鉴权请求中的地址信息和镜像所属信息查询预设名单;判断预设名单中是否存在地址信息和镜像所属信息;根据判断结果反馈认证结果。

可选地,上述处理器还可以执行如下步骤的程序代码:根据接收到的鉴权请求中的地址信息和镜像所属信息查询预设名单包括:在预设名单包括地址信息和镜像所属信息的黑名单,以及地址信息和镜像所属信息的白名单,且镜像所属信息与黑名单和白名单存在映射关系的情况下,依据地址信息和镜像所属信息查询黑名单和白名单。

可选地,上述处理器还可以执行如下步骤的程序代码:镜像所属信息与黑名单和白名单存在映射关系包括:一个镜像所属信息绑定一个黑名单和白名单;或,多个镜像所属信息绑定一个黑名单和白名单;或,一个镜像所属信息绑定多个黑名单和白名单;或,多个镜像所属信息绑定多个黑名单和白名单。

可选地,上述处理器还可以执行如下步骤的程序代码:判断预设名单中是否存在地址信息和镜像所属信息包括:在预设名单包括地址信息和镜像所属信息的黑名单,以及地址信息和镜像所属信息的白名单的情况下,判断地址信息所在的地址段是否在黑名单中;在判断结果为否的情况下,判断地址信息所在的地址段是否在白名单中。

可选地,上述处理器还可以执行如下步骤的程序代码:根据判断结果反馈认证结果包括:在判断结果为地址信息所在的地址段在黑名单中的情况下,确定认证结果为认证失败;在判断结果为地址信息所在的地址段不在白名单中的情况下,确定认证结果为认证失败。

可选地,上述处理器还可以执行如下步骤的程序代码:上述方法应用于镜像仓库权限认证场景中的边缘计算中的容器镜像分发。

本领域普通技术人员可以理解,图7所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图7并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。

实施例6

本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一或二所提供的数据认证的方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:根据接收到的鉴权请求中的地址信息和镜像所属信息查询预设名单;判断所述预设名单中是否存在所述地址信息和镜像所属信息;根据判断结果反馈认证结果。

在本申请实施例中,通过运行存储介质中保存的程序代码,建立了镜像所属信息和地址信息之间的关系,通过验证鉴权请求中的镜像所属信息是否包含于预设名单中,达到了对镜像仓库的权限进行验证的目的。本发明不需要客户端在本地存储登录信息,简化了认证流程;镜像所属信息和IP黑/白名单之间动态绑定,提高了权限认证的灵活性和适用范围,进而解决了相关技术中本地文件容易泄露导致的安全性低的技术问题。

实施例7

根据本发明另一实施例的一方面,还提供了一种终端,其中,包括处理器和存储介质,其中,所述存储器用于存储信息及程序,所述处理器通过调用存储器存储的信息及程序,以执行上述数据认证的方法。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 生成认证数据的移动通信终端和终端认证系统及其动作方法
  • 内容或应用程序提供系统、内容或应用程序提供系统的控制方法、终端装置、终端装置的控制方法、认证装置、认证装置的控制方法
技术分类

06120112941235