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

一种权限检测方法、装置、电子设备及可读存储介质

文献发布时间:2023-06-19 10:08:35


一种权限检测方法、装置、电子设备及可读存储介质

技术领域

本申请涉及云计算技术领域,特别涉及一种权限检测方法、权限检测装置、电子设备及计算机可读存储介质。

背景技术

云计算时代,通过云计算管理平台提供的服务也越来越多,比如云主机、云硬盘、容器、对象存储、网络、镜像等等,这些服务的实例有其所属的资源域、控制中心(集群)、虚拟数据中心和用户,并且实例所允许访问的用户不仅限于实例的所有者,例如所有的上级管理员或者超级管理员等也可以具备访问权限,因此何控制用户对实例的访问权限是云管理平台中保障数据安全性需要解决的一个问题。相关技术采用角色访问控制的方式进行权限控制,但是角色访问控制是比较粗粒度的权限控制方式,它控制的是对RestAPI(Representational State Transfer API,表述性状态传递接口)的操作权限。例如用户A获取token(令牌)后,可以使用token调用所有的具备与用户A对应的用户角色访问权限的Rest API操作其他用户的资源实例。因此相关技术的权限控制灵活度和效果较差。

因此,相关技术存在的权限控制灵活度和效果较差的问题,是本领域技术人员需要解决的技术问题。

发明内容

有鉴于此,本申请的目的在于提供一种权限检测方法、权限检测装置、电子设备及计算机可读存储介质,提高了权限控制的灵活程度,改善了权限控制的效果。

为解决上述技术问题,本申请提供了一种权限检测方法,包括:

获取目标实例对应的访问请求,并提取所述访问请求对应的角色信息和身份信息;

获取所述目标实例对应的目标角色校验数据和目标身份校验数据;

利用所述目标角色校验数据对所述角色信息进行角色校验,并利用所述目标身份校验数据对所述身份信息进行身份校验;

若所述角色校验和所述身份校验均通过,则允许访问所述目标实例。

可选地,所述利用所述目标角色校验数据对所述角色信息进行角色校验,包括:

对所述目标角色校验数据进行筛选,判断是否存在所述角色信息;

若存在所述角色信息,则确定通过所述角色校验;

若不存在所述角色信息,则确定不通过所述角色校验。

可选地,所述利用所述目标身份校验数据对所述身份信息进行身份校验,包括:

对所述角色信息对应的所述目标身份校验数据进行筛选,判断是否存在所述身份信息;

若存在所述身份信息,则确定通过所述身份校验;

若不存在所述身份信息,则确定不通过所述身份校验。

可选地,在对所述角色信息对应的所述目标身份校验数据进行筛选之前,还包括:

判断所述角色信息对应的所述目标身份校验数据中是否存在身份通配符;

若存在所述身份通配符,则确定通过所述身份校验;

若不存在所述身份通配符,则执行对所述角色信息对应的所述目标身份校验数据进行筛选的步骤。

可选地,还包括:

若检测到新增实例,则生成所述新增实例对应的初始角色校验数据和初始身份校验数据;

获取配置指令,并利用所述配置指令对所述初始角色校验数据和所述初始身份校验数据进行配置,得到角色校验数据和身份校验数据。

可选地,还包括:

获取修改指令,并确定所述修改指令指定的待修改实例;

利用所述修改指令对所述待修改实例对应的待修改角色校验数据和/或待修改身份校验数据进行修改。

可选地,还包括:

获取删除指令,并确定所述删除指令指定的待删除实例;

删除所述待删除实例对应的待删除角色校验数据和待删除身份校验数据。

本申请还提供了一种权限检测装置,包括:

提取模块,用于获取目标实例对应的访问请求,并提取所述访问请求对应的角色信息和身份信息;

获取模块,用于获取所述目标实例对应的角色校验数据和身份校验数据;

校验模块,用于利用所述角色校验数据对所述角色信息进行角色校验,并利用所述身份校验数据对所述身份信息进行身份校验;

允许访问模块,用于若所述角色校验和所述身份校验均通过,则允许访问所述目标实例。

本申请还提供了一种电子设备,包括存储器和处理器,其中:

所述存储器,用于保存计算机程序;

所述处理器,用于执行所述计算机程序,以实现上述的权限检测方法。

本申请还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的权限检测方法。

本申请提供的权限检测方法,获取目标实例对应的访问请求,并提取访问请求对应的角色信息和身份信息;获取目标实例对应的目标角色校验数据和目标身份校验数据;利用目标角色校验数据对角色信息进行角色校验,并利用目标身份校验数据对身份信息进行身份校验;若角色校验和身份校验通过,则允许访问目标实例。

可见,该方法在获取到访问请求后,提取对应的目标实例的目标角色校验数据和目标身份校验数据。目标角色校验数据用于对发送方的角色等级进行校验,判断其是否具有足够的级别访问目标实例,目标身份校验数据用于对访问请求的发送方的身份进行校验,判断发送方在角色信息对应的角色下是否被允许访问该目标实例。因此利用目标角色校验数据对访问请求的角色进行校验,判断其角色等级是否满足要求。利用目标身份校验数据对访问请求的身份信息进行校验,判断在当前角色下请求访问的发送方是否被允许进行访问。若角色校验和身份校验均通过,即表明访问请求的发送方在采用角色信息对应的角色时被允许访问,因此可以允许访问目标实例。通过角色校验和身份校验的双重校验,可以将权限控制的粒度细分到单个用户,提高了权限控制的灵活程度,改善了权限控制的效果。

此外,本申请还提供了一种权限检测装置、电子设备及计算机可读存储介质,同样具有上述有益效果。

附图说明

为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种权限检测方法流程图;

图2为本申请实施例提供的一种具体的实例-角色-身份链的结构示意图;

图3为本申请实施例提供的一种权限检测装置的结构示意图;

图4为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

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

请参考图1,图1为本申请实施例提供的一种权限检测方法流程图。该方法包括:

S101:获取目标实例对应的访问请求,并提取访问请求对应的角色信息和身份信息。

在本实施例中,可以利用指定的电子设备执行本申请实施例提供的权限检测方法的全部或部分步骤,该电子设备具体可以为计算机、服务器等,具体内容不作限定。在一种可能的实施方式中,电子设备的数量为一个,即利用单个电子设备进行权限检测;在另一种可能的实施方式中,电子设备的数量为多个,即利用多个电子设备配合完成整个权限检测过程,各个电子设备分别执行的步骤本实施例不做限定,各个电子设备之间可以通过有线网络或无线网络连接。

访问请求用于对实例进行访问,其可以由其他电子设备发送。在本实施例中,实例具体可以为文件、存储空间、镜像、网络等,其具体内容不做限定。目标实例可以为任意一个实例,访问请求中可以包括实例信息,用于对实例进行指定,实例信息的具体形式不做限定,例如可以为实例ID,或者可以为实例名称。访问请求中同时包括发送方信息,其具体形式不做限定,例如可以为UserSession字段。具体的,发送方信息包括角色信息和身份信息。角色信息可以为角色ID,或者可以为角色名称。角色信息用于表示发送方的角色,例如为超级管理员、域管理员、虚拟数据中心管理员或普通用户。可以理解的是,上述角色分类仅为一种具体的分类,在其他实施方式中,可以根据实际需要对角色进行分类,不同的角色具有不同的权限。身份信息用于表示发送方的身份,具体可以为用户ID或用户名称,身份信息用于对用户进行具体划分,以便在后续进行粒度为单个用户的权限检测。需要说明的时,本实施例中,每个用户对应于一个身份信息,例如仅具有一个用户ID,但是并不限定其对应的角色数量。例如对某一个网络实例来说,某个用户的角色为域管理员,但是对于另外一个网络实例来说,某个用户的角色为普通用户。对于同一个实例来说,一个用户仅对应于一个角色。

S102:获取目标实例对应的目标角色校验数据和目标身份校验数据。

为了对针对目标实例的访问请求进行权限检测,每个目标实例均具有对应的目标角色校验数据和目标身份校验数据。本实施例并不限定目标角色校验数据和目标身份校验数据的具体形式,在一种实施方式中,目标角色校验数据用于记录允许访问目标实例的角色,目标身份校验数据用于记录各个角色下允许访问目标实例的身份信息,因此利用目标角色校验数据和目标身份校验数据可以对任何访问目标实例的用户进行权限检测。在另一种实施方式中,目标角色校验数据和目标身份校验数据均包括校验规则和校验参数,按照校验规则,将校验参数作为校验的基本参数对角色信息或身份信息进行校验。目标角色校验数据和目标身份校验数据的具体格式不做限定,例如可以为链表,或者可以为数组。请参考图2,图2为本申请实施例提供的一种具体的实例-角色-身份链的结构示意图,其中,目标角色校验数据和目标身份校验数据以链的形式保存,对于资源A(即实例A)来说,其允许角色A、角色B和角色C三种角色访问,则角色A、角色B和角色C即构成目标角色校验数据。每个角色下均记录有访问ID(即用户ID),则各个角色对应的访问ID共同构成目标身份校验数据。

S103:利用目标角色校验数据对角色信息进行角色校验,并利用目标身份校验数据对身份信息进行身份校验。

本实施例并不限定利用目标角色校验数据对角色信息进行角色校验,以及利用目标身份校验数据对身份信息进行校验的具体方式,其可以根据目标角色校验数据的不同而不同。在一种实施方式中,目标角色校验数据用于记录允许访问目标实例的角色,目标身份校验数据用于记录各个角色下允许访问目标实例的身份信息。因此可以先对目标角色校验数据进行筛选,判断其中是否存在角色信息,若存在则确定通过角色校验,并判断目标身份校验数据中角色信息对应的部分是否存在身份信息,若存在则确定通过身份校验。在另一种实施方式中,可以从目标角色校验数据中得到校验规则和校验参数,将角色信息作为输入值,按照校验规则利用校验参数对角色信息进行校验,得到是否通过的结果。与之类似的,对于身份信息的校验也可以采用类似的方式,在此不再赘述。

在一种可行的实施方式中,为了提高校验速度,可以通过筛选的方式进行校验。具体的,利用目标角色校验数据对角色信息进行角色校验的步骤,可以包括:

步骤11:对目标角色校验数据进行筛选,判断是否存在角色信息。

步骤12:若存在角色信息,则确定通过角色校验。

步骤13:若不存在角色信息,则确定不通过角色校验。

在本实施例中,可以利用目标角色校验数据记录目标实例允许访问的角色,并利用目标身份校验数据记录各个角色下允许哪些用户访问目标实例。因此在进行权限检测时,可以先进行角色校验,若通过角色校验,再进行身份校验。具体的,在目标角色校验数据中筛选角色信息,判断其中是否包括角色信息。若目标角色校验数据中存在角色信息,则可以确定通过角色校验,若不存在,则可以确定不通过角色校验。

在通过角色校验后,可以进行身份校验,具体的,利用目标身份校验数据对身份信息进行身份校验的步骤,包括:

步骤21:对角色信息对应的目标身份校验数据进行筛选,判断是否存在身份信息。

步骤22:若存在身份信息,则确定通过身份校验。

步骤23:若不存在身份信息,则确定不通过身份校验。

在确定通过角色校验后,说明目标实例允许该角色下的全部或部分用户访问,因此为了进行进一步确认,可以基于角色信息对目标身份校验数据进行过滤,并利用角色信息对应的目标身份校验数据进行身份检测。具体的,在目标身份校验数据中进行筛选,判断是否存在对应的身份信息。若存在则确定通过身份校验,若不存在则确定未通过身份校验。

在一种可能的情况中,目标实例允许某一角色下的所有用户访问,在用户数量较多时,利用目标身份数据记录所有用户的身份信息会导致目标身份数据较大,每次查询也会需要较多事件。因此在对角色信息对应的目标身份校验数据进行筛选之前,还可以包括:

步骤31:判断角色信息对应的目标身份校验数据中是否存在身份通配符。

步骤32:若存在身份通配符,则确定通过身份校验。

步骤33:若不存在身份通配符,则执行对角色信息对应的目标身份校验数据进行筛选的步骤。

身份通配符的具体形式不做限定,例如可以为*,或者可以为#,或者可以为一段特殊序列,例如0001。若角色信息对应的目标身份校验数据中存在身份通配符,则说明该角色下的所有用户均可以访问目标实例,因此确定通过身份校验。若不存在身份通配符,则说明并不是该角色下的所有用户均可以对目标实例进行访问,因此需要执行步骤21。

S104:若角色校验和身份校验均通过,则允许访问目标实例。

若角色校验和身份校验均通过,则说明访问请求的发送方,即想要访问目标实例的用户可以以对应的角色对目标实例进行访问,因此可以允许访问目标实例。本实施例并不限定允许访问目标实例所采用的方式,例如可以利用令牌对访问请求进行响应,即将token发送给访问请求的发送方,以便发送方利用令牌对目标实例进行访问。

可以理解的是,在对针对目标实例的访问请求进行权限校验之前,需要先创建目标实例以及对应的用于校验的数据,因此还可以包括:

步骤41:若检测到新增实例,则生成新增实例对应的初始角色校验数据和初始身份校验数据。

步骤42:获取配置指令,并利用配置指令对初始角色校验数据和初始身份校验数据进行配置,得到角色校验数据和身份校验数据。

本实施例并不限定新增实例的具体方式,例如在获取到实例新增指令后,确定检测到新增实例,或者在检测到未检测到过的实例后,认为检测到新增实例。在确定存在新增实例后,可以生成新增实例对应的初始角色校验数据和初始身份校验数据,具体过程不做限定,例如可以为生成初始角色校验数据和初始身份校验数据,并建立新增实例与初始角色校验数据和初始身份校验数据之间的对应关系。初始角色校验数据和初始身份校验数据即为仅具有对应关系而不包含实际数据的校验数据。在生成完成后获取配置指令,利用配置指令对角色校验数据和身份校验数据进行配置,即在空白的校验数据中添加实际数据。需要说明的是,本实施例并不限定配置指令的具体获取方式,例如可以由发送方发送,或者可以在生成初始角色校验数据和初始身份校验数据后自动生成。配置指令的内容可以根据实际需要进行设置,具体内容不做限定。

在一种可行的实施方式中,身份校验数据和角色校验数据可以被修改。具体的,还可以包括:

步骤51:获取修改指令,并确定修改指令指定的待修改实例。

步骤52:利用修改指令对待修改实例对应的待修改角色校验数据和/或待修改身份校验数据进行修改。

具体的,修改指令中可以包括实例信息,用于对需要修改的实例进行指令。在确定修改指令指定的待修改实例后,根据修改指令对待修改角色校验数据和/或待修改身份校验数据进行修改,即对待修改角色校验数据进行修改,或对待修改身份校验数据进行修改,或同时对待修改角色校验数据和待修改身份校验数据进行修改。修改的具体方式不做限定,可以为新增、修改内容或删除部分内容。

在一种可行的实施方式中,还可以包括:

步骤61:获取删除指令,并确定删除指令指定的待删除实例。

步骤62:删除待删除实例对应的待删除角色校验数据和待删除身份校验数据。

在某些情况下,需要对校验数据进行较大的修改,或者想要删除对应的实例。在这种情况下,可以对角色校验数据和身份校验数据进行删除,以便重新配置角色校验数据和身份校验数据,或者避免任何人访问实例。确定待删除实例的具体方式可以参考上述说明,在此不再赘述。在确定待删除实例后,将其对应的待删除角色校验数据和待删除身份校验数据进行删除。

应用本申请实施例提供的权限检测方法,在获取到访问请求后,提取对应的目标实例的目标角色校验数据和目标身份校验数据。目标角色校验数据用于对发送方的角色等级进行校验,判断其是否具有足够的级别访问目标实例,目标身份校验数据用于对访问请求的发送方的身份进行校验,判断发送方在角色信息对应的角色下是否被允许访问该目标实例。因此利用目标角色校验数据对访问请求的角色进行校验,判断其角色等级是否满足要求。利用目标身份校验数据对访问请求的身份信息进行校验,判断在当前角色下请求访问的发送方是否被允许进行访问。若角色校验和身份校验均通过,即表明访问请求的发送方在采用角色信息对应的角色时被允许访问,因此可以允许访问目标实例。通过角色校验和身份校验的双重校验,可以将权限控制的粒度细分到单个用户,提高了权限控制的灵活程度,改善了权限控制的效果。

下面对本申请实施例提供的权限检测装置进行介绍,下文描述的权限检测装置与上文描述的权限检测方法可相互对应参照。

请参考图3,图3为本申请实施例提供的一种权限检测装置的结构示意图,包括:

提取模块110,用于获取目标实例对应的访问请求,并提取访问请求对应的角色信息和身份信息;

获取模块120,用于获取目标实例对应的角色校验数据和身份校验数据;

校验模块130,用于利用角色校验数据对角色信息进行角色校验,并利用身份校验数据对身份信息进行身份校验;

允许访问模块140,用于若角色校验和身份校验均通过,则允许访问目标实例。

可选地,校验模块130,包括:

第一筛选单元,用于对目标角色校验数据进行筛选,判断是否存在角色信息;

第一确定单元,用于若存在角色信息,则确定通过角色校验;

第二确定单元,用于若不存在角色信息,则确定不通过角色校验。

可选地,校验模块130,包括:

第二筛选单元,用于对角色信息对应的目标身份校验数据进行筛选,判断是否存在身份信息;

第三确定单元,用于若存在身份信息,则确定通过身份校验;

第四确定单元,用于若不存在身份信息,则确定不通过身份校验。

可选地,校验模块130,还包括:

通配符判断单元,用于判断角色信息对应的目标身份校验数据中是否存在身份通配符;

第五确定单元,用于若存在身份通配符,则确定通过身份校验;

相应的,第二筛选单元为若不存在身份通配符,则对角色信息对应的目标身份校验数据进行筛选的单元。

可选地,还包括:

生成模块,用于若检测到新增实例,则生成新增实例对应的初始角色校验数据和初始身份校验数据;

配置模块,用于获取配置指令,并利用配置指令对初始角色校验数据和初始身份校验数据进行配置,得到角色校验数据和身份校验数据。

可选地,还包括:

修改指令获取模块,用于获取修改指令,并确定修改指令指定的待修改实例;

修改模块,用于利用修改指令对待修改实例对应的待修改角色校验数据和/或待修改身份校验数据进行修改。

可选地,还包括:

删除指令获取模块用于获取删除指令,并确定删除指令指定的待删除实例;

删除模块,用于删除待删除实例对应的待删除角色校验数据和待删除身份校验数据。

下面对本申请实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的权限检测方法可相互对应参照。

请参考图4,图4为本申请实施例提供的一种电子设备的结构示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(I/O)接口104以及通信组件105中的一种或多种。

其中,处理器101用于控制电子设备100的整体操作,以完成上述的权限检测方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-OnlyMemory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。

多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:Wi-Fi部件,蓝牙部件,NFC部件。

电子设备100可以被一个或多个应用专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的权限检测方法。

下面对本申请实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的权限检测方法可相互对应参照。

本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的权限检测方法的步骤。

该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种使用权限检测方法、装置、电子设备及可读存储介质
  • 一种权限检测方法、装置、电子设备及可读存储介质
技术分类

06120112436908