CN112989294B - 鉴权方法、装置、服务器及存储介质 - Google Patents
鉴权方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN112989294B CN112989294B CN201911291374.2A CN201911291374A CN112989294B CN 112989294 B CN112989294 B CN 112989294B CN 201911291374 A CN201911291374 A CN 201911291374A CN 112989294 B CN112989294 B CN 112989294B
- Authority
- CN
- China
- Prior art keywords
- authentication
- processing unit
- node
- target
- sub
- 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.)
- Active
Links
Images
Classifications
-
- 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
- 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)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种鉴权方法、装置、服务器及存储介质。针对每个配置有子鉴权树的处理单元,获取携带有节点标识以及待鉴权用户的用户信息的鉴权请求。根据节点标识与子鉴权树的鉴权树编号之间的第一预设对应关系,确定配置有目标子鉴权树的目标处理单元,其中,目标子鉴权树包括该节点标识对应的目标节点。若该处理单元为目标处理单元,则将该待鉴权用户的用户信息与该目标子鉴权树中的用户信息进行匹配,确定该待鉴权用户的访问权限。若该处理单元不为目标处理单元,则将该鉴权请求发送给配置有该目标子鉴权树的另一处理单元。如此,能够在多个处理单元的情况下,准确确定出能够处理该鉴权请求的目标处理单元,提高了处理鉴权请求的效率。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种鉴权方法、装置、服务器及存储介质。
背景技术
在计算机软件系统中,用户在对资源进行访问之前,需要对用户进行鉴权是较为常见的应用场景。例如,在安防行业中,当用户要查看某台摄像机的实况视频时,系统需要鉴定用户是否拥有这台摄像机访问权限。
目前,针对需要鉴权的应用场景,可以通过查询数据库的方式来实现,但是在高并发的环境下,频繁的数据库查询会给数据库造成很大压力。因此,通过查询数据库的方式性能较差。基于Redis等分布式缓存技术实现的鉴权方案,虽然可以解决查询数据库所存在的问题,但是Redis等分布式缓存技术通过键值对的形式存储数据,无法很方便的组织该树状结构的权限信息,导致该树状结构的权限信息需要分布在不同的分布式节点中。当树状结构的权限信息层级关系较深时,一次鉴权请求可能需要在分布式节点之间发起多次网络请求以匹配存储在多个分布式节点中的权限信息;因此,会对鉴权的效率造成影响。
发明内容
为了克服背景技术中的至少一个不足,本申请实施例的目的之一在于提供一种鉴权方法,应用于包括多个处理单元的分布式鉴权系统,每个处理单元配置有子鉴权树,每个子鉴权树分配有鉴权树编号,所述子鉴权树包括主鉴权树的根节点、中间节点以及部分叶子节点,每个节点记录有用户的用户信息,所述用户拥有该节点所对应资源的访问权限以及该节点关联的子孙节点所对应资源的访问权限,所述方法包括:
针对每个处理单元,获取鉴权请求,所述鉴权请求携带有节点标识以及待鉴权用户的用户信息;
根据所述节点标识与所述鉴权树之间的预设对应关系,确定配置有目标子鉴权树的目标处理单元,其中,目标子鉴权树包括该节点标识对应的目标节点;
若该处理单元为所述目标处理单元,则将该待鉴权用户的用户信息与该目标子鉴权树中的用户信息进行匹配,确定该待鉴权用户的访问权限;
若该处理单元不为所述目标处理单元,则将该鉴权请求发送给配置有该目标子鉴权树的另一处理单元。
可选地,将该待鉴权用户的用户信息与该目标子鉴权树中的用户信息进行匹配,确定该待鉴权用户的访问权限的步骤,包括:
将所述待鉴权用户的用户信息与该目标节点中记录的用户信息以及与该目标节点关联的祖先节点中记录的用户信息进行匹配;
若匹配成功,则所述待鉴权用户对该目标节点所对应资源拥有访问权限;
若匹配失败,则所述待鉴权用户对该目标节点所对应资源没有访问权限。
可选地,所述另一处理单元为主处理单元或者备用处理单元;所述将该鉴权请求发送给配置有该目标子鉴权树的另一处理单元的步骤,包括:
检测所述主处理单元是否正常工作;
若所述主处理单元发生故障,则将所述鉴权请求发送给所述备用处理单元。
可选地,所述节点标识为非叶子节点标识或者叶子节点标识;所述叶子节点标识对应有叶子节点的编号,所述根据所述节点标识与所述鉴权树之间的预设对应关系,确定配置有目标子鉴权树的目标处理单元的步骤包括:
若该节点标识为非叶子节点标识,则确定该处理单元为所述目标处理单元;
若该节点标识为叶子节点标识,则根据所述叶子节点的编号与所述鉴权树编号之间的第二预设对应关系,确定配置有所述目标子鉴权树的目标处理单元。
可选地,所述获取鉴权请求之前,还包括步骤:
解析获取到的所述主鉴权树;
提取所述主鉴权树中的根节点、中间节点以及部分叶子节点以获得所述子鉴权树,其中,所述子鉴权树中的叶子节点的节点编号满足所述第二预设对应关系。
可选地,所述第二预设对应关系为所述叶子节点的编号与预设子鉴权树索引参数之间的余数等于包括该叶子节点的子鉴权树的鉴权树编号,其中,所述子鉴权树的数量不大于该预设子鉴权树索引参数。
本申请实施例的目的之二在于提供一种鉴权装置,应用于包括多个处理单元的分布式鉴权系统,每个处理单元配置有子鉴权树,每个子鉴权树分配有鉴权树编号,所述子鉴权树包括主鉴权树的根节点、中间节点以及部分叶子节点,每个节点记录有用户的用户信息,所述用户拥有该节点所对应资源的访问权限以及该节点关联的子孙节点所对应资源的访问权限,所述鉴权装置包括请求获取模块、目标确定模块、权限鉴定模块以及请求发送模块;
所述请求获取模块用于针对每个处理单元,获取鉴权请求,所述鉴权请求携带有节点标识以及待鉴权用户的用户信息;
所述目标确定模块用于根据所述节点标识与所述鉴权树之间的预设对应关系,确定配置有目标子鉴权树的目标处理单元,其中,目标子鉴权树包括该节点标识对应的目标节点;
所述权限鉴定模块用于若该处理单元为所述目标处理单元,则将该待鉴权用户的用户信息与该目标子鉴权树中的用户信息进行匹配,确定该待鉴权用户的访问权限;
所述请求发送模块用于若该处理单元不为所述目标处理单元,则将该鉴权请求发送给配置有该目标子鉴权树的另一处理单元。
可选地,该权限鉴定模块通过以下方式确定该待鉴权用户的访问权限:
将所述待鉴权用户的用户信息与该目标节点中记录的用户信息以及与该目标节点关联的祖先节点中记录的用户信息进行匹配;
若匹配成功,则所述待鉴权用户对该目标节点所对应资源拥有访问权限;
若匹配失败,则所述待鉴权用户对该目标节点所对应资源没有访问权限。
本申请实施例的目的之三在于提供一种服务器,该服务器包括处理器以及存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令时,实现所述鉴权方法。
本申请实施例的目的之四在于提供一种存储介质,其上存储有计算机程序,所述计算机程序经处理器执行时,实现所述鉴权方法。
相对于现有技术而言,本申请具有以下有益效果:
本申请实施例提供一种鉴权方法、装置、服务器及存储介质。通过将记录有完整用户信息的主鉴权树拆分成多个子鉴权树,并配置于各处理单元,不仅缓解单个主鉴权树对存储空间需求的压力,还提高了处理鉴权请求的并发能力。同时,基于节点标识与所述鉴权树之间的第一预设对应关系,使得任意处理单元在接收到鉴权请求后,能够确定出配置有目标子鉴权树的目标处理单元,将该鉴权请求交由该目标处理单元进行处理。继而,能够在多个处理单元的情况下,准确确定出能够处理该鉴权请求的目标处理单元,提高了处理鉴权请求的效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的鉴权树的结构示意图;
图2为本申请实施例提供的鉴权方法的步骤流程图;
图3为本申请实施例提供的主鉴权树拆分示意图;
图4为本申请实施例提供的鉴权装置的结构示意图;
图5为本申请实施例提供的服务器的硬件结构图。
图标:510-鉴权装置;5101-请求获取模块;5102-目标确定模块;5103-权限鉴定模块;5104-请求发送模块;500-服务器;520-存储器;530-处理器;540-通信单元。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如背景技术部分所介绍,基于Redis等分布式缓存技术实现的鉴权方案通过键值对的形式存储数据,无法很方便的组织树状结构的权限信息;继而导致该树状结构的权限信息需要分布在不同的分布式节点中。当树状结构的权限信息层级关系较深时,一次鉴权请求可能需要在分布式节点之间发起多次网络请求以匹配存储在多个分布式节点中的权限信息,因此,会对鉴权的效率造成影响。
鉴于此,本申请实施例提供一种鉴权方法,应用于包括多个处理单元的分布式鉴权系统,每个处理单元配置有子鉴权树,每个子鉴权树分配有鉴权树编号,所述子鉴权树包括主鉴权树的根节点、中间节点以及部分叶子节点,每个节点记录有用户的用户信息,所述用户拥有该节点所对应资源的访问权限以及该节点关联的子孙节点所对应资源的访问权限。
其中,针对该鉴权树,请参照图1,作为一种可能的实施方式,该鉴权树包括根节点、中间节点A、中间节点B、中间节点C以及中间节点D。其中,该中间节点包括叶子节点A和叶子节点B。上述每个节点对应一现实场景中的资源。例如,现实场景中某摄像机。
针对该鉴权树中任意一目标节点,该目标节点记录有用户的用户信息,该用户能够访问该目标节点对应的资源,以及与该目标节点关联的子孙节点所对应的资源。例如,中间节点A中记录有A用户的用户信息,则该A用户能够访问中间节点A、中间节点C、中间节点D、叶子节点A以及叶子节点B所对应的资源。
请参照图2,图2为本申请实施例提供的该鉴权方法的步骤流程图,以下将对所述方法包括各个步骤进行详细阐述。
步骤S100,针对每个处理单元,获取鉴权请求,所述鉴权请求携带有节点标识以及待鉴权用户的用户信息。
步骤S200,根据所述节点标识与所述鉴权树编号之间的第一预设对应关系,确定配置有目标子鉴权树的目标处理单元,其中,目标子鉴权树包括该节点标识对应的目标节点。
应理解,由于将主鉴权树拆分成了多个子鉴权树,使得各子鉴权树仅记录有主鉴权树的部分用户信息。因此,针对不同的鉴权请求,需要不同的处理单元来进行处理。
步骤S300,若该处理单元为所述目标处理单元,则将该待鉴权用户的用户信息与该目标子鉴权树中的用户信息进行匹配,确定该待鉴权用户的访问权限。
步骤S400,若该处理单元不为所述目标处理单元,则将该鉴权请求发送给配置有该目标子鉴权树的另一处理单元。
如此,将记录有完整用户信息的主鉴权树拆分成多个子鉴权树,并配置于各处理单元,既缓解单个主鉴权树对内存需求的压力,又提高了处理鉴权请求的并发能力。同时,基于节点标识与所述鉴权树之间的第一预设对应关系,使得任意处理单元在接收到鉴权请求后,能够确定出配置有目标子鉴权树的目标处理单元,将该鉴权请求交由该目标处理单元进行处理。继而,能够在多个处理单元的情况下,准确确定出能够处理该鉴权请求的目标处理单元,提高了处理鉴权请求的效率。
同时,各个子鉴权树的数量,可以根据实际的使用常规进行增加或者缩减,因而该分布式鉴权系统具有较好的扩展性。
可选地,在获取鉴权请求之前,各处理单元需要事先配置子鉴权树。基于此,该处理单元获取该主鉴权树并进行解析;提取出该主鉴权树的根节点以及中间节点以及部分叶子节点以获得子鉴权树。其中,该子鉴权树的叶子节点的编号与预设子鉴权树索引参数之间满足第二预设对应关系。
应理解,每个子鉴权树预先配置有鉴权树编号,鉴权树中的各叶子节点预先配置有叶子节点的编号。作为一种可能的实施方式,该第二预设对应关系可以为所述叶子节点的编号与预设子鉴权树索引参数之间的余数等于包括该叶子节点的子鉴权树的鉴权树编号,其中,所述子鉴权树的数量不大于该预设子鉴权树索引参数。
针对该第二预设对应关系,请参照图3,在一种可能的示例中,该主鉴权树包括:
编号为100的叶子节点A、编号为101的叶子节点B、编号为102的叶子节点C、编号为103的叶子节点D、编号为104的叶子节点E、编号为105的叶子节点F。
若该预设子鉴权树索引参数为3,由于子鉴权树的数量不大于该预设子鉴权树索引参数,则将可以该主鉴权树拆分成3个子鉴权树,分别为鉴权树编号为0的个子鉴权树A、鉴权树编号为1的个子鉴权树B以及鉴权树编号为2的个子鉴权树C。
例如,若该处理单元需要配置鉴权树编号为0的子鉴权树,该预设子鉴权树索引参数为3,则选取编号为102的叶子节点C以及编号为105的叶子节点F作为该鉴权树编号为0的子鉴权树的叶子节点。
作为另外一种可能的实施方式,该第二预设对应关系还可以是所述叶子节点的编号的所属区间的区间编号与包括该叶子节点的子鉴权树的编号相同,其中,所述区间为按照预设拆分规则将主鉴权树的各叶子节点的编号拆成的多个编号范围。
例如,若该主鉴权树包括1000个叶子节点,该处理单元将各叶子节点按照编号从小到大进行排序,并拆分成10个区间,每个区间包括100个叶子节点。该处理单元对各区间从0-10进行编号,使得每个编号对应一个鉴权树的鉴权树编号。
值得说明的是,将记录有完整用户信息的主鉴权树拆分成多个子鉴权树的方式,不仅限于上述示例,还可以是其他方式,只要能建立叶子节点的编号与子鉴权树的鉴权树编号之间的对应关系即可,本申请实施例不做具体限定。
如此,该分布式鉴权系统中的各子鉴权树均包括该主鉴权树的根节点、中间节点以及部分叶子节点,且该叶子节点的编号与子鉴权树的鉴权树编号之间满足该第二预设对应关系。
基于上述原理,该处理单元在获取到鉴权请求后,针对根据该节点标识与子鉴权树之间的第一预设对应关系,确定目标处理单元时,作为一种可能的实施方式,获取该鉴权请求中携带的节点标识以及待鉴权用户信息,所述节点标识为非叶子节点标识或者叶子节点标识;所述叶子节点标识对应有叶子节点的编号。
该处理单元在检测出该节点标识为非叶子节点标识时,则说明该待鉴权用户的用户信息位于中间节点或者根节点中。由于,该分布式鉴权系统中的每个处理单元所配置的子鉴权树均包括该主鉴权树的根节点以及中间节点,因此,接收该鉴权请求的处理单元可以作为配置有目标子鉴权树的目标处理单元,无需将鉴权请求发送给其他处理单元,减少了由网络交互带来的性能损耗。当然,也可以将该分布式鉴权系统中的任意处理单元作为配置有目标子鉴权树的目标处理单元。
该处理单元根据与该非叶子节点标识对应的节点索引标识,索引该目标子鉴权树中的中间节点以及根节点,确定其中与该节点索引标识对应的目标节点;将所述待鉴权用户的用户信息与该目标节点中记录的用户信息以及与该目标节点关联的祖先节点中记录的用户信息进行匹配,以确定该待鉴权用户的访问权限。
该处理单元在检测出该节点标识为叶子节点标识时,获取所述叶子节点标识对应的叶子节点的编号;计算该叶子节点的编号与预设子鉴权树索引参数的余数。
进一步地,该处理单元将所述余数与配置的子鉴权树的鉴权树编号进行比较,若所述余数与配置的子鉴权树的鉴权树编号相同,则接收该鉴权请求的处理单元为所述目标处理单元。
若所述余数与配置的子鉴权树的鉴权树编号不相同,则接收该鉴权请求的处理单元不为所述目标处理单元。
针对该节点索引标识以及该叶子节点的编号,作为一种可能的实施方式,该节点索引标识可以是公司中某个部门的唯一编号,该叶子节点的编号为属于该部门的员工的工牌号码。
例如,在一种可能的示例中,该叶子节点标识对应的叶子节点的编号为103,该预设子鉴权树索引参数为3,该处理单元配置的子鉴权树的鉴权树编号为0。由于103/3的余数为1,该处理单元的配置的子鉴权树的鉴权树编号为0,因此,该处理单元未配置有该目标子鉴权树。
同时,由于103/3的余数为1,可以确定鉴权树编号为1的子鉴权树为目标子鉴权树;因此该处理单元将该鉴权请求发送给配置有该目标子鉴权树的另一处理单元。
将该鉴权请求发送给配置有该目标子鉴权树的另一处理单元时,作为一种可能的实施方式,每个处理单元记录有其他处理单元所配置的子鉴权树的鉴权树编号。基于此,该处理单元将该余数与记录的其他处理单元所配置的子鉴权树的鉴权树编号进行比较,确定配置有该目标子鉴权树的另一处理单元。
由于该分布式鉴权系统中的各个处理单元,在工作过程中可能会发生故障。基于此,该另一处理单元为主处理单元或者备用处理单元,以达到处理单元的冗余,使得其中一个主处理单元发生故障时,备用处理单元能够代替该主处理单元继续工作。
具体的,该处理单元检测所述主处理单元是否正常工作;若所述主处理单元发生故障,则将所述鉴权请求发送给所述备用处理单元。
其中,该处理单元检测所述主处理单元是否正常工作时,作为一种可能的实施方式,该处理单元可以向该主处理单元发送探测报文,根据是否获取到该主处理单的响应报文以检测主处理单元是否发生故障。例如,若未收到该主处理单的响应报文,则确定该主处理单元是发生故障。
该处理单元将所述鉴权请求发送给所述备用处理单元时,作为一种可能的实施方式,该处理单元记录有其他处理单元所配置的备用子鉴权树的鉴权树编号。在该主处理单元发生故障后,该处理单元根据记录的其他处理单元所配置的备用子鉴权树的鉴权树编号,确定该备用处理单元;将该鉴权请求发送给备用处理单元。
例如,在一种可能的示例中,该叶子节点标识对应的叶子节点的编号为103,该预设子鉴权树索引参数为3,该处理单元配置的子鉴权树的鉴权树编号为0。由于103/3的余数为1,该处理单元的配置的子鉴权树的鉴权树编号为0,因此,该处理单元未配置有该目标子鉴权树。该处理单元根据记录的其他处理单元所配置的子鉴权树的鉴权树编号,确定该配置有目标子鉴权树的主处理单元,其中,该目标子鉴权树的鉴权树编号为1。
若主处理单元发生故障后,该处理单元根据记录的其他处理单元所配置的备用子鉴权树的鉴权树编号,确定配置有目标子鉴权树的备用处理单元,并将鉴权请求发送给备用处理单元。
值得说明的是,该备用处理单元的数量不仅限于一个,还可以是多个,本申请实施例不做具体的限制。
请参照图4,本申请实施例还提供一种鉴权装置510,应用于包括多个处理单元的分布式鉴权系统,每个处理单元配置有子鉴权树,每个子鉴权树分配有鉴权树编号,所述子鉴权树包括主鉴权树的根节点、中间节点以及部分叶子节点,每个节点记录有用户的用户信息,所述用户拥有该节点所对应资源的访问权限以及该节点关联的子孙节点所对应资源的访问权限。从功能上划分,该鉴权装置510可以包括请求获取模块5101、目标确定模块5102、权限鉴定模块5103以及请求发送模块5104。
该请求获取模块5101用于针对每个处理单元,获取鉴权请求,所述鉴权请求携带有节点标识以及待鉴权用户的用户信息。
在本申请实施例中,该请求获取模块5101用于执行图1中的步骤S100,关于该请求获取模块5101的详细描述,可以参考步骤S100的详细描述。
该目标确定模块5102用于根据所述节点标识与所述鉴权树之间的第一预设对应关系,确定配置有目标子鉴权树的目标处理单元,其中,目标子鉴权树包括该节点标识对应的目标节点。
在本申请实施例中,该目标确定模块5102用于执行图1中的步骤S200,关于该目标确定模块5102的详细描述,可以参考步骤S200的详细描述。
该权限鉴定模块5103用于若确定该处理单元为所述目标处理单元,则将该待鉴权用户的用户信息与该目标子鉴权树中的用户信息进行匹配,确定该待鉴权用户的访问权限。
在本申请实施例中,该权限鉴定模块5103用于执行图1中的步骤S300,关于该权限鉴定模块5103的详细描述,可以参考步骤S300的详细描述。
该请求发送模块5104用于若确定该处理单元不为所述目标处理单元,则将该鉴权请求发送给配置有该目标子鉴权树的另一处理单元。
在本申请实施例中,该请求发送模块5104用于执行图1中的步骤S300,关于该请求发送模块5104的详细描述,可以参考步骤S300的详细描述。
可选地,该权限鉴定模块5103通过以下方式确定该待鉴权用户的访问权限:
将所述待鉴权用户的用户信息与该目标节点中记录的用户信息以及与该目标节点关联的祖先节点中记录的用户信息进行匹配。
若匹配成功,则所述待鉴权用户对该目标节点所对应资源拥有访问权限。
若匹配失败,则所述待鉴权用户对该目标节点所对应资源没有访问权限。
请参照图5,本申请实施例还提供一种服务器500,该服务器500包括处理器530以及存储器520,所述存储器520存储有能够被所述处理器530执行的机器可执行指令,所述处理器执行所述机器可执行指令时,实现该鉴权方法。
可选地,该服务器500还包括通信单元以及鉴权装置510。所述存储器520、处理器530以及通信单元540各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述鉴权装置510包括至少一个可以软件或固件(firmware)的形式存储于所述存储器520中或固化在所述服务器500的操作系统(operating system,OS)中的软件功能模块。所述处理器530用于执行所述存储器520中存储的可执行模块,例如所述鉴权装置510所包括的软件功能模块及计算机程序等。
其中,所述存储器520可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器520用于存储程序,所述处理器530在接收到执行指令后,执行所述程序。所述通信单元540用于通过所述网络收发数据。
所述处理器530可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序经处理器执行时,实现该鉴权方法。
综上所述,本申请实施例提供的鉴权方法、装置、服务器及存储介质。通过将记录有完整用户信息的主鉴权树拆分成多个子鉴权树,并配置于各处理单元,既缓解单个主鉴权树对内存需求的压力,又提高了处理鉴权请求的并发能力。同时,基于节点标识与所述鉴权树之间的第一预设对应关系,使得任意处理的单元在接收到鉴权请求后,能够确定出配置有目标子鉴权树的目标处理单元,将该鉴权请求交由该目标处理单元进行处理。继而,能够在多个处理单元的情况下,确定出能够处理该鉴权请求的目标处理单元,提高了处理鉴权请求的效率。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种鉴权方法,其特征在于,应用于包括多个处理单元的分布式鉴权系统,每个处理单元配置有子鉴权树,所述子鉴权树包括主鉴权树的根节点、中间节点以及部分叶子节点,每个节点记录有用户的用户信息,所述用户拥有该节点所对应资源的访问权限以及该节点关联的子孙节点所对应资源的访问权限,所述方法包括:
针对每个处理单元,获取鉴权请求,所述鉴权请求携带有节点标识以及待鉴权用户的用户信息;
根据所述节点标识与所述子鉴权树之间的第一预设对应关系,确定配置有目标子鉴权树的目标处理单元,其中,该目标子鉴权树包括该节点标识对应的目标节点;
若该处理单元为所述目标处理单元,则将该待鉴权用户的用户信息与该目标子鉴权树中的用户信息进行匹配,确定该待鉴权用户的访问权限;
若该处理单元不为所述目标处理单元,则将该鉴权请求发送给配置有该目标子鉴权树的另一处理单元。
2.根据权利要求1所述的鉴权方法,其特征在于,将该待鉴权用户的用户信息与该目标子鉴权树中的用户信息进行匹配,确定该待鉴权用户的访问权限的步骤,包括:
将所述待鉴权用户的用户信息与该目标节点中记录的用户信息以及与该目标节点关联的祖先节点中记录的用户信息进行匹配;
若匹配成功,则所述待鉴权用户对该目标节点所对应资源拥有访问权限;
若匹配失败,则所述待鉴权用户对该目标节点所对应资源没有访问权限。
3.根据权利要求1所述的鉴权方法,其特征在于,所述另一处理单元为主处理单元或者备用处理单元;所述将该鉴权请求发送给配置有该目标子鉴权树的另一处理单元的步骤,包括:
检测所述主处理单元是否正常工作;
若所述主处理单元发生故障,则将所述鉴权请求发送给所述备用处理单元。
4.根据权利要求1所述的鉴权方法,其特征在于,每个子鉴权树分配有鉴权树编号,所述节点标识为非叶子节点标识或者叶子节点标识;所述叶子节点标识对应有叶子节点的编号,所述根据所述节点标识与所述子鉴权树之间的第一预设对应关系,确定配置有目标子鉴权树的目标处理单元的步骤包括:
若该节点标识为非叶子节点标识,则确定该处理单元为所述目标处理单元;
若该节点标识为叶子节点标识,则根据所述叶子节点的编号与所述鉴权树编号之间的第二预设对应关系,确定配置有所述目标子鉴权树的目标处理单元。
5.根据权利要求4所述的鉴权方法,其特征在于,所述获取鉴权请求之前,还包括步骤:
解析获取到的所述主鉴权树;
提取所述主鉴权树中的根节点、中间节点以及部分叶子节点以获得所述子鉴权树,其中,所述子鉴权树中的叶子节点的节点编号满足所述第二预设对应关系。
6.根据权利要求4-5任一项所述的鉴权方法,其特征在于,所述第二预设对应关系为所述叶子节点的编号与预设子鉴权树索引参数之间的余数等于包括该叶子节点的子鉴权树的鉴权树编号,其中,所述子鉴权树的数量不大于该预设子鉴权树索引参数。
7.一种鉴权装置,其特征在于,应用于包括多个处理单元的分布式鉴权系统,每个处理单元配置有子鉴权树,每个子鉴权树分配有鉴权树编号,所述子鉴权树包括主鉴权树的根节点、中间节点以及部分叶子节点,每个节点记录有用户的用户信息,所述用户拥有该节点所对应资源的访问权限以及该节点关联的子孙节点所对应资源的访问权限,所述鉴权装置包括请求获取模块、目标确定模块、权限鉴定模块以及请求发送模块;
所述请求获取模块用于针对每个处理单元,获取鉴权请求,所述鉴权请求携带有节点标识以及待鉴权用户的用户信息;
所述目标确定模块用于根据所述节点标识与所述鉴权树之间的预设对应关系,确定配置有目标子鉴权树的目标处理单元,其中,目标子鉴权树包括该节点标识对应的目标节点;
所述权限鉴定模块用于若该处理单元为所述目标处理单元,则将该待鉴权用户的用户信息与该目标子鉴权树中的用户信息进行匹配,确定该待鉴权用户的访问权限;
所述请求发送模块用于若该处理单元不为所述目标处理单元,则将该鉴权请求发送给配置有该目标子鉴权树的另一处理单元。
8.根据权利要求7所述的鉴权装置,其特征在于,该权限鉴定模块通过以下方式确定该待鉴权用户的访问权限:
将所述待鉴权用户的用户信息与该目标节点中记录的用户信息以及与该目标节点关联的祖先节点中记录的用户信息进行匹配;
若匹配成功,则所述待鉴权用户对该目标节点所对应资源拥有访问权限;
若匹配失败,则所述待鉴权用户对该目标节点所对应资源没有访问权限。
9.一种服务器,其特征在于,该服务器包括处理器以及存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令时,实现如权利要求1-6任一项所述的鉴权方法。
10.一种存储介质,其特征在于,其上存储有计算机程序,所述计算机程序经处理器执行时,实现如权利要求1-6任一项所述的鉴权方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911291374.2A CN112989294B (zh) | 2019-12-16 | 2019-12-16 | 鉴权方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911291374.2A CN112989294B (zh) | 2019-12-16 | 2019-12-16 | 鉴权方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112989294A CN112989294A (zh) | 2021-06-18 |
CN112989294B true CN112989294B (zh) | 2022-08-23 |
Family
ID=76343034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911291374.2A Active CN112989294B (zh) | 2019-12-16 | 2019-12-16 | 鉴权方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112989294B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866360A (zh) * | 2010-06-28 | 2010-10-20 | 北京用友政务软件有限公司 | 基于对象多维属性空间的数据仓库鉴权方法及系统 |
CN102831017A (zh) * | 2012-08-31 | 2012-12-19 | 河海大学 | 一种高效分布式并行鉴权系统 |
GB201404187D0 (en) * | 2014-03-10 | 2014-04-23 | Ibm | User authentication |
CN107239569A (zh) * | 2017-06-27 | 2017-10-10 | 郑州云海信息技术有限公司 | 一种分布式文件系统子树存储方法及装置 |
CN107506655A (zh) * | 2017-08-08 | 2017-12-22 | 北京盛华安信息技术有限公司 | 数据权限分配与访问控制的方法 |
CN109242420A (zh) * | 2018-08-22 | 2019-01-18 | 中国平安人寿保险股份有限公司 | 权限控制方法、装置、电子设备及存储介质 |
CN109889524A (zh) * | 2019-02-26 | 2019-06-14 | 浪潮软件集团有限公司 | 一种基于树的云计算应用系统的鉴权装置及方法 |
CN110032886A (zh) * | 2019-02-25 | 2019-07-19 | 上德(珠海)数据科技有限公司 | 资源权限管理的方法及设备 |
CN110113369A (zh) * | 2019-06-27 | 2019-08-09 | 无锡华云数据技术服务有限公司 | 一种基于角色权限控制的鉴权方法 |
CN110569657A (zh) * | 2019-09-10 | 2019-12-13 | 北京字节跳动网络技术有限公司 | 一种数据访问方法、装置、设备及存储介质 |
-
2019
- 2019-12-16 CN CN201911291374.2A patent/CN112989294B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866360A (zh) * | 2010-06-28 | 2010-10-20 | 北京用友政务软件有限公司 | 基于对象多维属性空间的数据仓库鉴权方法及系统 |
CN102831017A (zh) * | 2012-08-31 | 2012-12-19 | 河海大学 | 一种高效分布式并行鉴权系统 |
GB201404187D0 (en) * | 2014-03-10 | 2014-04-23 | Ibm | User authentication |
CN107239569A (zh) * | 2017-06-27 | 2017-10-10 | 郑州云海信息技术有限公司 | 一种分布式文件系统子树存储方法及装置 |
CN107506655A (zh) * | 2017-08-08 | 2017-12-22 | 北京盛华安信息技术有限公司 | 数据权限分配与访问控制的方法 |
CN109242420A (zh) * | 2018-08-22 | 2019-01-18 | 中国平安人寿保险股份有限公司 | 权限控制方法、装置、电子设备及存储介质 |
CN110032886A (zh) * | 2019-02-25 | 2019-07-19 | 上德(珠海)数据科技有限公司 | 资源权限管理的方法及设备 |
CN109889524A (zh) * | 2019-02-26 | 2019-06-14 | 浪潮软件集团有限公司 | 一种基于树的云计算应用系统的鉴权装置及方法 |
CN110113369A (zh) * | 2019-06-27 | 2019-08-09 | 无锡华云数据技术服务有限公司 | 一种基于角色权限控制的鉴权方法 |
CN110569657A (zh) * | 2019-09-10 | 2019-12-13 | 北京字节跳动网络技术有限公司 | 一种数据访问方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112989294A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110460587B (zh) | 一种异常账号检测方法、装置及计算机存储介质 | |
CN108932184B (zh) | 监控装置及方法 | |
US10097569B2 (en) | System and method for tracking malware route and behavior for defending against cyberattacks | |
CN107844274B (zh) | 基于超融合存储系统的硬件资源管理方法、装置及终端 | |
US10262122B2 (en) | Analysis apparatus, analysis system, analysis method, and analysis program | |
CN108881271B (zh) | 一种代理主机的反向追踪溯源方法及装置 | |
JP6633642B2 (ja) | 分散データベースにおけるデータブロックを処理する方法およびデバイス | |
CN113132311A (zh) | 异常访问检测方法、装置和设备 | |
CN112202633B (zh) | 区块链网络的测试方法、装置、电子设备及可读存储介质 | |
CN111291002B (zh) | 文件对账方法、装置、计算机设备及存储介质 | |
CN114389871A (zh) | 一种账号异常登录自动分析方法和装置 | |
CN112306383A (zh) | 执行作业的方法、计算节点、管理节点及计算设备 | |
CN112989294B (zh) | 鉴权方法、装置、服务器及存储介质 | |
CN111756745B (zh) | 告警方法、告警装置、终端设备及计算机可读存储介质 | |
CN116633666A (zh) | 网络异常行为检测方法、装置、电子设备及存储介质 | |
JP2020004127A (ja) | コンピュータ資産管理システムおよびコンピュータ資産管理方法 | |
CN111767168B (zh) | 基于区块链的便于数据回溯的存储系统 | |
CN113204476A (zh) | 一种用户行为数据安全检测方法 | |
CN111368294B (zh) | 病毒文件的识别方法和装置、存储介质、电子装置 | |
CN113609111A (zh) | 一种大数据测试方法及系统 | |
CN113392067A (zh) | 一种针对分布式数据库的数据处理方法、装置及系统 | |
CN111241376A (zh) | 多级信息匹配方法、装置及云服务平台 | |
CN116663068B (zh) | 联盟链归档方法、相关装置和介质 | |
CN111427871A (zh) | 数据处理方法、装置、设备 | |
CN117093582A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |