CN116170222A - K8s鉴权方法、相关设备及存储介质 - Google Patents
K8s鉴权方法、相关设备及存储介质 Download PDFInfo
- Publication number
- CN116170222A CN116170222A CN202310180532.7A CN202310180532A CN116170222A CN 116170222 A CN116170222 A CN 116170222A CN 202310180532 A CN202310180532 A CN 202310180532A CN 116170222 A CN116170222 A CN 116170222A
- Authority
- CN
- China
- Prior art keywords
- authentication
- target
- access request
- component
- webhook
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例公开了一种K8S鉴权方法、相关设备及存储介质。方法应用于K8S集群中的控制器,控制器包括RBAC鉴权组件、接口服务组件以及webhook鉴权组件,当RBAC鉴权组件对用户访问请求进行鉴权后,将生成的第一访问请求发送给接口服务组件,然后接口服务组件将第一访问请求转换为回调鉴权请求,并将回调鉴权请求发送至webhook鉴权组件,其中,回调鉴权请求包括目标资源标识以及目标用户标识;然后,webhook鉴权组件根据预设的目标名单集合以及目标用户标识,修改回调鉴权请求中的鉴权状态字段,得到第二访问请求,目标名单集合为与目标资源标识对应的候选名单集合;最后,webhook鉴权组件向接口服务组件返回第二访问请求。通过本申请可以提高K8S鉴权的灵活性。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种K8S鉴权方法、相关设备及存储介质。
背景技术
Kubernetes(简称K8S)是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,方便进行声明式配置和自动化。
用户在使用K8S鉴权的时候一般都是使用K8S默认的基于角色的权限访问控制(Role-Based Access Control,RBAC)鉴权方式。
而RBAC鉴权方式只能基于白名单进行鉴权,且内设的白名单不能修改,可见,K8S鉴权的灵活性还有待提高。
发明内容
本申请实施例提供了一种K8S鉴权方法、相关设备及存储介质,可以提高K8S鉴权的灵活性。
第一方面,本申请实施例提供了一种K8S鉴权方法,所述方法应用于K8S集群中的控制器,所述控制器包括RBAC鉴权组件、接口服务组件以及webhook鉴权组件,所述方法包括:
当所述接口服务组件接收到所述RBAC鉴权组件发送的第一访问请求时,将所述第一访问请求转换为回调鉴权请求,并将所述回调鉴权请求发送至所述webhook鉴权组件,所述回调鉴权请求包括目标资源标识以及目标用户标识,所述第一访问请求为所述RBAC鉴权组件对用户访问请求进行鉴权后生成的访问请求;
所述webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,所述目标名单集合为与所述目标资源标识对应的候选名单集合;
所述webhook鉴权组件向所述接口服务组件返回所述第二访问请求。
在一些实施例中,所述当所述接口服务组件接收到所述RBAC鉴权组件发送的第一访问请求时,将所述第一访问请求转换为回调鉴权请求之前,所述方法还包括:
所述RBAC鉴权组件接收所述用户访问请求,所述用户访问请求包括所述目标资源标识以及所述目标用户标识;
所述RBAC鉴权组件根据预设的用户标识与资源标识集合的对应关系确定所述目标用户标识是否与所述目标资源标识对应,得到鉴权结果;
所述RBAC鉴权组件根据所述鉴权结果修改所述用户访问请求,得到所述第一访问请求,并发送所述第一访问请求至所述接口服务组件。
第二方面,本申请实施例还提供了一种控制器,所述控制器位于K8S集群中,所述控制器包括RBAC鉴权组件、接口服务组件以及webhook鉴权组件,其中:
所述RBAC鉴权组件,用于向所述接口服务组件发送第一访问请求,所述第一访问请求为所述RBAC鉴权组件对用户访问请求进行鉴权后生成的访问请求;
所述接口服务组件,用于当接收到所述第一访问请求时,将所述第一访问请求转换为回调鉴权请求,并将所述回调鉴权请求发送至所述webhook鉴权组件,所述回调鉴权请求包括目标资源标识以及目标用户标识;
所述webhook鉴权组件,用于根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,所述目标名单集合为与所述目标资源标识对应的候选名单集合;向所述接口服务组件返回所述第二访问请求。
在一些实施例中,所述目标名单集合包括目标白名单集合;所述webhook鉴权组件在执行所述根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求步骤时,具体用于:
若确定所述目标白名单集合中存在所述目标用户标识,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求;
若确定所述目标白名单集合中不存在所述目标用户标识,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求。
在一些实施例中,所述目标名单集合包括目标黑名单集合;所述webhook鉴权组件在执行所述根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求步骤时,具体用于:
若确定所述目标黑名单集合中存在所述目标用户标识,则将所述鉴权状态字段修改为拒绝访问字段,得到所述第二访问请求;
若确定所述目标黑名单集合中不存在所述目标用户标识,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求。
在一些实施例中,所述目标名单集合包括目标白名单集合以及目标黑名单集合;所述webhook鉴权组件在执行所述根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求步骤时,具体用于:
若确定所述目标白名单集合以及所述目标黑名单集合中均存在所述目标用户标识,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求;
若确定所述目标白名单集合中存在所述目标用户标识且所述目标黑名单集合中不存在所述目标用户标识,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求;
若确定所述目标白名单集合中不存在所述目标用户标识且所述目标黑名单集合中存在所述目标用户标识,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求;
若确定所述目标白名单集合以及所述目标黑名单集合中均不存在所述目标用户标识,则根据预设的鉴权优先级修改所述鉴权状态字段,得到所述第二访问请求。
在一些实施例中,所述webhook鉴权组件在执行所述所述根据预设的鉴权逻辑修改所述鉴权状态字段,得到所述第二访问请求步骤时,具体用于:
若所述鉴权优先级为白名单优先,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求;
若所述鉴权优先级为黑名单优先,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求。
在一些实施例中,所述控制器还包括资源访问组件,所述K8S集群包括多个资源;在所述webhook鉴权组件执行向所述接口服务组件返回所述第二访问请求步骤之后,还包括:
所述接口服务组件,用于若所述第二访问请求中的所述鉴权状态字段为允许访问字段,则向所述资源访问组件发送所述第二访问请求;
所述资源访问组件,用于根据所述第二访问请求从多个所述资源中确定与所述目标资源标识对应的目标资源,并访问所述目标资源。
在一些实施例中,所述K8S集群包括多个资源,所述webhook鉴权组件中预设有各所述资源分别对应的所述候选名单集合;所述webhook鉴权组件在执行所述根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求步骤之前,还用于:
从各所述资源分别对应的所述候选访问名单集合中确定与所述目标资源标识对应的所述目标访问名单集合。
在一些实施例中,在所述接口服务组件执行所述将所述第一访问请求转换为回调鉴权请求步骤之前,还包括:
所述RBAC鉴权组件,用于接收所述用户访问请求,所述用户访问请求包括所述目标资源标识以及所述目标用户标识;根据预设的用户标识与资源标识集合的对应关系确定所述目标用户标识是否与所述目标资源标识对应,得到鉴权结果;
根据所述鉴权结果修改所述用户访问请求,得到所述第一访问请求,并发送所述第一访问请求至所述接口服务组件。
第三方面,本申请实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现上述方法。
本申请实施例提供了一种K8S鉴权方法、相关设备及存储介质。所述方法应用于K8S集群中的控制器,所述控制器包括RBAC鉴权组件、接口服务组件以及webhook鉴权组件,当RBAC鉴权组件对用户访问请求进行鉴权后,将生成的第一访问请求发送给接口服务组件,然后接口服务组件将第一访问请求转换为回调鉴权请求,并将所述回调鉴权请求发送至所述webhook鉴权组件,其中,所述回调鉴权请求包括目标资源标识以及目标用户标识;然后,所述webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,所述目标名单集合为与所述目标资源标识对应的候选名单集合;最后,所述webhook鉴权组件向所述接口服务组件返回所述第二访问请求。本实施例中,一方面,当接口服务组件接收到RBAC鉴权组件发送的第一访问请求时,会将该第一访问请求转换为webhook鉴权组件可以修改的回调鉴权请求,并将该回调鉴权请求发送给webhook鉴权组件;另一方面,当webhook鉴权组件接收到回调鉴权请求之后,会基于预设的目标名单集合对回调鉴权请求中的鉴权状态字段进行修改,进而得到第二访问请求,从而修改RBAC鉴权组件的鉴权结果,由于webhook鉴权组件中的目标名单集合可以灵活设置,故本申请增加webhook鉴权组件进行鉴权,可以提高K8S鉴权的灵活性。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的K8S鉴权方法的应用场景示意图;
图2为本申请实施例提供的K8S鉴权方法的流程示意图;
图3为本申请实施例提供的控制器的示意性框图;
图4为本申请另一实施例提供的控制器的示意性框图;
图5为本申请实施例中终端的一种结构示意图;
图6为本申请实施例中服务器的一种结构示意图。
具体实施方式
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请实施例中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请实施例中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请实施例方案的目的。
本申请实施例提供了一种K8S鉴权方法、相关设备及存储介质。可以用在K8S集群中K8S鉴权的场景,以提高K8S鉴权的灵活性。
该K8S鉴权方法的执行主体可以是本申请实施例提供的控制器,或者集成了该控制器的计算机设备,其中,该控制器可以采用硬件或者软件的方式实现,该计算机设备可以为终端或服务器,该控制器设置在K8S集群中。
当该计算机设备为服务器时,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
当该计算机设备为终端时,该终端可以包括:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视、智能音箱、个人数字助理(英文全称:Personal Digital Assistant,英文简称:PDA)、台式计算机、智能手表等携带多媒体数据处理功能(例如,视频数据播放功能、音乐数据播放功能)的智能终端,但并不局限于此。
本申请实施例的方案可基于人工智能技术实现,具体来说涉及云技术中的云计算、云存储和数据库等领域,下面将分别进行介绍。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术(Cloudtechnology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图像类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。本申请实施例可通过云技术对识别结果进行保存。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。在本申请实施例中,可将网络配置等信息均保存在该存储系统中,便于服务器调取。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible MarkupLanguage,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL(结构化查询语言,Structured QueryLanguage)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。在本申请实施例中,可将识别结果存储在该数据库管理系统中,便于服务器调取。
其中,需要特别说明的是,本申请实施例涉及的服务终端,可以是指向服务终端提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。例如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语音和/或数据。例如,个人通信业务(英文全称:Personal Communication Service,英文简称:PCS)电话、无绳电话、会话发起协议(SIP)话机、无线本地环路(Wireless LocalLoop,英文简称:WLL)站、个人数字助理(英文全称:Personal Digital Assistant,英文简称:PDA)等设备。
需要说明的是,本申请包括术语:
Kubernetes(简称:K8S):是一个用于自动部署、扩展和管理容器化应用程序的开源的容器集群管理系统;而且K8S可以帮助用户省去应用容器化过程的许多手动部署和扩展操作。
接口服务组件(kube-apiserver):是K8S最重要的核心组件之一,提供其他模块之间的数据交互和通信的枢纽(其他模块通过kube-apiserver查询或修改数据,只有kube-apiserver才直接操作etcd(一个非常可靠的kv存储系统))。
webhook鉴权组件:是一种HTTP回调,用于在特定情况下执行特定动作。
RBAC鉴权组件:用于对用户访问请求进行鉴权,其中,用户的权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限,其中,每个角色可以拥有至少一个资源的访问权限。
资源访问组件,用于根据接收到的访问请求访问对应的资源。
请参阅图1,图1为本申请实施例提供的K8S鉴权方法的应用场景示意图。该K8S鉴权方法应用于图1中的控制器中,所述控制器包括RBAC鉴权组件、接口服务组件以及webhook鉴权组件,其中,当接口服务组件接收到用户端发送的用户访问请求之后,将该用户访问请求发送至RBAC鉴权组件,RBAC鉴权组件接收到用户访问请求之后,对该用户访问请求进行鉴权,并将鉴权结果写入用户访问请求的鉴权状态字段中,得到第一访问请求,然后将第一访问请求返回至接口服务组件,接口服务组件将第一访问请求转换为回调鉴权请求,并将该回调鉴权请求发送至webhook鉴权组件,然后webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,并向接口服务组件返回该第二访问请求。
图2是本申请实施例提供的K8S鉴权方法的流程示意图。如图2所示,该方法包括以下步骤S110-S160。
S110、当接口服务组件接收到用户访问请求后,向RBAC鉴权组件发送所述用户访问请求。
其中,该用户访问请求可以为用户端发送的针对目标资源的访问请求,该用户访问请求携带有目标资源的目标资源标识以及目标用户标识(例如用户账号),该用户端可以为物理终端,也可以为K8S集群中的虚拟终端。
进一步地,控制器还包括认证组件,为了提高资源访问的安全性,当接口服务组件接收到用户访问请求后,还会将该用户访问请求发送给认证组件,认证组件认证通过之后,才将该用户访问请求返回至接口服务组件,当接口服务组件接收到认证组件返回的用户访问请求之后,才将该用户访问请求发送给RBAC鉴权组件。
S120、RBAC鉴权组件根据预设的用户标识与资源标识集合的对应关系确定所述目标用户标识是否与所述目标资源标识对应,得到鉴权结果,并根据所述鉴权结果修改所述用户访问请求,得到所述第一访问请求。
本实施例中,RBAC鉴权组件中预设有用户标识与资源标识集合的对应关系,该对应关系包括多个用户标识以及各用户标识分别对应的资源标识集合,所述资源标识集合中包括至少一个资源标识。
具体地,RBAC鉴权组件确定预设的用户标识与资源标识集合中是否存在与目标用户标识对应的资源标识集合,若存在对应的资源标识集合,则将该与目标用户标识对应的目标资源标识集合确定为目标资源标识集合,并判断该目标资源标识集合中是否存在目标资源标识,若存在目标资源标识,则鉴权结果为鉴权通过,否则鉴权结果为鉴权不通过。
得到鉴权结果之后,将该鉴权结果写入用户访问请求中的鉴权状态字段,生成第一访问请求,即,该第一访问请求中携带有RBAC鉴权组件对应的鉴权结果。
S130、RBAC鉴权组件发送所述第一访问请求至所述接口服务组件。
本实施例中,RBAC鉴权组件得到第一访问请求之后,将会将该第一访问请求发送回接口服务组件,使得接口服务组件根据该第一访问请求进行进一步动作。
S140、所述接口服务组件将所述第一访问请求转换为回调鉴权请求,并将所述回调鉴权请求发送至所述webhook鉴权组件。
其中,所述回调鉴权请求包括目标资源标识以及目标用户标识,所述第一访问请求为所述RBAC鉴权组件对用户访问请求进行鉴权后生成的访问请求。
具体地,本实施例中,当接口服务组件接收到第一访问请求之后,会将该第一访问请求JSON序列化为回调鉴权请求,其中,该回调鉴权请求为SubjectAccessReview对象,将第一访问请求转换为回调鉴权请求,可以许可webhook鉴权组件对该回调鉴权请求进行修改,其中,该回调鉴权请求包括用户请求字段以及鉴权状态字段,该用户请求字段携带有目标资源标识以及目标用户标识,该鉴权状态字段为status字段,将第一访问请求转换为回调鉴权请求时,可以将第一访问请求中的鉴权状态字段的值清空,在得到webhook鉴权组件对应的鉴权结果之后,将该鉴权结果对应的值填充至鉴权状态字段中;或者将第一访问请求中鉴权状态字段的值保留,在得到webhook鉴权组件对应的鉴权结果之后,直接根据webhook鉴权组件对应的鉴权结果修改该鉴权状态字段。
在一些实施例中,该鉴权状态字段的修改逻辑如下:
//Allowed is required.True if the action would be allowed,falseotherwise.
Allowed bool`json:"allowed"protobuf:"varint,1,opt,name=allowed"`
//Denied is optional.True if the action would be denied,otherwise
//false.If both allowed is false and denied is false,then the
//authorizer has no opinion on whether to authorize the action.Denied
//may not be true if Allowed is true.
//+optional
Denied bool`json:"denied,omitempty"protobuf:"varint,4,opt,name=denied"`
即直接调整Allowed和Denied逻辑即可。
S150、所述webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求。
其中,所述目标名单集合为与所述目标资源标识对应的候选名单集合。
本实施例中,目标名单集合包括目标白名单集合以及目标黑名单集合中的一个;所述目标白名单集合中包括目标资源标识对应的多个白名单,该目标白名单集合中的用户标识为允许访问目标资源的用户标识;所述目标白名单集合中包括目标资源标识对应的多个白名单用户标识,该目标白名单集合中的用户标识为允许访问目标资源的用户标识;所述目标黑名单集合中包括目标资源标识对应的多个黑名单用户标识,该目标黑名单集合中的用户标识为禁止访问目标资源的用户标识。
其中,所述K8S集群包括多个资源,所述webhook鉴权组件中预设有各所述资源分别对应的所述候选名单集合;所述webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求之前,所述方法还包括:
所述webhook鉴权组件从各所述资源分别对应的所述候选访问名单集合中确定与所述目标资源标识对应的所述目标访问名单集合。
在一些实施例中,通过本申请可以灵活调整K8S集群中资源的白名单,具体地,此时,本实施例可以通过webhook鉴权组件为K8S集群中的资源灵活设置白名单,此时,所述目标名单集合包括目标白名单集合;所述webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,包括:
若所述webhook鉴权组件确定所述目标白名单集合中存在所述目标用户标识,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求;若所述webhook鉴权组件确定所述目标白名单集合中不存在所述目标用户标识,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求。
可见,由于本实施例中通过webhook鉴权组件为K8S集群中的资源设置白名单,且webhook鉴权组件中预设的白名单可灵活调整,相对于RBAC鉴权方式不能对内设的白名单进行修改,本方案增加webhook鉴权组件对请求进行进一步的白名单鉴权识别,可提高K8S鉴权中,对于白名单设置的灵活性以及鉴权的灵活性。
在一些实施例中,通过本申请可以灵活调整K8S集群中资源的黑名单,具体地,此时,本实施例中的目标名单集合包括目标黑名单集合;所述webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,包括:
若所述webhook鉴权组件确定所述目标黑名单集合中存在所述目标用户标识,则将所述鉴权状态字段修改为拒绝访问字段,得到所述第二访问请求;若所述webhook鉴权组件确定所述目标黑名单集合中不存在所述目标用户标识,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求。
可见,由于本实施例中通过webhook鉴权组件为K8S集群中的资源设置黑名单,且webhook鉴权组件中预设的黑名单可灵活调整,相对于RBAC鉴权方式不能对内设的白名单进行修改,且只提供了白名单鉴权,本方案增加webhook鉴权组件对请求进行进一步的黑名单鉴权识别,可提高K8S鉴权中,对于鉴权的丰富性以及灵活性。
在一些实施例中,通过本申请可以灵活调整K8S集群中资源的白名单以及黑名单,具体地,此时,本实施例中的目标名单集合包括目标白名单集合以及目标黑名单集合;所述webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,包括:
若所述webhook鉴权组件确定所述目标白名单集合以及所述目标黑名单集合中均存在所述目标用户标识,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求;
若所述webhook鉴权组件确定所述目标白名单集合中存在所述目标用户标识且所述目标黑名单集合中不存在所述目标用户标识,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求;
若所述webhook鉴权组件确定所述目标白名单集合中不存在所述目标用户标识且所述目标黑名单集合中存在所述目标用户标识,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求;
若所述webhook鉴权组件确定所述目标白名单集合以及所述目标黑名单集合中均不存在所述目标用户标识,则根据预设的鉴权优先级修改所述鉴权状态字段,得到所述第二访问请求。
进一步地,所述根据预设的鉴权逻辑修改所述鉴权状态字段,得到所述第二访问请求,包括:若所述鉴权优先级为白名单优先,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求;若所述鉴权优先级为黑名单优先,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求。
可见,由于本实施例中通过webhook鉴权组件为K8S集群中的资源设置白名单以及黑名单,且webhook鉴权组件中预设的白名单以及黑名单可灵活调整,相对于RBAC鉴权方式不能对内设的白名单进行修改且至提供了白名单,本方案增加webhook鉴权组件对请求进行进一步的白名单以及黑名单的鉴权识别,可提高K8S鉴权中,对于白名单设置的灵活性以及丰富了鉴权的形式,并提高了鉴权的灵活性。
为了进一步增加K8S集群鉴权的灵活性,本实施例中的webhook鉴权组件提供两种鉴权方法,本申请可以根据需要选取其任意一种方法进行鉴权:
第一种,该webhook鉴权组件鉴权方法仅仅代表当前webhook鉴权组件的授权意见(如果有其他的授权器支持,则进一步进入下一个授权器进行鉴权)。
此时,在一些实施例中,所返回的第二访问请求的代码如下:
第二种,该webhook鉴权组件鉴权方法代表控制器的最终授权意见,方法立即拒绝其他配置的授权者进行短路评估。(如果有其他的授权器支持,则直接中断后续鉴权)。
此时,在一些实施例中,所返回的第二访问请求的代码如下:
S160、所述webhook鉴权组件向所述接口服务组件返回所述第二访问请求。
本实施例中,当webhook鉴权组件对请求对象(回调鉴权请求,SubjectAccessReview)中的鉴权状态字段(status字段)进行修改之后,得到第二访问请求,并将第二访问请求返回给回调鉴权请求。
进一步地,在一些实施例中,所述控制器还包括资源访问组件,所述K8S集群包括多个资源;所述webhook鉴权组件向所述接口服务组件返回所述第二访问请求之后,所述方法还包括:
若所述第二访问请求中的所述鉴权状态字段为允许访问字段,则所述接口服务组件向所述资源访问组件发送所述第二访问请求;所述资源访问组件根据所述第二访问请求从多个所述资源中确定与所述目标资源标识对应的目标资源,并访问所述目标资源。
即,当接口服务组件接收到webhook鉴权组件返回的第二访问请求之后,会检查第二访问请求中的所述鉴权状态字段是否为允许访问字段,若为允许访问字段,则向资源访问组件转发该第二访问请求,然后资源访问组件再根据该第二访问请求中携带的目标资源标识从多个资源中确定与该目标资源标识对应的目标资源,并访问该目标资源,其中,K8S集群中的资源包括增、删、查以及改等功能的资源。
本实施例利用webhook的鉴权方式可以实现灵活的鉴权模式,可支持黑名单和/或白名单的访问方式。
具体地,若RBAC鉴权组件已经禁止访问,通过本申请提供的及webhook鉴权组件可修改SubjectAccessReview返回,从而跳过RBAC鉴权,实现白名单机制。
此外,若RBAC鉴权组件已经允许访问,通过本申请也可修改SubjectAccessReview返回,从而修改本身的RBAC鉴权,实现黑名单机制。
综上所述,本申请应用于K8S集群中的控制器,所述控制器包括RBAC鉴权组件、接口服务组件以及webhook鉴权组件,当RBAC鉴权组件对用户访问请求进行鉴权后,将生成的第一访问请求发送给接口服务组件,然后接口服务组件将第一访问请求转换为回调鉴权请求,并将所述回调鉴权请求发送至所述webhook鉴权组件,其中,所述回调鉴权请求包括目标资源标识以及目标用户标识;然后,所述webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,所述目标名单集合为与所述目标资源标识对应的候选名单集合;最后,所述webhook鉴权组件向所述接口服务组件返回所述第二访问请求。本实施例中,一方面,当接口服务组件接收到RBAC鉴权组件发送的第一访问请求时,会将该第一访问请求转换为webhook鉴权组件可以修改的回调鉴权请求,并将该回调鉴权请求发送给webhook鉴权组件;另一方面,当webhook鉴权组件接收到回调鉴权请求之后,会基于预设的目标名单集合对回调鉴权请求中的鉴权状态字段进行修改,进而得到第二访问请求,从而修改RBAC鉴权组件的鉴权结果,由于webhook鉴权组件中的目标名单集合可以灵活设置,故本申请增加webhook鉴权组件进行鉴权,可以提高K8S鉴权的灵活性。
图3是本申请实施例提供的一种控制器的示意性框图。如图3所示,对应于以上K8S鉴权方法,本申请还提供一种控制器300,所述控制器300包括RBAC鉴权组件301、接口服务组件302以及webhook鉴权组件303,其中:
所述RBAC鉴权组件301,用于向所述接口服务组件302发送第一访问请求,所述第一访问请求为所述RBAC鉴权组件301对用户访问请求进行鉴权后生成的访问请求;
所述接口服务组件302,用于当接收到所述第一访问请求时,将所述第一访问请求转换为回调鉴权请求,并将所述回调鉴权请求发送至所述webhook鉴权组件303,所述回调鉴权请求包括目标资源标识以及目标用户标识;
所述webhook鉴权组件303,用于根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,所述目标名单集合为与所述目标资源标识对应的候选名单集合;向所述接口服务组件302返回所述第二访问请求。
在一些实施例中,所述目标名单集合包括目标白名单集合;所述webhook鉴权组件303在执行所述根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求步骤时,具体用于:
若确定所述目标白名单集合中存在所述目标用户标识,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求;
若确定所述目标白名单集合中不存在所述目标用户标识,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求。
在一些实施例中,所述目标名单集合包括目标黑名单集合;所述webhook鉴权组件303在执行所述根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求步骤时,具体用于:
若确定所述目标黑名单集合中存在所述目标用户标识,则将所述鉴权状态字段修改为拒绝访问字段,得到所述第二访问请求;
若确定所述目标黑名单集合中不存在所述目标用户标识,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求。
在一些实施例中,所述目标名单集合包括目标白名单集合以及目标黑名单集合;所述webhook鉴权组件303在执行所述根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求步骤时,具体用于:
若确定所述目标白名单集合以及所述目标黑名单集合中均存在所述目标用户标识,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求;
若确定所述目标白名单集合中存在所述目标用户标识且所述目标黑名单集合中不存在所述目标用户标识,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求;
若确定所述目标白名单集合中不存在所述目标用户标识且所述目标黑名单集合中存在所述目标用户标识,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求;
若确定所述目标白名单集合以及所述目标黑名单集合中均不存在所述目标用户标识,则根据预设的鉴权优先级修改所述鉴权状态字段,得到所述第二访问请求。
在一些实施例中,所述webhook鉴权组件303在执行所述所述根据预设的鉴权逻辑修改所述鉴权状态字段,得到所述第二访问请求步骤时,具体用于:
若所述鉴权优先级为白名单优先,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求;
若所述鉴权优先级为黑名单优先,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求。
请参阅图4,在一些实施例中,所述控制器还包括资源访问组件304,所述K8S集群包括多个资源;在所述webhook鉴权组件303执行向所述接口服务组件302返回所述第二访问请求步骤之后,还包括:
所述接口服务组件302,用于若所述第二访问请求中的所述鉴权状态字段为允许访问字段,则向所述资源访问组件304发送所述第二访问请求;
所述资源访问组件304,用于根据所述第二访问请求从多个所述资源中确定与所述目标资源标识对应的目标资源,并访问所述目标资源。
在一些实施例中,所述K8S集群包括多个资源,所述webhook鉴权组件303中预设有各所述资源分别对应的所述候选名单集合;所述webhook鉴权组件303在执行所述根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求步骤之前,还用于:
从各所述资源分别对应的所述候选访问名单集合中确定与所述目标资源标识对应的所述目标访问名单集合。
在一些实施例中,在所述接口服务组件302执行所述将所述第一访问请求转换为回调鉴权请求步骤之前,还包括:
所述RBAC鉴权组件301,用于接收所述用户访问请求,所述用户访问请求包括所述目标资源标识以及所述目标用户标识;根据预设的用户标识与资源标识集合的对应关系确定所述目标用户标识是否与所述目标资源标识对应,得到鉴权结果;
根据所述鉴权结果修改所述用户访问请求,得到所述第一访问请求,并发送所述第一访问请求至所述接口服务组件302。
综上所述,本实施例中,一方面,当接口服务组件302接收到RBAC鉴权组件301发送的第一访问请求时,会将该第一访问请求转换为webhook鉴权组件303可以修改的回调鉴权请求,并将该回调鉴权请求发送给webhook鉴权组件303;另一方面,当webhook鉴权组件303接收到回调鉴权请求之后,会基于预设的目标名单集合对回调鉴权请求中的鉴权状态字段进行修改,进而得到第二访问请求,从而修改RBAC鉴权组件301的鉴权结果,由于webhook鉴权组件303中的目标名单集合可以灵活设置,故本申请增加webhook鉴权组件303进行鉴权,可以提高K8S鉴权的灵活性。
上面从模块化功能实体的角度对本申请实施例中的控制器进行了描述,下面从硬件处理的角度分别对本申请实施例中的控制器进行描述。
本申请实施例还提供了一种终端设备,如图5所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(英文全称:Personal Digital Assistant,英文简称:PDA)、销售终端(英文全称:Point of Sales,英文简称:POS)、车载电脑等任意终端设备,以终端为手机为例:
图5示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图5,手机包括:射频(英文全称:Radio Frequency,英文简称:RF)电路55、存储器520、输入单元530、显示单元540、传感器550、音频电路560、无线保真(英文全称:wirelessfidelity,英文简称:Wi-Fi)模块570、处理器580、以及电源590等部件。本领域技术人员可以理解,图5中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图5对手机的各个构成部件进行具体的介绍:
RF电路55可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器580处理;另外,将设计上行的数据发送给基站。通常,RF电路55包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(英文全称:Low NoiseAmplifier,英文简称:LNA)、双工器等。此外,RF电路55还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(英文全称:Global System of Mobile communication,英文简称:GSM)、通用分组无线服务(英文全称:General Packet Radio Service,英文简称:GPRS)、码分多址(英文全称:Code Division Multiple Access,英文简称:CDMA)、宽带码分多址(英文全称:WidebandCode Division Multiple Access,英文简称:WCDMA)、长期演进(英文全称:Long TermEvolution,英文简称:LTE)、电子邮件、短消息服务(英文全称:Short Messaging Service,英文简称:SMS)等。
存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元530可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元530可包括触控面板531以及其他输入设备532。触控面板531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板531上或在触控面板531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器580,并能接收处理器580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板531。除了触控面板531,输入单元530还可以包括其他输入设备532。具体地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元540可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元540可包括显示面板541,可选的,可以采用液晶显示器(英文全称:LiquidCrystal Display,英文简称:LCD)、有机发光二极管(英文全称:Organic Light-EmittingDiode,英文简称:OLED)等形式来配置显示面板541。进一步的,触控面板531可覆盖显示面板541,当触控面板531检测到在其上或附近的触摸操作后,传送给处理器580以确定触摸事件的类型,随后处理器580根据触摸事件的类型在显示面板541上提供相应的视觉输出。虽然在图5中,触控面板531与显示面板541是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板531与显示面板541集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在手机移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路560、扬声器561,传声器562可提供用户与手机之间的音频接口。音频电路560可将接收到的音频数据转换后的电信号,传输到扬声器561,由扬声器561转换为声音信号输出;另一方面,传声器562将收集的声音信号转换为电信号,由音频电路560接收后转换为音频数据,再将音频数据输出处理器580处理后,经RF电路55以发送给比如另一手机,或者将音频数据输出至存储器520以便进一步处理。
Wi-Fi属于短距离无线传输技术,手机通过Wi-Fi模块570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图5示出了Wi-Fi模块570,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变申请的本质的范围内而省略。
处理器580是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器580可包括一个或多个处理单元;优选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
手机还包括给各个部件供电的电源590(比如电池),电源可以通过电源管理系统与处理器580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,该手机所包括的处理器580还具有控制执行以上由图2所示的K8S鉴权方法的流程图。
图6是本申请实施例提供的一种服务器结构示意图,该服务器620可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(英文全称:centralprocessing units,英文简称:CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在服务器620上执行存储介质630中的一系列指令操作。
服务器620还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,和/或,一个或一个以上操作系统641,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
上述实施例中由服务器所执行的步骤可以基于该图6所示的服务器620的结构。例如上述实施例中由图2所示的服务器的步骤可以基于该图6所示的服务器结构。例如,所述处理器622通过调用存储器632中的指令,执行以下操作:
当所述接口服务组件接收到所述RBAC鉴权组件发送的第一访问请求时,将所述第一访问请求转换为回调鉴权请求,并将所述回调鉴权请求发送至所述webhook鉴权组件,所述回调鉴权请求包括目标资源标识以及目标用户标识,所述第一访问请求为所述RBAC鉴权组件对用户访问请求进行鉴权后生成的访问请求;
所述webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,所述目标名单集合为与所述目标资源标识对应的候选名单集合;
所述webhook鉴权组件向所述接口服务组件返回所述第二访问请求。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上对本申请实施例所提供的技术方案进行了详细介绍,本申请实施例中应用了具体个例对本申请实施例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请实施例的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请实施例的限制。
Claims (10)
1.一种K8S鉴权方法,其特征在于,所述方法应用于K8S集群中的控制器,所述控制器包括RBAC鉴权组件、接口服务组件以及webhook鉴权组件,所述方法包括:
当所述接口服务组件接收到所述RBAC鉴权组件发送的第一访问请求时,将所述第一访问请求转换为回调鉴权请求,并将所述回调鉴权请求发送至所述webhook鉴权组件,所述回调鉴权请求包括目标资源标识以及目标用户标识,所述第一访问请求为所述RBAC鉴权组件对用户访问请求进行鉴权后生成的访问请求;
所述webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,所述目标名单集合为与所述目标资源标识对应的候选名单集合;
所述webhook鉴权组件向所述接口服务组件返回所述第二访问请求。
2.根据权利要求1所述的方法,其特征在于,所述目标名单集合包括目标白名单集合;所述webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,包括:
若所述webhook鉴权组件确定所述目标白名单集合中存在所述目标用户标识,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求;
若所述webhook鉴权组件确定所述目标白名单集合中不存在所述目标用户标识,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求。
3.根据权利要求1所述的方法,其特征在于,所述目标名单集合包括目标黑名单集合;所述webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,包括:
若所述webhook鉴权组件确定所述目标黑名单集合中存在所述目标用户标识,则将所述鉴权状态字段修改为拒绝访问字段,得到所述第二访问请求;
若所述webhook鉴权组件确定所述目标黑名单集合中不存在所述目标用户标识,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求。
4.根据权利要求1所述的方法,其特征在于,所述目标名单集合包括目标白名单集合以及目标黑名单集合;所述webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,包括:
若所述webhook鉴权组件确定所述目标白名单集合以及所述目标黑名单集合中均存在所述目标用户标识,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求;
若所述webhook鉴权组件确定所述目标白名单集合中存在所述目标用户标识且所述目标黑名单集合中不存在所述目标用户标识,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求;
若所述webhook鉴权组件确定所述目标白名单集合中不存在所述目标用户标识且所述目标黑名单集合中存在所述目标用户标识,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求;
若所述webhook鉴权组件确定所述目标白名单集合以及所述目标黑名单集合中均不存在所述目标用户标识,则根据预设的鉴权优先级修改所述鉴权状态字段,得到所述第二访问请求。
5.根据权利要求4所述的方法,其特征在于,所述根据预设的鉴权逻辑修改所述鉴权状态字段,得到所述第二访问请求,包括:
若所述鉴权优先级为白名单优先,则将所述鉴权状态字段修改为禁止访问字段,得到所述第二访问请求;
若所述鉴权优先级为黑名单优先,则将所述鉴权状态字段修改为允许访问字段,得到所述第二访问请求。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述控制器还包括资源访问组件,所述K8S集群包括多个资源;所述webhook鉴权组件向所述接口服务组件返回所述第二访问请求之后,所述方法还包括:
若所述第二访问请求中的所述鉴权状态字段为允许访问字段,则所述接口服务组件向所述资源访问组件发送所述第二访问请求;
所述资源访问组件根据所述第二访问请求从多个所述资源中确定与所述目标资源标识对应的目标资源,并访问所述目标资源。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述K8S集群包括多个资源,所述webhook鉴权组件中预设有各所述资源分别对应的所述候选名单集合;所述webhook鉴权组件根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求之前,所述方法还包括:
所述webhook鉴权组件从各所述资源分别对应的所述候选访问名单集合中确定与所述目标资源标识对应的所述目标访问名单集合。
8.一种控制器,其特征在于,所述控制器位于K8S集群中,所述控制器包括RBAC鉴权组件、接口服务组件以及webhook鉴权组件,其中:
所述RBAC鉴权组件,用于向所述接口服务组件发送第一访问请求,所述第一访问请求为所述RBAC鉴权组件对用户访问请求进行鉴权后生成的访问请求;
所述接口服务组件,用于当接收到所述第一访问请求时,将所述第一访问请求转换为回调鉴权请求,并将所述回调鉴权请求发送至所述webhook鉴权组件,所述回调鉴权请求包括目标资源标识以及目标用户标识;
所述webhook鉴权组件,用于根据预设的目标名单集合以及所述目标用户标识,修改所述回调鉴权请求中的鉴权状态字段,得到第二访问请求,所述目标名单集合为与所述目标资源标识对应的候选名单集合;向所述接口服务组件返回所述第二访问请求。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310180532.7A CN116170222A (zh) | 2023-02-15 | 2023-02-15 | K8s鉴权方法、相关设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310180532.7A CN116170222A (zh) | 2023-02-15 | 2023-02-15 | K8s鉴权方法、相关设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116170222A true CN116170222A (zh) | 2023-05-26 |
Family
ID=86421759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310180532.7A Pending CN116170222A (zh) | 2023-02-15 | 2023-02-15 | K8s鉴权方法、相关设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116170222A (zh) |
-
2023
- 2023-02-15 CN CN202310180532.7A patent/CN116170222A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11057376B2 (en) | Method, apparatus, and system for controlling intelligent device, and storage medium | |
US11388220B2 (en) | Image distribution method and apparatus, and image obtaining method and apparatus | |
US10304461B2 (en) | Remote electronic service requesting and processing method, server, and terminal | |
US20150381654A1 (en) | Method, device and system for detecting potential phishing websites | |
WO2017067137A1 (zh) | 资源使用权限判断系统及方法 | |
US20190199795A1 (en) | Method and device for synchronizing backup data, storage medium, electronic device, and server | |
WO2015043361A1 (en) | Methods, devices, and systems for completing communication between terminals | |
CN108881103B (zh) | 一种接入网络的方法及装置 | |
US10993090B2 (en) | Network access method, apparatus, and system | |
CN104142868A (zh) | 建立连接的方法及装置 | |
WO2018214748A1 (zh) | 应用界面的显示方法、装置、终端及存储介质 | |
CN103279272B (zh) | 一种在电子装置中启动应用程序的方法及装置 | |
CN112464208B (zh) | 文件访问方法、移动终端及计算机可读存储介质 | |
CN104780234A (zh) | Ip归属地查询方法、装置及系统 | |
CN115640567B (zh) | Tee完整性认证方法、装置、系统及存储介质 | |
WO2015067206A1 (zh) | 一种文件查找的方法及终端 | |
CN115065609A (zh) | B端SaaS系统混合部署方法及系统 | |
CN116170222A (zh) | K8s鉴权方法、相关设备及存储介质 | |
CN112732548A (zh) | 一种接口测试方法以及装置 | |
US9471782B2 (en) | File scanning method and system, client and server | |
CN115048463B (zh) | 数据迁移方法、系统及存储介质 | |
WO2019084783A1 (zh) | 服务调度方法和装置、计算机设备、计算机可读存储介质 | |
CN115883352B (zh) | 服务节点创建方法、相关设备及存储介质 | |
CN116244071A (zh) | 资源调整方法、相关设备及存储介质 | |
CN104077338B (zh) | 一种数据处理的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |