RBAC模型基于角色-功能-资源的权限控制模型

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1关于RBAC模型的扩展点在项目开发中,往往需要涉及到权限模型的问题,现在比较流行的设计方案是RBAC3模型,园子里有很多关于这方面的文章,我这里就不多写了。为了使权限系统更加通用,减少开发人员在项目开发过程中的重复劳动,我想实现一个比较通用的权限系统,提供接口和扩展点方便程序员使用。网上有不少关于这方面的开源系统,在看了几个系统后,想对一般的RBAC3模型提出一些扩展点,不知道是否可行,请大家指点!1、用户组授权功能。2、角色类型功能。这个功能并不是很重要,建立一个类型表,每个角色可以归属一个角色类型,便于表达方便,层次清晰,这个功能主要的作用在于表示层的显示上。3、角色优先功能。可以定义一个优先级别表,给每个角色赋予优先级别,在处理角色的请求时,根据角色的优先级别排入链表里进行处理,链表里的角色请求可以根据优先级别的不同动态调整,系统在处理角色请求时,每次都从队首取一个角色请求,再将队首指针指向下一个角色请求。4、角色生存周期功能。这个功能可以指定角色的生存时间,时间可以是用户指定的,也可以是根据某个条件来决定的。5、角色根据责任链动态变更权限功能。在一个责任链里,一个客户程序发出请求,这个请求将沿着责任链进行传递,责任链里的每个结点将依次处理该请求,如果结点不能处理该请求,则将此请求转发到责任链的下一结点上;或者是,责任链中的每一个结点都对该请求进行处理。在处理的过程中,角色的权限将根据需求动态变化。26、角色根据状态动态变更权限功能。在应用程序中可能存在多种状态,比如在一个字处理程序中,当文件状态是只读时,和文件状态在可读可写时,它的功能是不一样的,那么角色需要根据这种状态的变更而动态变更权限集,以便适应这种应用程序的要求。程序的实现(应该有漏洞,还没有完全想好,请指正):客户程序启动后,便将权限框架核心态装入内存,并且只产生一个实例以节约内存。核心中维持每个用户的Session,其内容包含角色类型、角色优先级别、角色生存周期、程序状态、权限表、其中权限表根据其它条件的变化而不同,用户每次使用资源均需要访问权限框架中的权限表。当程序状态改变时,程序需要通知框架,框架根据此变化再根据其它信息(从数据库中读取不同状态时不同权限的信息,以及角色类型、角色优先、角色生存周期等)改变权限表,此时用户读取权限表,便可以实现权限的不同。权限的读取:使用Net中的Attribute功能读取权限,或者是根据XML配置权限。实现两种读取权限的方法,便于用户选择使用。读取引擎通过读取客户程序中的特性或者配置文件,得到客户程序的结构框架,根据结构框架生成权限信息写进数据库。实现要点:使用WebService提供服务,使同构或者异构系统均能使用权限系统。权限框架的接口一定要使客户程序方便调用,框架核心程序一定要精简高效,核心程序实际上是在UI层与业务层中起穿针引线的作用,该处使用AOP模式实现。以上几点在匆忙中想出,我对RBAC3模型的认识也不是很深刻,所以应该存在不少漏洞,恳请朋友们来拍砖,我好改进,谢谢:基于RBAC模型的权限管理系统的设计和实现摘要:提出了基于RBAC模型的权限管理系统的设计和实现方案。介绍了采用的J2EE架构的多层体系结构设计,阐述了基于角色的访问控制RBAC模型3的设计思想,并讨论了权限管理系统的核心面向对象设计模型,以及权限访问、权限控制和权限存储机制等关键技术。关键词:权限管理系统;角色;访问控制;RBAC模型;J2EE;LDAP引言管理信息系统是一个复杂的人机交互系统,其中每个具体环节都可能受到安全威胁。构建强健的权限管理系统,保证管理信息系统的安全性是十分重要的。权限管理系统是管理信息系统中可代码重用性最高的模块之一。任何多用户的系统都不可避免的涉及到相同的权限需求,都需要解决实体鉴别、数据保密性、数据完整性、防抵赖和访问控制等安全服务(据ISO7498-2)。例如,访问控制服务要求系统根据操作者已经设定的操作权限,控制操作者可以访问哪些资源,以及确定对资源如何进行操作。目前,权限管理系统也是重复开发率最高的模块之一。在企业中,不同的应用系统都拥有一套独立的权限管理系统。每套权限管理系统只满足自身系统的权限管理需要,无论在数据存储、权限访问和权限控制机制等方面都可能不一样,这种不一致性存在如下弊端:a系统管理员需要维护多套权限管理系统,重复劳动。b用户管理、组织机构等数据重复维护,数据一致性、完整性得不到保证。c由于权限管理系统的设计不同,概念解释不同,采用的技术有差异,权限管理系统之间的集成存在问题,实现单点登录难度十分大,也给企业构建企业门户带来困难。采用统一的安全管理设计思想,规范化设计和先进的技术架构体系,构建一个通用的、完善的、安全的、易于管理的、有良好的可移植性和扩展性的权限管理系统,使得权限管理系统真正成为权限控制的核心,在维护系统安全方面发挥重要的作用,是十分必要的。本文介绍一种基于角色的访问控制RBAC(Role-BasedpoliciesAccessControl)模型的权限管理系统的设计和实现,系统采用基于J2EE架构技术实现。并以讨论了应用系统如何进行权限的访问和控制。1采用J2EE架构设计采用J2EE企业平台架构构建权限管理系统。J2EE架构集成了先进的软件体4系架构思想,具有采用多层分布式应用模型、基于组件并能重用组件、统一完全模型和灵活的事务处理控制等特点。系统逻辑上分为四层:客户层、Web层、业务层和资源层。a.客户层主要负责人机交互。可以使系统管理员通过Web浏览器访问,也可以提供不同业务系统的API、WebService调用。b.Web层封装了用来提供通过Web访问本系统的客户端的表示层逻辑的服务。c.业务层提供业务服务,包括业务数据和业务逻辑,集中了系统业务处理。主要的业务管理模块包括组织机构管理、用户管理、资源管理、权限管理和访问控制几个部分。d.资源层主要负责数据的存储、组织和管理等。资源层提供了两种实现方式:大型关系型数据库(如ORACLE)和LDAP(LightDirectoryAccessProtocol,轻量级目录访问协议)目录服务器(如微软的活动目录)。2RBAC模型访问控制是针对越权使用资源的防御措施。基本目标是为了限制访问主体(用户、进程、服务等)对访问客体(文件、系统等)的访问权限,从而使计算机系统在合法范围内使用;决定用户能做什么,也决定代表一定用户利益的程序能做什么[1]。企业环境中的访问控制策略一般有三种:自主型访问控制方法、强制型访问控制方法和基于角色的访问控制方法(RBAC)。其中,自主式太弱,强制式太强,二者工作量大,不便于管理[1]。基于角色的访问控制方法是目前公认的解决大型企业的统一资源访问控制的有效方法。其显著的两大特征是:1减小授权管理的复杂性,降低管理开销;2灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。NIST(TheNationalInstituteofStandardsandTechnology,美国国家标准与技术研究院)标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0(CoreRBAC)、角色分级模型RBAC1(HierarchalRBAC)、角色限制5模型RBAC2(ConstraintRBAC)和统一模型RBAC3(CombinesRBAC)[1]。RBAC0模型如图1所示。图1RBAC0模型a.RBAC0定义了能构成一个RBAC控制系统的最小的元素集合。在RBAC之中,包含用户users(USERS)、角色roles(ROLES)、目标objects(OBS)、操作operations(OPS)、许可权permissions(PRMS)五个基本数据元素,权限被赋予角色,而不是用户,当一个角色被指定给一个用户时,此用户就拥有了该角色所包含的权限。会话sessions是用户与激活的角色集合之间的映射。RBAC0与传统访问控制的差别在于增加一层间接性带来了灵活性,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的扩展。b.RBAC1引入角色间的继承关系,角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构。c.RBAC2模型中添加了责任分离关系。RBAC2的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。责任分离包括静态责任分离和动态责任分离。约束与用户-角色-权限关系一起决定了RBAC2模型中用户的访问许可。d.RBAC3包含了RBAC1和RBAC2,既提供了角色间的继承关系,又提供了责任分离关系。3核心对象模型设计根据RBAC模型的权限设计思想,建立权限管理系统的核心对象模型。如图2所示。对象模型中包含的基本元素主要有:用户(Users)、用户组(Group)、角色6(Role)、目标(Objects)、访问模式(AccessMode)、操作(Operator)。主要的关系有:分配角色权限PA(PermissionAssignment)、分配用户角色UA(UsersAssignmen描述如下:图2标准RBAC模型(角色)应用于CMS的必要性随着企事业单位信息化的加速发展,特别是政府、事业单位、企业等领域,由于日常部门较多、分工较细化,对用户访问权限控制管理的灵活性、易维护性提出了更高的需求,因此,高效且先进的权限控制方式是十分必要的。对于在网站环境中的访问控制方法,基于角色的访问控制方法(RBAC)是目前公认的解决中大型网站信息化的统一资源访问控制的有效方法。其显著的两大特征是:1、减小授权管理的复杂性,降低管理开销。2、灵活地支持网站的安全策略,并对网站职能的变化有很大的伸缩性。本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系。动易SiteFactoryCMS正是一套以面向政府、事业单位、企业等领域为开发对象的企业级内容管理系统,它采用的就是基于标准RBAC模型(角色)的访问控制方法。如下图所示,传统权限与动易SiteFactoryCMS角色的对比图:7从对比可以看出,目前国内大大小小的内容管理系统(CMS)和信息管理系统,大都采用的是静态的权限控制方法或者会员组的较原始权限形态,不能够满足目前互联网信息爆炸时代的高维护性、高灵活性、高统一性的特点,特别是各信息门户、复杂网店及行业垂直信息领域的应用需求,因此,角色(RBAC模型)在CMS中的应用必将是趋势所在。那么,它究竟有何魔力呢今天将要介绍的内容就是结合动易SiteFactory中角色的权限分配来为你解答。。角色的概念角色是用户在某个环境中的身份,这个身份拥有某些相匹配的权限。角色也一种是自定义权限的集合,您可以建立多个角色,并给每个角色指定多个权限。例如学校网站的教师、学生、论坛管理员都是一种角色。对于每一个角色,他可以拥有一系列权限,而这些权限是相对固定的。动易SiteFactoryCMS的角色是通过标准RBAC(基于角色的访问控制)模型实现的,下图为SiteFactoryCMS中角色应用举例示意图。我们建立了“仓管”、“财务人员”、“销售员”、“设计师”、“栏目编辑”、“总编”等角色,并且它们都具有相对独立的控制权限。将张三、李四、王五赋予不同的角色后,他们就拥有了一系列权限。从图中看出用户与角色是多对多的关系。即一个用户可以属于多个角色之中,一个角色可以包括多个用户。8角色的特点1、访问权限与角色相关联,不同的角色有不同的权限。用户以什么样的角色对资源进行访问,决定了用户拥有的权限以及可执行何种操作。比如:我们使用动易SiteFactoryCMS在后台添加一个“订单处理员”的角色,拥有“查看订单”、“修改订单”、“删除订单”、“订单作废”的权限;添加“订单结算员”的角色,拥有“订单过户”、“订单关闭”的权限。赋予张三“订单处理员”的角色,那么张三就拥有了“查看订单”、“修改订单”、“删除订单”、“订单作废”的权

1 / 69
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功