CN110113369A - 一种基于角色权限控制的鉴权方法 - Google Patents
一种基于角色权限控制的鉴权方法 Download PDFInfo
- Publication number
- CN110113369A CN110113369A CN201910565801.5A CN201910565801A CN110113369A CN 110113369 A CN110113369 A CN 110113369A CN 201910565801 A CN201910565801 A CN 201910565801A CN 110113369 A CN110113369 A CN 110113369A
- Authority
- CN
- China
- Prior art keywords
- data area
- role
- user
- access request
- authentication information
- 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
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
-
- 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/105—Multiple levels of security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种基于角色权限控制的鉴权方法,该鉴权方法包括以下步骤:S1、在为用户分配角色时定义出与角色适配的数据范围;S2、获取用户的所有角色并确定不同角色所对应的数据范围及鉴权信息;S3、接收用户发起的访问请求,并仅在用户发起的访问请求中所包含的当前角色所对应的数据范围与鉴权信息所对应的数据范围匹配时,响应用户发起的访问请求。本发明所揭示的一种基于角色权限控制的鉴权方法,克服了现有技术中基于RBAC的角色权限控制中权限控制不灵活且控制粒度不够细腻的缺陷,并能够兼容公有云、私有云及混合云的使用环境,且不需要预先为用户分配角色所对应的资源,提高了鉴权策略的灵活性。
Description
技术领域
本发明涉及计算机权限管理技术领域,尤其涉及一种基于角色权限控制的鉴权方法。
背景技术
目前,大多数信息化系统在解决系统数据的权限方面,大多采用传统的RBAC(Role-Based Access Control)模型,将数据的权限分配在中间可以复用的载体上,即很多系统是分配在角色上,用户通过继承角色来获得权限。
基于RBAC模型的角色权限控制,其通常预先定义角色,将角色分配一定的权限,然后给用户赋予角色,即对用户授予对应的权限。然而,在RBAC模型中由于授权只定义了操作,而没有定义数据范围,比如用户被授予查询云主机的权限,那么查询任何一台云主机都是鉴权通过的,因此导致了无法细分其他用户或者管理员或别的组织的云主机不可见。
同时,现有技术中存在基于策略的角色权限控制,其首先使用特定语言描述了操作权限和资源(资源视为一种数据范围)以及条件,然后将策略赋予给对应的用户,从而为用户赋予具数据范围的操作权限。该现有技术同样存在一定缺陷。
由于基于策略的角色权限控制中,为用户定义策略的前提是该用户对既定数据范围的资源拥有操作权限,并将将这些资源通过划分给下属的子账号。因此,基于策略的角色权限控制更适用于公有云场景,而在私有云场景中,由于存在多个不同的数据范围,比如一个或多个租户,一个或多个部门,一个或多个项目。因此,在私有云场景中如果基于策略的角色权限控制,则由于数据范围是动态变化的,因此导致无法根据动态变化的数据范围为用户定义恰当的策略。
发明内容
本发明的目的在于揭示一种基于角色权限控制的鉴权方法,用以实现互联网业务中细粒度地控制用户发起的访问请求的控制权限,克服现有技术中基于策略的角色权限控制不适合私有云环境中的权限控制,同时克服传统的RBAC模型的角色权限控制中权限控制不灵活且控制粒度不够细腻的缺陷。
为实现上述发明目的,本申请首先提供了一种基于角色权限控制的鉴权方法,包括以下步骤:
S1、在为用户分配角色时定义出与角色适配的数据范围;
S2、获取用户的所有角色并确定不同角色所对应的数据范围及鉴权信息;
S3、接收用户发起的访问请求,并仅在用户发起的访问请求中所包含的当前角色所对应的数据范围与鉴权信息所对应的数据范围匹配时,响应用户发起的访问请求。
作为本发明的进一步改进,所述步骤S2还包括:对不同角色所对应的鉴权信息执行缓存操作,所述鉴权信息被保存至存储介质中。
作为本发明的进一步改进,所述步骤S2还包括:判断是否存在与不同角色所对应的鉴权信息;
若是,则直接调用被执行缓存操作所对应的鉴权信息;
若否,则为用户从新定义角色所对应的数据范围及鉴权信息。
作为本发明的进一步改进,所述存储介质为Redis缓存、数据中心、数据库、内存、文件系统、分布式存储系统、机械磁盘或者闪存。
作为本发明的进一步改进,所述角色适配的数据范围包括:角色所对应的数据操作类型及角色所对应的数据范围的实例集;其中,
所述数据操作类型包括:Query请求或者Command请求;
所述数据范围的实例集包括:Self数据范围的实例集、Project数据范围的实例集、Vdc数据范围的实例集或者Syetem数据范围的实例集。
作为本发明的进一步改进,所述步骤S3中的“接收用户发起的访问请求”具体为:
判断用户发起的访问请求的类型并确定用户属性集合;
根据用户发起的访问请求的类型查询API定义,以通过查询到的API定义确定用户发起的访问请求中所包含的当前角色所对应的数据范围。
作为本发明的进一步改进,所述用户属性集合由用户类型、用户ID、用户名称、用户隶属关系中的一种或者几种共同描述;
其中,所述用户类型区分为管理员、注册用户或者临时用户。
作为本发明的进一步改进,所述步骤S3还包括:
根据用户发起的访问请求的类型所确定的API定义,获取计算数据范围的转化规则,计算数据范围实例ID,并判断角色所对应的数据操作类型;
当数据操作类型是Query请求时,判断访问请求所对应的数据范围中是否存在数据范围实例ID;
若是,则进一步判断访问请求中所包含的当前角色所对应的鉴权信息是否存在数据范围实例ID,若存在数据范围实例ID,则通过鉴权认证,若不存在数据范围实例ID,则拒绝鉴权认证;
若否,则从鉴权信息中获取当前角色所对应的数据范围实例ID;
当数据操作类型是Command请求时,判断访问请求所对应的鉴权信息中是否存在相互匹配的数据范围;
若否,则拒绝鉴权认证;
若是,则进一步判断访问请求是否存在数据范围实例ID,
若存在数据范围实例ID,则进一步判断鉴权信息所关联的数据操作类型是否与用户发起的访问请求所对应的数据范围实例ID相匹配,若是,则通过鉴权认证,若否,则拒绝鉴权认证;
若不存在数据范围实例ID,则拒绝鉴权认证。
作为本发明的进一步改进,所述数据范围实例ID由Self数据范围ID、Project数据范围ID、Vdc数据范围ID或者Syetem数据范围ID中的一种或者几种共同描述。
作为本发明的进一步改进,从鉴权信息中获取当前角色所对应的数据范围实例ID之后,还包括:对当前角色所对应的数据范围实例ID执行补充过滤数据范围实例条件参数。
作为本发明的进一步改进,所述鉴权信息为令牌Token、HTTP摘要鉴权信息或者AKA鉴权信息。
与现有技术相比,本发明的有益效果是:本发明所揭示的一种基于角色权限控制的鉴权方法,克服了现有技术中基于RBAC的角色权限控制中权限控制不灵活且控制粒度不够细腻的缺陷,并能够兼容公有云、私有云及混合云的使用环境,且不需要预先为用户分配角色所对应的资源,提高了鉴权策略的灵活性。
附图说明
图1为本发明一种基于角色权限控制的鉴权方法的整体流程图;
图2为用户角色赋权时确定角色所对应的数据范围的实例集流程图;
图3为用户角色赋权时确定角色所对应的鉴权信息流程图;
图4为基于用户发起的访问请求执行发明一种基于角色权限控制的鉴权方法的具体流程图;
图5为当数据操作类型为Query请求时用户查询云主机的具体流程图,其中“查询云主机”是Query请求中的一种范例性的数据操作类型;
图6为当数据操作类型为Command请求时用户对云主机A执行开机操作的具体流程图,其中“对云主机A执行开机操作”是Command请求中的一种范例性的数据操作类型;
图7为云平台与运行该基于角色权限控制的鉴权方法的RBAC系统在一种实例中的示意图。
具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
参图1至图7所示出的本发明一种基于角色权限控制的鉴权方法(以下简称“鉴权方法”)的一种具体实施方式。
该鉴权方法运行与RBAC系统400中,并可应用于公有云、私有云或者混合云等各种云平台中基于用户访问云平台300中的鉴权控制;甚至还可以用于数据中心、计算机集群或者服务器集群中的鉴权控制。RBAC系统400作为用于管理用户数据的系统,用户、角色、资源及权限作为基本管理要素。私有云平台可为VMware类型或者OpenStack类型的私有云平台。
结合图7所示,RBAC系统400通过API42来实现对RBAC系统400对于云平台300所具有的资源进行操作。云平台300应当被理解为接收用户发起的访问请求所指向的系统的下位概念予以理解。云平台300中的API32将与数据范围所对应资源与RBAC系统400建立映射关系,以通过RBAC系统400对访问请求进行鉴权管理,以通过RBAC系统400决定是否对用户发起的访问请求予以响应。云平台300中配置云管理平台31,并通过该云管理平台31对资源进行封装,并分配给用户。RBAC系统400分别管理用户、角色与权限。具体的角色对应具体的权限,具体的权限对应具体的用户。实施例所揭示的加权方法运行于RBAC系统400中。
本实施例中所提及的资源可以是上文提及的各种类型的云平台中可以为用户直接或者间接分配并直接或者间接响应用户发起的各种访问请求的资源,例如,资源可以是存储资源、计算资源,也可以是虚拟IP地址,甚至是虚拟交换机等各种硬件和/或软件资源。该等资源可为用户登录云平台300后所实施的各种操作(例如:删除操作、创建虚拟机操作、迁移虚拟机操作、迁移Pod操作、修改虚拟机的IP地址等)提供底层支持。此外,访问请求应当被理解为对系统(如云平台或者服务器集群)进行数据报文交互所发的各种请求或者操作,例如可以为Session请求、Request请求、HTTP请求、修改操作、删除操作或者迁移虚拟机操作等。
简要而言,本实施例所揭示的鉴权方法以现有RBAC为基础,其主要区别在于,本鉴权方法在为用户执行特定操作所执行的授予权限的过程中,赋予该角色所对应的数据范围(scope)及鉴权信息,当系统(如云平台300或者服务器集群)接收到用户发起的访问请求时,只需要针对用户发起的访问请求所对应的数据范围与预先定义的鉴权信息是否匹配,从而为用户分配相适配的鉴权信息,该鉴权信息与特定的资源相互关联,以响应用户发起的访问请求。通过本实施例所揭示的鉴权方法,克服了采用现有技术中因公有云平台中只定义操作类型而没有定义数据范围所存在的鉴权策略无法支持动态变化的数据范围的缺陷,也能同时克服现有技术中因私有云平台所存在的鉴权细粒度控制不佳的缺陷,因此能够同时适应公有云、私有云或者混合云的应用场景。当系统接收到用户发起的访问请求时,仅需要对访问请求所传入的请求参数,即数据范围实例ID,匹配出与访问请求所对应的数据范围,从而确定与该用户所分配的角色所对应的鉴权信息及与鉴权信息所对应的数据范围。在下文中,申请人结合图1至图7对本鉴权方法的具体实现过程予以详细阐述。
一种基于角色权限控制的鉴权方法,包括以下步骤:
首先,执行步骤S1、在为用户分配角色时定义出与角色适配的数据范围。
参图2所示,该步骤S1具体如下所示。
子步骤101、用户分配角色。
角色为一个组织或任务中的工作或者位置,权限为允许对一个或多个客体执行的操作。此处的用户既可以被理解为系统接收普通用户(Client)发的访问请求所对应的角色,还可以被理解为系统接收管理员(Admin),或者具有父子关系的角色,或者具有新增、删除、修改用户权限的角色。
子步骤102、选择角色。
通过选择角色,为后期对具体角色所赋予的对应权限的数据范围实例及数据范围实例集提供逻辑上的映射关系。
子步骤103、选择角色适用的数据范围的实例集。
由此确定具体的角色与具体的数据范围(scope)之间在逻辑上的映射关系。
子步骤104、角色设置完成。
设置完成的角色被保存至RBAC系统中。
然后,执行步骤S2、获取用户的所有角色并确定不同角色所对应的数据范围及鉴权信息。本实施例中揭示的鉴权信息为令牌Token、HTTP摘要鉴权信息或者AKA鉴权信息,本实施例以鉴权信息为令牌Token为典型范例予以详述。
由于同一用户在不同操作类型的场景中所具有角色是不同的,因此通过确定某个用户在不同类型的操作场景中所具有的不同角色,可以预先定义出用户的所有角色所对应的数据范围,并通过对角色赋权时将具体的鉴权信息与不同角色所对应的数据范围进行关联,从而为后期用户发起的具体的访问请求时,将当前的访问请求与该用户之前已经保存的数据范围及鉴权信息进行对比判断,并仅在系统接收到的访问请求所对应的数据范围与之前所保留的鉴权信息所对应的数据范围一致时,通过鉴权认定,以响应该用户发起的访问请求;否则拒绝用户发起的访问请求。
参图3所示,该步骤S2具体如下所示。
子步骤201、用户成功登录。
用户登录系统后,通过运行该基于角色权限控制(RBAC)的鉴权方法的RBAC系统判断用户登录状态。
子步骤202、获取用户所有角色。
通过该子步骤202为后期用户向系统发起访问请求所形成的不同角色进行预定义,以采集不同角色,并通过不同角色来确定角色所对应的操作权限。由于某种角色具有对应的数据范围,因此通过子步骤202可为后续的子步骤203中建立角色与数据范围的实例集建立唯一的映射关系提供了便利,此种便利能够进一步为后续区分不同用户所具有的不同角色或者相同用户所具有的不同角色所对应的鉴权判定提供了更为细腻的策略支撑。
子步骤203、获取每种角色所对应的数据范围实例集。
基于确定的角色所预先定义的数据范围,即可确定该角色所对应的数据范围实例(scope instance),并由一个或者多个数据范围实例定义出数据范围实例集(scopeinstance ids)。
子步骤204、获取每种角色的操作权限。
在本实施例中,预先定义出角色的操作权限,并将该角色的操作权限作为描述不同角色的鉴权信息,为后期判断用户发起的具有不同描述粒度的访问请求的鉴权过程提供了准确的参考依据。
子步骤205、生产鉴权信息。
其中,子步骤205中生成的鉴权信息由角色所对应的数据范围实例所确定的鉴权信息,如对云主机执行开机操作的权限或者迁移云主机的权限,该权限仅与唯一的角色建立映射关系,只要后期用户向系统发出的访问请求中具有的角色所对应的数据范围与之前所定义的鉴权信息所包含的数据范围相一致,则认定该用户具有对该数据范围的控制权限。
优选的,在本实施例中,该步骤S2还包括:
子步骤206、缓存鉴权信息。
即,对不同角色所对应的鉴权信息执行缓存操作,所述鉴权信息被保存至存储介质中。该存储介质为Redis缓存、数据中心、数据库、内存、文件系统、分布式存储系统、机械磁盘或者闪存。该存储介质既可以被配置为RBAC系统400中,也可被配置于云平台300或者数据中心中。在本实施例中,通过将鉴权信息执行缓存操作,提高了后期对用户发起的访问请求所对应的不同角色所关联的数据范围的筛选效率,使得RBAC系统400能够迅速地判断用户发起的访问请求是否存在对应的鉴权信息,并将鉴权信息直接关联至已经建立起映射关系的数据范围。尤其需要注意的是,在本实施例中,已经建立起映射关系的数据范围的进一步含义是:将某种特定操作权限的鉴权信息与某一种或者某几种类型的资源及资源的配置建立映射关系。关于术语“资源”的定义参上文所述。从而使得在后期对用户重新发起的访问请求时,能够迅速的根据之前已经定义的角色及对应的鉴权信息,以响应用户,从而提高了该RBAC系统400执行权限设定的效率。同时,该步骤S2还包括:判断是否存在与不同角色所对应的鉴权信息;若是,则直接调用被执行缓存操作所对应的鉴权信息;若否,则为用户从新定义角色所对应的数据范围及鉴权信息。判断是否存在与不同角色所对应的鉴权信息的操作可由RBAC系统400执行,也可由与RBAC系统400通过API建立的服务器执行,该服务器逻辑上既可以独立与RBAC系统400及云平台300,也可以运行于RBAC系统400或者云平台300。
本实施例示出了步骤S2执行过程的主要代码,具体如下:
其中,*myAllProject表示用户发起的访问请求中对应的所有项目,取值对应的myProjects的值,即“项目1ID”、“项目2ID”、“项目3ID”。
最后,执行步骤S3、接收用户发起的访问请求,并仅在用户发起的访问请求中所包含的当前角色所对应的数据范围与鉴权信息所对应的数据范围匹配时,响应用户发起的访问请求。
在本实施例中,通过判断访问请求所对应的数据范围与步骤S2中定义的鉴权信息所对应的数据范围是否匹配,以确定该访问请求是否通过鉴权认证,若是,则通过(即通过鉴权认证);若否,则拒绝(即,拒绝鉴权认证)。示例:访问请求的数据操作类型是云主机A开机,先找到云主机A的数据范围实例Id,根据上述步骤,先找到云主机A所属的项目ID,得到了数据范围实例Id为项目3;
然后自步骤S2中已经定义的鉴权信息中查找“云主机A开机”这个操作对应的了数据范围实例Id,发现有项目1和项目2,没有项目3,因此拒绝包含“项目3”的访问请求。需要说明的是,在本实施例中,项目后的阿拉伯数字“1”、“2”、“3”仅仅是数据范围实例Id的简化表示,在实际场景中,数据范围实例Id可是云平台300中为响应用户发起的访问请求所封装出的资源所对应的唯一编码,并通过该数据范围实例Id与访问请求所控制的资源之间建立唯一的映射关系。
具体的,在本实施例中,该角色适配的数据范围包括:角色所对应的数据操作类型及角色所对应的数据范围的实例集;其中,
数据操作类型包括:Query请求或者Command请求;
所述数据范围的实例集包括:Self数据范围的实例集、Project数据范围的实例集、Vdc数据范围的实例集或者Syetem数据范围的实例集。其中,步骤S3中的“接收用户发起的访问请求”具体为:
判断用户发起的访问请求的类型并确定用户属性集合;
根据用户发起的访问请求的类型查询API定义,以通过查询到的API定义确定用户发起的访问请求中所包含的当前角色所对应的数据范围。
用户属性集合由用户类型、用户ID、用户名称、用户隶属关系中的一种或者几种共同描述;其中,所述用户类型区分为管理员、注册用户或者临时用户。
参图4至图5所示,该步骤S3还包括:
根据用户发起的访问请求的类型所确定的API定义,获取计算数据范围的转化规则,计算数据范围实例ID,并判断角色所对应的数据操作类型;此处所是示出的“类型”是下文所示出的数据操作类型。
当数据操作类型是Query请求时,判断访问请求所对应的数据范围中是否存在数据范围实例ID;
若是,则进一步判断访问请求中所包含的当前角色所对应的鉴权信息是否存在数据范围实例ID,若存在数据范围实例ID,则通过鉴权认证,若不存在数据范围实例ID,则拒绝鉴权认证;
若否,则从鉴权信息中获取当前角色所对应的数据范围实例ID;
当数据操作类型是Command请求时,判断访问请求所对应的鉴权信息中是否存在相互匹配的数据范围;
若否,则拒绝鉴权认证;
若是,则进一步判断访问请求是否存在数据范围实例ID,
若存在数据范围实例ID,则进一步判断鉴权信息所关联的数据操作类型是否与用户发起的访问请求所对应的数据范围实例ID相匹配,若是,则通过鉴权认证,若否,则拒绝鉴权认证;
若不存在数据范围实例ID,则拒绝鉴权认证。
从鉴权信息中获取当前角色所对应的数据范围实例ID之后,还包括:对当前角色所对应的数据范围实例ID执行补充过滤数据范围实例条件参数。
需要说明的是,在本实施例中,判断角色所对应的数据操作类型的子步骤可根据用户发起的访问请求及具体业务场景予以省略。例如,图4至图6中子步骤301中用户发起访问请求中包含了SessionID、数据范围及数据操作类型。其中,SessionID是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,并产生唯一的sessionid和key对应,从而通过SessionID标识Session对象。将用户发起的访问请求与确定的数据范围之间映射关系。若访问请求中所包含的数据操作类型是Query请求,则直接按照图5中所示出的步骤执行;若访问请求中所包含的数据操作类型是Command请求,则直接按照图6中所示出的步骤执行。
在本实施例中,由于用户通过云平台300间接地向RBAC系统400发的访问请求中包含了准确的SessionID、数据范围及数据操作类型,因此运行该鉴权方法的RBAC系统400可针对不同的数据范围的进行细粒度的鉴权处理,并能够对不同用户发的不同访问请求或者相同用户在不同场景中发起的不同访问请求进行集中式鉴权处理,而不需要如现有技术中需要预先将访问请求所对应的鉴权信息细分到每一个层级。例如,用户发起的访问请求是“集群A中的云主机B执行开机操作”,那么如果按照现有技术所揭示的技术方案,则需要将集群A、云主机B及开机操作分别定义出不同层级的鉴权信息。于此场景中,无论是公有云还是私有云或者是混合云场景中,要么存在鉴权策略不灵活的缺陷,要么存在鉴权策略过于粗放的缺陷;同时,由于用户发起的访问请求所对应的数据范围是动态变化的,因此通过本实施例所揭示的鉴权方法可提高访问请求所对应的数据范围赋予准确权限的鉴权粒度,尤其是可以提高对不同且呈多层级的数据范围的鉴权处理。同时,本实施例所揭示的RBAC系统400也可以作为云平台300在逻辑上独立的一个组件,独立运行。
结合图4所示,该步骤S3首先执行子步骤301至子步骤304。
子步骤301、用户发起访问请求。
确定用户发起访问请求中包含了SessionID、数据范围及数据操作类型。
子步骤302、根据用户发起的访问请求获取用户ID。
用户ID包含于访问请求中。
子步骤303、根据用户ID获取鉴权信息。
子步骤304、根据访问请求查找访问请求定义,获取数据范围的实例ID。
子步骤305、判断数据操作类型。
从而确定该数据操作类型是Query请求还是Command请求。该子步骤305并非是必须历经的子步骤,具体参上文所述。
接下来,申请人结合图5与图6对数据操作类型分别为Query请求及Command请求的执行过程进行进一步的详细阐述。
如图5所示,当该数据操作操作是Query请求时,依次执行以下子步骤。
子步骤315、判断Query请求是否存在数据范围的实例ID。
若是,则跳转执行子步骤325、判断鉴权信息中是否包含数据范围的实例ID,若是,则执行子步骤355、通过;若否,则执行子步骤309、拒绝。
相应的,若Query请求不存在数据范围的实例ID,则跳转执行子步骤335、从鉴权信息中获取数据范围的实例ID集,最后执行子步骤345、转写请求,补充过滤数据范围的实例条件参数。例如,可在“云主机A开机”这个操作对应的了数据范围实例Id中增加“项目3”,并使得*myAllProject所对应的myProjects的值同时包含“项目1ID”、“项目2ID”、“项目3ID”。
结合图6所示,当该数据操作操作是Command请求时,依次执行以下子步骤。
子步骤306、判断鉴权信息中是否存在对应的访问信息,若是,则跳转执行子步骤307、判断访问请求中是否有对应的数据范围的实例ID;若否。则跳转执行子步骤309、拒绝。在子步骤307中,判断访问请求中存在对应的数据范围的实例ID,若问请求中存在对应的数据范围的实例ID,则跳转执行子步骤308,若问请求中不存在对应的数据范围的实例ID,则跳转执行子步骤355、通过。
子步骤308、判断鉴权信息中该访问请求对应的数据范围的实例ID集是否包含请求实例ID,若是,则执行子步骤355、通过;若否,则执行子步骤309、拒绝。同时,在子步骤中307中,若访问请求中不存在对应的数据范围的实例ID,则跳转执行子步骤355、通过。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (11)
1.一种基于角色权限控制的鉴权方法,其特征在于,包括以下步骤:
S1、在为用户分配角色时定义出与角色适配的数据范围;
S2、获取用户的所有角色并确定不同角色所对应的数据范围及鉴权信息;
S3、接收用户发起的访问请求,并仅在用户发起的访问请求中所包含的当前角色所对应的数据范围与鉴权信息所对应的数据范围匹配时,响应用户发起的访问请求。
2.根据权利要求1所述的鉴权方法,其特征在于,所述步骤S2还包括:对不同角色所对应的鉴权信息执行缓存操作,所述鉴权信息被保存至存储介质中。
3.根据权利要求2所述的鉴权方法,其特征在于,所述步骤S2还包括:判断是否存在与不同角色所对应的鉴权信息;
若是,则直接调用被执行缓存操作所对应的鉴权信息;
若否,则为用户从新定义角色所对应的数据范围及鉴权信息。
4.根据权利要求2所述的鉴权方法,其特征在于,所述存储介质为Redis缓存、数据中心、数据库、内存、文件系统、分布式存储系统、机械磁盘或者闪存。
5.根据权利要求1至4中任一项所述的鉴权方法,其特征在于,所述角色适配的数据范围包括:角色所对应的数据操作类型及角色所对应的数据范围的实例集;其中,
所述数据操作类型包括:Query请求或者Command请求;
所述数据范围的实例集包括:Self数据范围的实例集、Project数据范围的实例集、Vdc数据范围的实例集或者Syetem数据范围的实例集。
6.根据权利要求1所述的鉴权方法,其特征在于,所述步骤S3中的“接收用户发起的访问请求”具体为:
判断用户发起的访问请求的类型并确定用户属性集合;
根据用户发起的访问请求的类型查询API定义,以通过查询到的API定义确定用户发起的访问请求中所包含的当前角色所对应的数据范围。
7.根据权利要求6所述的鉴权方法,其特征在于,所述用户属性集合由用户类型、用户ID、用户名称、用户隶属关系中的一种或者几种共同描述;
其中,所述用户类型区分为管理员、注册用户或者临时用户。
8.根据权利要求5所述的鉴权方法,其特征在于,所述步骤S3还包括:
根据用户发起的访问请求的类型所确定的API定义,获取计算数据范围的转化规则,计算数据范围实例ID,并判断角色所对应的数据操作类型;
当数据操作类型是Query请求时,判断访问请求所对应的数据范围中是否存在数据范围实例ID;
若是,则进一步判断访问请求中所包含的当前角色所对应的鉴权信息是否存在数据范围实例ID,若存在数据范围实例ID,则通过鉴权认证,若不存在数据范围实例ID,则拒绝鉴权认证;
若否,则从鉴权信息中获取当前角色所对应的数据范围实例ID;
当数据操作类型是Command请求时,判断访问请求所对应的鉴权信息中是否存在相互匹配的数据范围;
若否,则拒绝鉴权认证;
若是,则进一步判断访问请求是否存在数据范围实例ID,
若存在数据范围实例ID,则进一步判断鉴权信息所关联的数据操作类型是否与用户发起的访问请求所对应的数据范围实例ID相匹配,若是,则通过鉴权认证,若否,则拒绝鉴权认证;
若不存在数据范围实例ID,则拒绝鉴权认证。
9.根据权利要求8所述的鉴权方法,其特征在于,所述数据范围实例ID由Self数据范围ID、Project数据范围ID、Vdc数据范围ID或者Syetem数据范围ID中的一种或者几种共同描述。
10.根据权利要求8所述的鉴权方法,其特征在于,从鉴权信息中获取当前角色所对应的数据范围实例ID之后,还包括:对当前角色所对应的数据范围实例ID执行补充过滤数据范围实例条件参数。
11.根据权利要求8所述的鉴权方法,其特征在于,所述鉴权信息为令牌Token、HTTP摘要鉴权信息或者AKA鉴权信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910565801.5A CN110113369A (zh) | 2019-06-27 | 2019-06-27 | 一种基于角色权限控制的鉴权方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910565801.5A CN110113369A (zh) | 2019-06-27 | 2019-06-27 | 一种基于角色权限控制的鉴权方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110113369A true CN110113369A (zh) | 2019-08-09 |
Family
ID=67495929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910565801.5A Pending CN110113369A (zh) | 2019-06-27 | 2019-06-27 | 一种基于角色权限控制的鉴权方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110113369A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444483A (zh) * | 2020-03-26 | 2020-07-24 | 杭州指令集智能科技有限公司 | 一种鉴权方法、装置及设备 |
CN111835792A (zh) * | 2020-07-31 | 2020-10-27 | 海南中金德航科技股份有限公司 | 一种系统鉴权角色关系系统 |
CN112468319A (zh) * | 2020-11-06 | 2021-03-09 | 中国人寿保险股份有限公司 | 一种混合云管理系统及管理方法 |
CN112532474A (zh) * | 2020-11-19 | 2021-03-19 | 用友网络科技股份有限公司 | 数据管理系统的控制方法、装置和可读存储介质 |
CN112632616A (zh) * | 2020-12-30 | 2021-04-09 | 北京嘀嘀无限科技发展有限公司 | 数据处理方法、装置、电子设备以及计算机可读存储介质 |
CN112989294A (zh) * | 2019-12-16 | 2021-06-18 | 浙江宇视科技有限公司 | 鉴权方法、装置、服务器及存储介质 |
CN113138999A (zh) * | 2021-05-12 | 2021-07-20 | 泰康保险集团股份有限公司 | 数据处理方法及装置、计算机存储介质、电子设备 |
CN113297629A (zh) * | 2021-05-26 | 2021-08-24 | 杭州安恒信息技术股份有限公司 | 一种鉴权方法、装置、系统、电子设备和存储介质 |
CN113364765A (zh) * | 2021-06-03 | 2021-09-07 | 北京天融信网络安全技术有限公司 | 一种云运维审计方法及运维审计装置 |
CN113642012A (zh) * | 2020-05-11 | 2021-11-12 | 乌本产权有限公司 | 提供访问风能设施的电子密钥的方法和访问控制系统 |
CN113765925A (zh) * | 2021-09-08 | 2021-12-07 | 浙江九州云信息科技有限公司 | 一种基于osac和perm访问控制模型的改进方法 |
CN114499977A (zh) * | 2021-12-28 | 2022-05-13 | 天翼云科技有限公司 | 一种认证方法及装置 |
CN115118474A (zh) * | 2022-06-20 | 2022-09-27 | 广东省工业边缘智能创新中心有限公司 | 标识查询、存储管理方法、标识代理模块及权限管理系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645126A (zh) * | 2009-09-07 | 2010-02-10 | 浪潮集团山东通用软件有限公司 | 一种基于rbac模型扩展的面向业务的授权访问控制方法 |
CN101739526A (zh) * | 2009-12-16 | 2010-06-16 | 北京佳讯飞鸿电气股份有限公司 | 一种面向服务体系的基于面向对象的权限管理方法 |
CN101866360A (zh) * | 2010-06-28 | 2010-10-20 | 北京用友政务软件有限公司 | 基于对象多维属性空间的数据仓库鉴权方法及系统 |
US20130239184A1 (en) * | 2012-03-09 | 2013-09-12 | Burroughs, Inc. | Method and System for Controlling a Safe from a Remote Computing Device |
US8983877B2 (en) * | 2011-03-21 | 2015-03-17 | International Business Machines Corporation | Role mining with user attribution using generative models |
CN106997440A (zh) * | 2017-04-10 | 2017-08-01 | 中经汇通电子商务有限公司 | 一种角色访问控制方法 |
-
2019
- 2019-06-27 CN CN201910565801.5A patent/CN110113369A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645126A (zh) * | 2009-09-07 | 2010-02-10 | 浪潮集团山东通用软件有限公司 | 一种基于rbac模型扩展的面向业务的授权访问控制方法 |
CN101739526A (zh) * | 2009-12-16 | 2010-06-16 | 北京佳讯飞鸿电气股份有限公司 | 一种面向服务体系的基于面向对象的权限管理方法 |
CN101866360A (zh) * | 2010-06-28 | 2010-10-20 | 北京用友政务软件有限公司 | 基于对象多维属性空间的数据仓库鉴权方法及系统 |
US8983877B2 (en) * | 2011-03-21 | 2015-03-17 | International Business Machines Corporation | Role mining with user attribution using generative models |
US20130239184A1 (en) * | 2012-03-09 | 2013-09-12 | Burroughs, Inc. | Method and System for Controlling a Safe from a Remote Computing Device |
CN106997440A (zh) * | 2017-04-10 | 2017-08-01 | 中经汇通电子商务有限公司 | 一种角色访问控制方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112989294A (zh) * | 2019-12-16 | 2021-06-18 | 浙江宇视科技有限公司 | 鉴权方法、装置、服务器及存储介质 |
CN112989294B (zh) * | 2019-12-16 | 2022-08-23 | 浙江宇视科技有限公司 | 鉴权方法、装置、服务器及存储介质 |
CN111444483A (zh) * | 2020-03-26 | 2020-07-24 | 杭州指令集智能科技有限公司 | 一种鉴权方法、装置及设备 |
CN113642012A (zh) * | 2020-05-11 | 2021-11-12 | 乌本产权有限公司 | 提供访问风能设施的电子密钥的方法和访问控制系统 |
CN111835792A (zh) * | 2020-07-31 | 2020-10-27 | 海南中金德航科技股份有限公司 | 一种系统鉴权角色关系系统 |
CN112468319A (zh) * | 2020-11-06 | 2021-03-09 | 中国人寿保险股份有限公司 | 一种混合云管理系统及管理方法 |
CN112468319B (zh) * | 2020-11-06 | 2023-09-01 | 中国人寿保险股份有限公司 | 一种混合云管理系统及管理方法 |
CN112532474A (zh) * | 2020-11-19 | 2021-03-19 | 用友网络科技股份有限公司 | 数据管理系统的控制方法、装置和可读存储介质 |
CN112632616A (zh) * | 2020-12-30 | 2021-04-09 | 北京嘀嘀无限科技发展有限公司 | 数据处理方法、装置、电子设备以及计算机可读存储介质 |
CN113138999A (zh) * | 2021-05-12 | 2021-07-20 | 泰康保险集团股份有限公司 | 数据处理方法及装置、计算机存储介质、电子设备 |
CN113138999B (zh) * | 2021-05-12 | 2023-11-17 | 泰康保险集团股份有限公司 | 数据处理方法及装置、计算机存储介质、电子设备 |
CN113297629A (zh) * | 2021-05-26 | 2021-08-24 | 杭州安恒信息技术股份有限公司 | 一种鉴权方法、装置、系统、电子设备和存储介质 |
CN113297629B (zh) * | 2021-05-26 | 2023-03-14 | 杭州安恒信息技术股份有限公司 | 一种鉴权方法、装置、系统、电子设备和存储介质 |
CN113364765A (zh) * | 2021-06-03 | 2021-09-07 | 北京天融信网络安全技术有限公司 | 一种云运维审计方法及运维审计装置 |
CN113765925A (zh) * | 2021-09-08 | 2021-12-07 | 浙江九州云信息科技有限公司 | 一种基于osac和perm访问控制模型的改进方法 |
CN113765925B (zh) * | 2021-09-08 | 2023-07-25 | 浙江九州云信息科技有限公司 | 一种基于osac和perm访问控制模型的改进方法 |
CN114499977A (zh) * | 2021-12-28 | 2022-05-13 | 天翼云科技有限公司 | 一种认证方法及装置 |
CN114499977B (zh) * | 2021-12-28 | 2023-08-08 | 天翼云科技有限公司 | 一种认证方法及装置 |
CN115118474A (zh) * | 2022-06-20 | 2022-09-27 | 广东省工业边缘智能创新中心有限公司 | 标识查询、存储管理方法、标识代理模块及权限管理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110113369A (zh) | 一种基于角色权限控制的鉴权方法 | |
US11930015B2 (en) | Systems and method for authenticating users of a data processing platform from multiple identity providers | |
US10652235B1 (en) | Assigning policies for accessing multiple computing resource services | |
US10505929B2 (en) | Management and authentication in hosted directory service | |
CN103384237B (zh) | 一种共享IaaS业务云账号的方法、及共享平台和网络装置 | |
EP2585970B1 (en) | Online service access controls using scale out directory features | |
US8990900B2 (en) | Authorization control | |
US20040103203A1 (en) | Methods and systems for sharing a network resource with a user without current access | |
US8365298B2 (en) | Comprehensive security architecture for dynamic, web service based virtual organizations | |
US8117254B2 (en) | User name mapping in a heterogeneous network | |
CN106844111B (zh) | 云存储网络文件系统的访问方法 | |
EP3547634A1 (en) | Method and apparatus for determining access permission, and terminal | |
CN103984600A (zh) | 一种基于云计算的财务数据处理方法 | |
US10178103B2 (en) | System and method for accessing a service | |
CN110971566A (zh) | 帐户统一管理方法、系统及计算机可读存储介质 | |
CN106559389A (zh) | 一种服务资源发布、调用方法、装置、系统及云服务平台 | |
KR20130114575A (ko) | 프로비저닝 서비스를 위한 리더 중재 | |
CN109309686A (zh) | 一种多租户管理方法及装置 | |
CN113691539A (zh) | 企业内部统一功能权限管理方法及系统 | |
WO2017181775A1 (zh) | 分布式授权管理方法及装置 | |
US20240007465A1 (en) | Controlling access to components of a software-defined data center in a hybrid environment | |
Xie et al. | Pre-authorization Usage Control Mechanism for Cross-Domain in Cloud | |
CN114462016A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190809 |
|
RJ01 | Rejection of invention patent application after publication |