基于三员分离及数据限定的RBAC权限管理模型
- 格式:pdf
- 大小:383.41 KB
- 文档页数:4
基于RBAC模型的权限管理解决方案创建时间:2009-04-29 =========================================================== RBAC模型的优势在许多的实际应用中,不只是要求用户简单地进行注册登录,还要求不同类别的用户对资源有不同的操作权限。
目前,权限管理系统也是重复开发率最高的模块之一。
在企业中,不同的应用系统都拥有一套独立的权限管理系统。
每套权限管理系统只满足自身系统的权限管理需要,无论在数据存储、权限访问和权限控制机制等方面都可能不一样,这种不一致性存在如下弊端:(1)系统管理员需要维护多套权限管理系统,重复劳动;(2)用户管理、组织机构等数据重复维护,数据一致性、完整性得不到保证;(3)由于权限管理系统的设计不同,概念解释不同,采用的技术有差异,权限管理系统之间的集成存在问题,实现单点登录难度十分大,也给企业构建企业门户带来困难。
采用统一的安全管理设计思想,规范化设计和先进的技术架构体系,构建一个通用的、完善的、安全的、易于管理的、有良好的可移植性和扩展性的权限管理系统,使得权限管理系统真正成为权限控制的核心,在维护系统安全方面发挥重要的作用,是十分必要的。
RBAC模型概述RBAC(角色访问控制) 是目前应用最为广泛的权限模型。
NIST (The National Institute of Standards and Technology,美国国家标准与技术研究院)标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0(CoreRBAC)、角色分级模型RBAC1(Hierarchal RBAC)、角色限制模型RBAC2(ConstraintRBAC)和统一模型RBAC3(Combines RBAC)[1]。
RBAC0模型如图1所示。
RBAC0定义了能构成一个RBAC控制系统的最小的元素集合。
在RBAC之中,包含用户users(USERS)、角色roles(ROLES)、目标objects(OBS)、操作operations(OPS)、许可权permissions(PRMS)五个基本数据元素,权限被赋予角色,而不是用户,当一个角色被指定给一个用户时,此用户就拥有了该角色所包含的权限。
RBAC基于角色的权限访问控制JunChow520172019.05.06 01:30:57字数 3,819阅读 3,819在20世纪90年代期间,大量专家学者和研究单位对RBAC (Role-Based Access Control)的概念进行了深入研究,先后提出了许多类型的RBAC模型,其中以美国George Mason大学信息安全技术实验室(LIST)提出的RBAC96模型最具系统性,并得到普遍的公认。
传统的权限分配的方式是将用户与权限绑定,也就是直接将权限绑定到用户身上,例如之前盛行的ACL模型。
这种做法的缺陷在于效率低下,设置权限时没有统一的标准。
当用户量过多时,操作复杂麻烦。
在RBAC中需要对系统的所有资源进行权限控制,系统资源可以简单地概括为静态资源(功能操作、数据列)和动态资源(数据),也分别称为对象资源和数据资源。
RBAC的目标是对系统中所有对象资源和数据资源进行权限控制。
RBAC是什么RBAC基于角色的访问控制是用户通过角色与权限进行关联,为什么不直接给用户分配权限呢?简单来说,一个用户拥有多个角色,每个角色拥有若干权限。
这样就构成了“用户-角色-权限”的授权模型。
在这个模型中,用户与角色、角色与权限之间是多对多的关系。
RBAC角色是什么呢?角色可以理解为一定数量的权限的集合,也就是权限的载体。
当用户数量越来越大的时候,就需要为用户分组,每个用户组内拥有不同的用户,除了可以给用户授权外,也可以给用户组授权。
如此一来,用户拥有的所有权限就是用户个人拥有的权限与该用户所在用户组拥有的权限之和。
用户组用户组与角色有何区别呢?用户组是用户的集合,但不是权限的集合。
角色同时具有用户集合和权限集合的概念,角色是把两个集合联系在一起的中间媒介。
如果用户组的权限和成员仅能被系统安全员修改的话,用户组的机制是非常接近于角色的概念的。
角色也可以在用户组的基础上实现,这有利于保持原有系统中的控制关系。
RBAC细粒度组的权限管理模型的分析与设计作者:唐国纯来源:《硅谷》2011年第05期摘要:把基于角色访问控制RBAC(role based access control)模型中的组细化成单位和部门,并且单位和部门之间存在组成关系,则可以构造一个完整的权限体系。
对RBAC细粒度组的权限管理模型进行研究和探讨,提出RBAC细粒度组的权限管理的数据模型设计,能够高效地解决系统开发中的权限管理问题。
关键词: RBAC;细粒度组;权限管理中图分类号:TH 文献标识码:A 文章编号:1671-7597(2011)0310065-020 引言基于角色访问控制RBAC(role based access control)模型是目前国际上流行的安全访问控制方法。
权限管理系统中,如果在创建每个用户的时候要求每个用户属于某个单位以及这个单位的某个部门。
这样单位是树型结构,同时每个单位内部部门也构成树型结构。
即要求在权限系统中默认存在一个系统管理员角色,该角色拥有所有资源的访问权限。
每个单位有一个单位管理员角色。
系统管理员只负责创建单位管理员角色,单位管理员拥有本单位所有资源的访问权,负责添加属于本单位的部门或普通员工角色并对其进行权限配置。
如果把基于角色访问控制(role based access control,RBAC)模型中的组细化成单位和部门,并且单位和部门之间存在组成关系,则可以构造一个完整的权限体系。
基于此本文对RBAC细粒度组的权限管理模型进行了研究和探讨。
1 基于角色的权限管理的原理企业环境中的访问控制策略一般有三种:自主型访问控制方法、强制型访问控制方法和基于角色的访问控制方法。
其中,自主式太弱,强制式太强,二者工作量大,不便于管理。
基于角色的访问控制方法是目前公认的解决大型企业的统一资源访问控制的有效方法。
美国国家标准与技术研究院NIST标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0、角色分级模型RBAC1、角色限制模型RBAC2和统一模型RBAC3。
基于RBAC模型的权限管理系统设计权限管理系统是现代信息管理系统极为重要的组成部分,其主要任务在于对系统中各个用户的权限进行管理,保障系统的安全性和稳定性,同时保证用户数据的隐私和保密性。
而基于rbac模型的权限管理系统,是目前被广泛采用的权限管理技术之一,其具有权限灵活、易于维护等优点,在具体的实现过程中也面临着一些问题。
本篇文章将会结合实例,对基于rbac模型的权限管理系统进行设计和探讨。
一、rbac模型的基本概念rbac模型,即基于角色的访问控制(Role-Based Access Control),其是一个灵活且易于维护的权限控制模型。
该模型主要由角色、用户、权限和访问控制的策略几部分组成,其中角色是rbac模型的核心概念,通过角色的授予和收回,来实现对用户权限的管理。
rbac模型的安全策略可以描述为:一个用户只能执行已被授权给他的角色所允许的操作,任何用户均不能超越其权限范围所赋予的功能和任务的边界。
具体而言,rbac模型主要包括以下几个基本概念:1. 用户(User):指系统中执行任务的实体,需要进行权限控制;2. 角色(Role):权限的集合,具有相同权限的用户集合,每个用户可以拥有多个角色;3. 权限(Permission):系统中的功能、资源、操作等,需要设置相应的权限控制;4. 授权(Authorization):将用户赋予相应角色以获取特定权限的过程;5. 会话(Session):用户与系统进行交互的时间段,系统应在这个时间段内有效地控制用户访问权限。
二、rbac模型的优点和实现方式rbac模型相对于其他权限管理模型,具有如下优点:1. 集中化管理:通过对角色和权限进行集中管理,可以实现系统的动态管理和维护;2. 适应性强:对于各种企业的权限管理需求,尤其是大规模集成的企业环境,应用rbac能够很好地适应变化;3. 灵活性高:通过管理角色、权限和用户之间的映射关系,实现了权限的灵活控制;4. 安全性好:通过一系列的访问控制策略(如分级权限、非法访问限制等),确保系统信息的安全性和保密性。
基于RBAC模型的权限管理系统的设计和实现RBAC(Role-Based Access Control)模型是一种常见的权限管理模型,它根据用户的角色来控制其访问系统资源的权限。
下面将详细介绍基于RBAC模型的权限管理系统的设计和实现。
权限管理系统是一种用于控制用户对系统资源进行访问的系统。
它通过定义角色、权限和用户的关系,实现了对用户的访问进行控制和管理。
基于RBAC模型的权限管理系统可以提供更加灵活和安全的权限控制机制。
首先,需要设计和构建角色,角色是对用户进行权限管理的一种方式。
可以将用户划分为不同的角色,每个角色具有一组特定的权限。
例如,一个网站的角色可以包括管理员、用户、访客等。
然后,定义角色与权限之间的关系。
一个角色可以具有多个权限,一个权限可以被多个角色具有,这种关系通常是多对多的。
可以使用关联表来表示角色和权限之间的对应关系,关联表中存储了角色ID和权限ID的对应关系。
接下来,需要创建用户,并将用户与角色进行关联。
用户是系统中的具体实体,每个用户可以拥有一个或多个角色。
通过将用户与角色关联,可以根据用户的角色来判断其具有的权限。
最后,实现权限的验证和控制。
在用户访问系统资源时,系统需要验证该用户是否具有访问该资源的权限。
可以通过在系统中添加访问控制的逻辑来实现权限的验证和控制。
例如,在网站中,可以通过添加访问控制列表(ACL)来限制用户访问一些页面或功能。
1.灵活性:RBAC模型允许根据不同的需求进行灵活的权限控制和管理。
2.可扩展性:可以根据系统的需求轻松地添加新的角色和权限。
3.安全性:通过对用户的访问进行控制和管理,可以提高系统的安全性,防止未授权的用户访问系统资源。
在实现权限管理系统时,需要考虑以下几个方面:1.用户界面:需要设计一个用户友好的界面,使用户能够轻松地管理和配置角色和权限。
2.数据库设计:需要设计合适的数据结构来存储角色、权限和用户之间的关系。
3.访问控制逻辑:需要实现权限的验证和控制的逻辑,确保只有具有相应权限的用户才能访问系统资源。
基于RBAC的通用权限管理设计与实现
一.引言
RBAC(Role-Based Access Control)是一种基于角色的访问控制模型,它试图通过将用户分配到不同的角色来简化系统管理员的工作,提高系统
安全性、可用性、可维护性等。
目前,RBAC已经成为最重要的安全管理
技术之一,在企业级应用系统中使用得越来越多。
本文将介绍基于RBAC的通用权限管理设计与实现,专注于实现RBAC
模型的原理和实现方式,并结合实际应用,分析实现过程中可能遇到的问
题与解决方案,从而为设计RBAC权限管理系统提供参考。
二.RBAC原理
RBAC模型的核心思想是,将用户分配到不同的角色,通过对角色进
行权限的分配和控制来控制用户的访问权限。
关于RBAC的实现有以下几个步骤:
1、划分角色:首先,要把用户划分成不同的角色,每一个角色都有
一系列可以被执行的操作,这些操作可以是其中一种操作,也可以是一系
列的操作。
2、分配权限:然后,将每个角色对应的操作权限分配给角色,这些
权限可以是可执行的操作,也可以是可读写的操作,可以是可访问的文件,也可以是其中一种权限。
3、赋予用户角色:接下来,将角色分配给具体的用户,这样就可以
实现用户与角色之间的关联,也实现了对不同的用户可以访问不同的权限。
RBAC访问,强制访问)的有前景的代替受到广泛的关注。
在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。
这就极大地简化了权限的管理。
在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。
角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。
角色与角色的关系可以建立起来以囊括更广泛的客观情况。
简介RBAC支持三个著名的安全原则:最小权限原则,责任分离原则和数据抽象原则。
最小权限原则之所以被RBAC所支持,是因为RBAC可以将其角色配置成其完成任务所需要的最小的权限集。
责任分离原则可以通过调用相互独立互斥的角色来共同完成敏感的任务而体现,比如要求一个计帐员和财务管理员共参与同一过帐。
数据抽象可以通过权限的抽象来体现,如财务操作用借款、存款等抽象权限,而不用操作系统提供的典型的读、写、执行权限。
然而这些原则必须通过RBAC各部件的详细配置才能得以体现。
RBAC有许多部件,这使得RBAC的管理多面化。
尤其是,我们要分割这些问题来讨论:用户与角色的指派;角色与权限的指派;为定义角色的继承进行的角色与角色的指派。
这些活动都要求把用户和权限联系起来。
然而在很多情况下它们最好由不同的管理员或管理角色来做。
对角色指派权限是典型的应用管理者的职责。
银行应用中,把借款、存款操作权限指派给出纳角色,把批准贷款操作权限指派给经理角色。
而将具体人员指派给相应的出纳角色和管理者角色是人事管理的范畴。
角色与角色的指派包含用户与角色的指派、角色与权限的指派的一些特点。
更一般来说,角色与角色的关系体现了更广泛的策略。
RBAC基本概念RBAC认为权限授权实际上是Who、What、How的问题。
在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What(Which)进行How的操作”。
基于⾓⾊的访问控制(RBAC)权限管理 RBAC(Role-Based Access Control,基于⾓⾊的访问控制),就是⽤户通过⾓⾊与权限进⾏关联。
简单地说,⼀个⽤户拥有若⼲⾓⾊,每⼀个⾓⾊拥有若⼲权限。
这样,就构造成“⽤户-⾓⾊-权限”的授权模型。
在这种模型中,⽤户与⾓⾊之间,⾓⾊与权限之间,⼀般者是多对多的关系。
在系统访问中,最终判断的是当前⽤户拥有哪些权限,以使⽤相关的权限进⾏业务处理。
在RBAC中,共有⽤户、部门、权限、⾓⾊四个概念,部门是⽤户的集合,⾓⾊是权限的集合;⽤户可以拥有不同的权限和⾓⾊,部门也可以拥有不同的权限和⾓⾊;权限拥有上下级关系,并且在系统中可以有业务权限与数据权限两类;部门拥有上下级关系,此设计⽅式没有对权限进⾏继承;部门和⽤户是⼀对多的关系,⼀个部门中可以有多个⽤户,⼀个⽤户只允许属于⼀个部门。
数据表结构如下: 1.⽤户表表名:t_user字段名称字段类型主外键是否必填备注user_id varchar(32)主键必填主键login_name varchar(255)必填登录⽤户名login_pass varchar(255)必填密码org_id varchar(32)外键必填所属机构IDuser_name varchar(255)必填真实姓名user_phone varchar(255)电话号码user_email varchar(255)Emailcreate_date varchar(10)必填创建⽇期create_time varchar(8)必填创建时间create_user varchar(32)外键必填创建⼈ 2.机构表表名:t_organization字段名称字段类型主外键是否必填备注org_id varchar(32)主键必填主键org_name varchar(255)必填机构名称org_code varchar(255)机构编码org_header varchar(255)机构负责⼈parent_id varchar(32)表内外键必填上级机构ID,根机构的ID为空create_date varchar(10)必填创建⽇期create_time varchar(8)必填创建时间create_user varchar(32)外键必填创建⼈ 3.权限表表名:t_right字段名称字段类型主外键是否必填备注right_id varchar(32)主键必填主键right_name varchar(255)必填权限名称right_code varchar(255)权限编码parent_id varchar(32)表内外键必填⽗权限ID, 根权限的ID为空create_date varchar(10)必填创建⽇期create_time varchar(8)必填创建时间create_user varchar(32)外键必填创建⼈ 4.⽤户权限关系表表名:t_user_right字段名称字段类型主外键是否必填备注ur_id varchar(32)主键必填主键user_id varchar(32)外键必填⽤户IDright_id varchar(32)外键必填权限ID 5.机构权限关系表表名:t_org_rigth字段名称字段类型主外键是否必填备注or_id varchar(32)主键必填主键org_id varchar(32)外键必填机构IDright_id varchar(32)外键必填权限ID 6.⾓⾊表表名:t_role表名:t_role字段名称字段类型主外键是否必填备注role_id varchar(32)主键必填主键role_name varchar(255)必填⾓⾊名称create_date varchar(10)必填创建⽇期create_time varchar(8)必填创建时间create_user varchar(32)外键必填创建⼈ 7.⽤户⾓⾊关系表表名:t_user_role字段名称字段类型主外键是否必填备注ur_id varchar(32)主键必填主键user_id varchar(32)外键必填⽤户IDrole_id varchar(32)外键必填⾓⾊ID 8.机构⾓⾊关系表表名:t_org_role字段名称字段类型主外键是否必填备注or_id varchar(32)主键必填主键org_id varchar(32)外键必填机构IDrole_id varchar(32)外键必填⾓⾊ID 9.⾓⾊权限关系表表名:t_role_right字段名称字段类型主外键是否必填备注rr_id varchar(32)主键必填主键role_id varchar(32)外键必填⾓⾊IDright_id varchar(32)外键必填权限ID。