基于角色的访问控制系统的设计与实现
- 格式:doc
- 大小:431.50 KB
- 文档页数:14
基于角色的访问控制系统设计与实现角色是访问控制系统中的重要概念之一,它用于定义用户、员工或其他实体在组织内的职责和权限。
基于角色的访问控制系统提供了一种有效管理和控制用户访问权限的方法,并且可以适应组织的变化和扩展。
本文将介绍基于角色的访问控制系统的设计和实现,并探讨其在不同场景中的应用。
首先,基于角色的访问控制系统设计需要明确定义角色的层次结构和权限。
角色的层次结构可以根据组织的结构和职责划分,例如高级管理人员、普通员工和访客等。
每个角色都有一组预定义的权限,这些权限指定了用户可以执行的操作。
在设计阶段,需要详细描述每个角色的职责和权限,以确保用户得到适当的访问权限。
其次,基于角色的访问控制系统的实现需要考虑身份验证和授权。
身份验证确保用户的身份得到验证,通常使用用户名和密码等凭据进行验证。
授权是根据用户的身份和角色来确定其访问权限的过程。
在实现阶段,需要选择合适的身份验证和授权机制,例如单一登录(SSO)和访问令牌等。
这些机制可以提高系统的安全性和用户体验。
此外,基于角色的访问控制系统还需要定义访问策略和审计机制。
访问策略规定了用户在执行操作时必须满足的条件,例如时间、地点和设备等。
审计机制用于记录用户的访问和操作行为,以便进行安全审计和追踪。
在设计和实现过程中,需要仔细考虑访问策略和审计机制的需求和实际情况,以确保系统的安全性和合规性。
基于角色的访问控制系统在不同的场景中有着广泛的应用。
例如,企业可以使用基于角色的访问控制系统来管理内部员工的权限,确保只有具备相应角色的员工可以访问敏感信息和关键系统。
在医疗保健领域,基于角色的访问控制系统可以帮助医生和护士等医疗人员根据其职责和权限访问患者的电子健康记录。
此外,基于角色的访问控制系统还可以用于对外提供服务的组织,例如银行和电子商务网站,以确保用户只能访问其授权的内容和功能。
在实际应用中,基于角色的访问控制系统还可以与其他安全技术和机制结合使用,以提高系统的安全性和灵活性。
RBAC(Role Based Access Control)访问控制是通过某种途径显示的准许或限制访问能力及范围,从而限制对目标资源的访问,防止非法用户的侵入或合法用户的不慎操作所造成的破坏[2]。
目前流行的访问控制模型有自主访问控制模型(Discretionary Access Control,DAC)、强制访问控制模型(Mandatory Access Control, MAC)和基于角色的访问控制模型(Role-Based Access Control,RBAC)。
自主访问控制是访问控制技术中最常见的一种方法,允许资源的所有者自主地在系统中决定可存取其资源客体的主体,此模型灵活性很高,但安全级别相对较低;强制访问控制是主体的权限和客体的安全属性都是固定的,由管理员通过授权决定一个主体对某个客体能否进行访问。
无论是DAC 还是MAC 都是主体和访问权限直接发生关系,根据主体/客体的所属关系或主体/客体的安全级别来决定主体对客体的访问权,它的优点是管理集中,但其实现工作量大、不便于管理,不适用于主体或客体经常更新的应用环境。
RBAC是一种可扩展的访问控制模型,通过引入角色来对用户和权限进行解耦,简化了授权操作和安全管理,它是目前公认的解决大型企业的统一资源访问控制的有效访问方法,其 2 个特征是:(1) 由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,从而减小授权管理的复杂性,降低管理开销;(2)灵活地支持企业的安全策略,并对企业变化有很大的伸缩性。
2.2 RBAC 模型的基本思想在 RBAC 模型中,角色是实现访问控制策略的基本语义实体。
系统管理员可以根据职能或机构的需求策略来创建角色、给角色分配权限并给用户分配角色,用户能够访问的权限由该用户拥有的角色权限集合决定,即把整个访问控制过程分成2步:访问权限与角色相关联,角色再与用户关联,从而实现用户与访问权限的逻辑分离。
RBAC 模型引入了Role的概念,目的是为了隔离User(即动作主体,Subject)与Pr ivilege(权限,表示对Resource的一个操作,即Operation+Resource),当一个角色被指定给一个用户时,此用户就拥有了该角色所包含的权限。
rbac权限管理设计案例
RBAC(基于角色的访问控制)权限管理是一种流行的控制访问权限的技术,它利用角色的概念来控制用户的访问权限,通过用户身份的角色来确定用户被授予的权限。
1、RBAC 权限管理系统:
(1)权限定义:在RBAC中定义权限级别,可以分为基础权限和高级权限;
(2)角色定义:定义可以拥有某种特定权限的特定角色,以及可以为用户分配此类角色的操作;
(3)用户定义:为用户指定特定角色,以及为这些用户授予特定权限;
(4)权限分配:为特定用户设定特定的角色和权限;
(5)角色管理:确定每个用户的授权角色。
2、 RBAC 权限管理实施方法:
(1)数据库架构设计:构建用户表、角色表和权限表,定义角色和权限之间的关系;
(2)业务流程定义:为不同的业务场景定义合适的流程,并且在每个流程中对RBAC系统进行处理;
(3)安全管理:确定合理的安全解决方案,并严格执行,避免未经
授权的访问;
(4)系统调试:使用测试用例确保RBAC系统的正常运行,并通过
安全测试确保系统的安全性。
3、 RBAC 权限管理应用场景:
(1)企业组织:在企业内部进行精细化的权限管理,控制员工的访
问权限和功能权限;
(2)金融行业:用于控制银行业务的权限,确保用户访问银行业务
的安全性;
(3)软件开发:用于控制针对不同用户当前软件功能的访问权限;(4)互联网应用:确保网站访问者和用户能够访问正确权限的内容。
总之,RBAC权限管理是一种经过完善的安全控制解决方案,它可以
根据实际的场景,更精细地控制用户的访问权限,帮助企业实现细分
的权限控制,确保企业网络的安全。
基于角色的访问控制(RBAC)设计思想基于角色的访问控制设计思想摘要分析访问控制的一般设计思路,提出一套基于角色的访问控制的设计思路,并使其成为一个模块加入到系统中使得系统能实现为不同角色的用户提供不同的权限并进行验证等功能。
内容简介有这么一个案例:国内有一家大型知名医药企业,它们使用了一套企业管理系统,总公司经理用自己的账户登录后能进行查看企业销售报表,审核订单等操作,而区域销售代表用自己的账户登录后能够使用该系统进行客户信息维护、为客户下订单、提取预付款等操作,在公司总部大楼内,财务部会计用自己的账户登录后可以使用帐务结算、工资发放等操作…在这套系统中,区域销售代表是无权查看企业销售报表,也无权进行审核订单操作的,其他人也类似,整个企业的所有员工在该系统中都各司其职,都无法越权使用超越自己职责范围的操作。
甚至他们各自进入系统所能看到的界面都不尽相同。
这对该系统来说,它就必须要有一个判断逻辑:主体、行为、对象,也就是说谁能做什么事或者谁不能做什么事。
本文将和你一起讨论该访问控制模块的设计思想,首先将会提供一些模型并加以分析,然后一步步改进,最后得到一个小型但是比较完整的模型。
目的注意本文所实现的模型并不是完整意义的访问控制系统,它仅仅实现了其中的一小部分,它只解决一些粗粒度的权限,也就是仅仅告诉系统谁能做什么事或者谁不能做什么事。
从程序的角度来讲,它只是以能为上层的访问控制系统提供服务为目标。
相当多细粒度的权限问题因其极其独特而不具通用意义,它们被看作是业务逻辑的一部分。
比如,要求:合同只能被它的创建者删除,与创建者同组的用户可以修改,所有的用户能够浏览,这既可以认为是一个细粒度的权限问题,也可以认为是一个业务逻辑问题,在整个权限系统的架构设计之中对其不予过多考虑。
当然,权限系统的架构也必须要能支持这样的控制判断。
或者说,系统提供足够多但不是完全的控制能力。
系统只提供粗粒度的权限,细粒度的权限被认为是业务逻辑的职责,它不提供所有关于权限的问题的解决方法,只提供一个基础,并解决那些具有“ 共性” 的( 或者说粗粒度的) 部分。
RBAC(基于⾓⾊的访问控制)⽤户权限管理数据库设计RBAC(Role-Based Access Control,基于⾓⾊的访问控制),就是⽤户通过⾓⾊与权限进⾏关联。
简单地说,⼀个⽤户拥有若⼲⾓⾊,每⼀个⾓⾊拥有若⼲权限。
这样,就构造成“⽤户-⾓⾊-权限”的授权模型。
在这种模型中,⽤户与⾓⾊之间,⾓⾊与权限之间,⼀般者是多对多的关系。
(如下图)⾓⾊是什么?可以理解为⼀定数量的权限的集合,权限的载体。
例如:⼀个论坛系统,“超级管理员”、“版主”都是⾓⾊。
版主可管理版内的帖⼦、可管理版内的⽤户等,这些是权限。
要给某个⽤户授予这些权限,不需要直接将权限授予⽤户,可将“版主”这个⾓⾊赋予该⽤户。
当⽤户的数量⾮常⼤时,要给系统每个⽤户逐⼀授权(授⾓⾊),是件⾮常烦琐的事情。
这时,就需要给⽤户分组,每个⽤户组内有多个⽤户。
除了可给⽤户授权外,还可以给⽤户组授权。
这样⼀来,⽤户拥有的所有权限,就是⽤户个⼈拥有的权限与该⽤户所在⽤户组拥有的权限之和。
(下图为⽤户组、⽤户与⾓⾊三者的关联关系) 在应⽤系统中,权限表现成什么?对功能模块的操作,对上传⽂件的删改,菜单的访问,甚⾄页⾯上某个按钮、某个图⽚的可见性控制,都可属于权限的范畴。
有些权限设计,会把功能操作作为⼀类,⽽把⽂件、菜单、页⾯元素等作为另⼀类,这样构成“⽤户-⾓⾊-权限-资源”的授权模型。
⽽在做数据表建模时,可把功能操作和资源统⼀管理,也就是都直接与权限表进⾏关联,这样可能更具便捷性和易扩展性。
(见下图) 请留意权限表中有⼀列“权限类型”,我们根据它的取值来区分是哪⼀类权限,如“MENU”表⽰菜单的访问权限、“OPERATION”表⽰功能模块的操作权限、“FILE”表⽰⽂件的修改权限、“ELEMENT”表⽰页⾯元素的可见性控制等。
这样设计的好处有⼆。
其⼀,不需要区分哪些是权限操作,哪些是资源,(实际上,有时候也不好区分,如菜单,把它理解为资源呢还是功能模块权限呢?)。
目录摘要 (2)关键词 (2)第1章绪论 (2)1.1研究背景 (2)1.2课题研究的意义 (2)第2章RBAC访问控制技术发展状况 (3)2.1国内外发展状况 (3)2.2RBAC在实际应用方面的意义和价值 (3)第3章基于角色的访问控制系统设计与实现 (4)3.1RBAC的基本概念 (4)3.2权限树的设计与实现 (5)3.3用户管理模块 (8)3.4角色管理模块 (9)3.5权限管理模块 (10)3.6用户角色的授权模块 (10)3.7用户角色的激活模块 (11)第4 章系统运行模型 (12)4.1 用户认证 (12)4.2 安全访问控制 (13)4.3测试验证点 (13)第5章总结与展望 (13)致谢 .................................................. 错误!未定义书签。
基于角色的访问控制系统的设计与实现摘要:访问控制就是当系统资源受到未经授权的非法操作时,能够提供适当的保护措施。
访问控制实质上是对资源使用的限制,决定主体是否可以对客体执行某种操作。
本访问控制系统,通过引入角色的概念,将用户映射为在一个组织中的某种角色,把访问权限授权给相应的角色,根据用户拥有的角色进行访问授权与控制,有效整合了传统访问控制技术的优势,又克服了它们的不足,使得制订和执行保护策略的过程更加灵活,也简化了管理员的管理工作。
本访问控制方面采用了基于RBAC97的访问控制模型,提出了角色分级管理算法及授权增量设置原则,为电力通信资源管理系统的用户、业务、底层数据提供授权、访问控制、及权限管理的功能。
并提供了一个图形化的角色管理工具来简化管理员的工作;由于本访问控制系统构建于J2EE的MVC模式之上,并基于RMI通信技术,使得它能够作为客户UI层与其他各层的中间件,为业务功能层提供授权与访问控制接口,以实现不同功能的业务视图。
为底层数据层提供数据控制接口,以实现对不同数据资源的安全访问功能。
关键词:RBAC 权限管理;角色;反射;自定义属性第1章绪论1.1 研究背景电力通信资源管理系统是一面向多用户、面向多种电力通信资源具有多个功能模块的大型综合通信资源信息系统。
在电力通信资源管理系统中,将会存在很多的位于不同地理位置和不同层次的管理和操作人员,需要访问控制系统对各种用户的登陆进行验证,对用户的所有操作进行授权,即要给他们赋予一定的访问和操作权限,还要对各个应用区域中的敏感数据和信息进行保密处理,最明显的就是允许/不允许管理员或用户访问并操作管理系统中的重要敏感数据和参数。
这些都对访问控制系统的设计和开发提出了很多新的要求。
授权访问控制利用信息访问控制过程中的安全策略,基于此安全策略,在统一的管理和控制策略支配下,对网络行为进行监测和控制,达到对通信资源信息进行安全保护和管理的目的。
1.2 课题研究的意义基于角色的访问控制策略在网络环境中,能够限制和控制通过通信链路对主机系统和应用的访问。
为了达到这种控制,每个想获得访问的实体都必须经过鉴别或身份验证。
它被认为是一种更普遍使用的访问控制模型,可以有效表达和巩固特定事物的安全策略,有效缓解传统安全管理处理瓶颈问题。
它具有减少授权管理复杂性,降低管理开销,并能提供与综合系统组织结构相一致的安全策略的优势,被公认是大型信息管理应用环境中实现授权管理的最佳方案。
第2章RBAC访问控制技术发展状况2.1国内外发展状况RBAC(Role-Based Access Control)是近年来在信息安全领域访问控制方面的研究热点和重点。
它和DAC、MAC称为三大访问控制策略。
第一次使用RBAC术语,是David Ferraiolo和Rick Kuhn于1992年在美国国家标准技术局的第15届国家计算机安全会议提出来的。
之后,出现了各个不同RBAC模型,其中,以Ravi Sandhu等人提出的RBAC96模型最为典型,从而掀起了一股研究RBAC的浪潮。
1995年11月召开了第一次ACM-RBAC大会清题为基于角色访问控制的ACM大会),在这次大会中所有专家一致认为基于角色的访问控制和技术非常实用,应该继续深入探讨。
在RBAC研究历程中,1996年美国George Mansion Univ.Ravi S.Sandhu教授在IEEE computer上发表的一篇学术论文《Role-Based Access Control》。
在该文中Sandhu教授正式提出了RBAC96模型家族,它对RBAC进一步的深入研究奠定了基础。
此后国内外研究者在RBAC96模型家族的基础上提出了许多扩展模型。
目前国外RBAC研究机构主要是美国NIST和George Mansion Univ.LIST实验室(Prof.Ravi.Sandhu)。
NIST主要是进行RBAC及其相关模型的标准化工作,LIST 侧重于对RBAC、RBDM及其扩展模型的创建、形式化描述,评价分析,以及在web中的应用等。
国内最早的相关学术论文是1994年华中理工大学马建平的硕士学位论文《一种无干扰的访问控制模型》。
而国内与国外比较,国内主要是学术机构如中国科学院软件研究所和华中科技大学计算机科学与工程系,他们正在对RBAC模型扩展和应用方面进行深入的研究。
尚无比较成熟基于角色的访问控制(RBAC)及应用研究的RBAC安全访问控制产品。
2.2 RBAC在实际应用方面的意义和价值RBAC模型不可能单一,可以从非常简单到非常复杂,实际上RBAC是一个没有边界的模型。
同时,这方面的研究也才刚刚开始,如管理模型、授权和个性化和跨组织分布式系统等等。
因此,RBAC还有非常丰富的研究领域。
对于一个大型系统,角色的数量成百上千,管理这些角色和它们之间的关系将会是一个可怕的任务,如何有效地管理RBAC则成为一个新的问题。
RBAC的最大优势在于它对授权管理的支持。
通常的访问控制实现万法,将用户与访问权限直接相联系,当组织内人员新增或有人离开时,或者某个用户的职能发生变化时,需要进行大量授权更改工作。
而在RBAC 中,角色作为一个桥梁,沟通于用户和资源之间。
对用户的访问授权转变为对角色的授权,然后再将用户与特定的角色联系起来。
一个RBAC系统建立起来以后,主要的管理工作即为授权或取消用户的角色。
RBAC的另一优势在于:系统管理员在一种比较抽象且与企业通常的业务管理相类似的层次上。
根据NIST在2002年一月份的一份调查报告(The Economic Impact ofRole-Based Access Control),分析了RBAC的诸多优点以及实施RBAC所产生的经济效益统计分析,得出如下结论:(1)RBAC从投入到公司/企业应用,到从RBAC带来的好处中获益,根据公司的大小不同,需要1到3个季度:这段期间是RBAC与旧系统的合并与融合期;(2)RBAC的NPV(net present value净产值)是实施RBAC的成本的69倍到158倍;RBAC的IRR(internal rate of return,内部收益率)是39%到90%。
从上可以看出,其中蕴藏的商机是巨大的。
尤其随着国家电子政务的推行,政府机构的办公自动化程度、企业信息化程度的提高,在政府、金融、信息资源管理等领域,RBAC将有越来越广阔的应用发展前景。
第3章基于角色的访问控制系统设计与实现3.1 RBAC的基本概念RBAC认为权限授权实际上是Who、What、How的问题。
在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What(Which)进行Ho w的操作”。
Who:权限的拥用者或主体(如Principal、User、Group、Role、Actor等等)What:权限针对的对象或资源(Resource、Class)。
How:具体的权限(Privilege,正向授权与负向授权)。
Operator:操作。
表明对What的How操作。
也就是Privilege+Resource Role:角色,一定数量的权限的集合。
权限分配的单位与载体,目的是隔离User与Privilege的逻辑关系.Group:用户组,权限分配的单位与载体。
权限不考虑分配给特定的用户而给组。
组可以包括组(以实现权限的继承),也可以包含用户,组内用户继承组的权限。
User与Group是多对多的关系。
Group可以层次化,以满足不同层级权限控制的要求。
RBAC的关注点在于Role和User, Permission的关系。
称为User assign ment(UA)和Permission assignment(PA).关系的左右两边都是Many-to-Many 关系。
就是user可以有多个role,role可以包括多个user。
凡是用过RDBMS都知道,n:m 的关系需要一个中间表来保存两个表的关系。
这UA和PA就相当于中间表。
事实上,整个RBAC都是基于关系模型。
Session在RBAC中是比较隐晦的一个元素。
标准上说:每个Session是一个映射,一个用户到多个role的映射。
当一个用户激活他所有角色的一个子集的时候,建立一个session。
每个Session和单个的user关联,并且每个Us er可以关联到一或多个Session.在RBAC系统中,User实际上是在扮演角色(Role),可以用Actor来取代U ser,这个想法来自于Business Modeling With UML一书Actor-Role模式。
考虑到多人可以有相同权限,RBAC引入了Group的概念。
Group同样也看作是A ctor。
而User的概念就具象到一个人。
这里的Group和GBAC(Group-Based Access Control)中的Group(组)不同。
GBAC多用于操作系统中。
其中的Group直接和权限相关联,实际上R BAC也借鉴了一些GBAC的概念。
Group和User都和组织机构有关,但不是组织机构。
二者在概念上是不同的。
组织机构是物理存在的公司结构的抽象模型,包括部门,人,职位等等,而权限模型是对抽象概念描述。
组织结构一般用Ma rtin fowler的Party或责任模式来建模。
Party模式中的Person和User的关系,是每个Person可以对应到一个User,但可能不是所有的User都有对应的Per son。
Party中的部门Department或组织Organization,都可以对应到Group。
反之Group未必对应一个实际的机构。
例如,可以有副经理这个Group,这是多人有相同职责。
引入Group这个概念,除了用来解决多人相同角色问题外,还用以解决组织机构的另一种授权问题:例如,A部门的新闻我希望所有的A部门的人都能看。