Web应用系统中多重角色访问控制的实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:huaiwanshi163
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:该文对于当前Web应用系统中存在的用户身兼多职,多重角色的情况,通过控制Web应用系统中对于不同的用户角色显示对应页面,加以用户角色属性判断,扩展了RBAC模型,并实现了一种解决多重角色用户访问权限控制的方法,能实现多重角色的组合。该方法在实际项目运行中的实践结果显示该方法能够有效运用于B/S架构的Web应用系统里用户多重角色的权限控制中。
  关键词:多重角色;基于角色的访问控制(RBAC);权限控制
  中图分类号:TP311.1 文献标识码:A 文章编号:1009-3044(2017)06-0140-04
  Abstract: For the situation that the user is a multi-role and multi roles in the current Web application system, this paper according to control the Web application system for different user roles show the corresponding page and checking user role’s attribute and extended RBAC model, which is able to provide a method to solve the multi-role user access control,and to achieve a combination of various roles.The practical results of the method indicate that the method can be effectively used in the B/S structure of the Web application system, which need to process the roles of the user with multiple roles.
  Key words: multi-roles; role based access control(RBAC); access rights
  1 背景
  访问控制(Access Control)是按照用户的身份及其所归属的某项定义组来限制用户对某些信息的访问,或者限制对某些控制功能使用的一种技术。访问控制在身份认证环节之后,根据该身份提出的资源请求加以控制。
  现有的用户权限管理方法有自主访问控制(discretionary access control,DAC),强制访问控制(mandatory access control,MAC)和基于角色的访问控制(role-based access control,RBAC)[1]。目前行业对RBAC模型的研究聚焦于模型的扩展以及改进、信息系统应用方面。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。其中,权限是指针对信息系统的操作权力,权限赋予角色,角色分配给用户。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起来以囊括更广泛的客观情况。其授权模型如图l所示。
  RBAC模型在应用于高校内部财务结转系统过程中,在角色和用户权限中分别设置优先级约束和继承约束避免了权限冲突[2],然而对于个别用户身兼多职,并且在不同的部门承担同一职位,例如一位用户既是高校二级学院院长,又是高校教务处处长,同时还是教材审批领导,其中院长和教务处处长的角色在系统中使用的功能操作栏相同,那么对该用户进行角色权限分配后,用户一旦登录系统进入功能栏时,应用RBAC模型分配的访问控制权限此时会出现数据错误,因为承担不同部门的同一职位在系统中获取到的数据并不相同。
  在此背景下,针对拥有多重角色(院长和教务处处长在系统中的角色名称均为用户部门领导)的用户,本文对RABC模型进行扩展,在不影响其他用户的前提下,实现了一种解决多重角色用户访问权限控制的方法。
  2 基于多重角色的权限控制
  2.1 权限控制的设计思想
  在许多应用系统中,都存在一部分用户身兼多职,并且跨部門供职,这部分用户会出现承担多个部门的同一角色,这种情况下,一个用户的部门信息有多个,多个部门对应一个角色,或者多个角色。直接应用RBAC模型,在应用系统中对不同角色对应不同可见性,那么身兼多个部门职位的用户在使用系统过程中就会因为多个部门对应同一角色的原因出现数据错误的问题,鉴于此,基于多重角色的权限控制是在RBAC模型的基础上增加了为角色分配用户所属部门信息,便于对用户进行管理和角色分配时具体到一个角色对应一个部门。从而RBAC模型中的为用户分配角色就转化为用户分配角色和角色对应的部门,用户所拥有权限是为其分配所有的角色对应权限的集合,这种模式在应对各种身兼多职的情况时,具有很强的授权灵活性。扩展后的授权模型如图2所示。
  对于开发基于B/S架构的Web信息系统,实质上是在开发、积累功能模块,每个功能模块都对应一些具有特定功能的页面文件,因此用户权限和页面是相联系的。
  设计实例时,先为用户分配角色,每个角色对应一些可操作的功能模块,即权限,分配角色时即为用户分配该角色对应的部门信息,在用户登录时依据用户名获得其对应的角色信息,依据角色展示给用户相应的操作栏。
  2.2 数据库设计
  根据基于多重角色的权限控制方法的设计思路,实例中和权限控制相关的数据表主要有5个:用户表,部门表,用户与所属部门、角色的对应关系表,角色表,角色与权限的对应关系表,分别如表1~表5所示,另外还需要一个视图来判断用户所拥有的权限。   该表中一个角色对应多个权限id,每个功能模块对应多个权限id,就会形成每个角色在每个功能模块中有一到多个操作。用户的权限根据表4中对应的角色在表5中找到相应的权限,对于身兼多职的用户从表4中根据部门编号确定展示数据,根据角色找到对应权限集合。
  3 基于多重角色的权限控制研究实例
  3.1 多重角色的分配
  实例中由管理员为身兼多职的用户分配多重角色,分配角色时选择该角色对应用户所属部门,主要代码如下:
  .............
  UserRole userRole=null;
  userRole=new UserRole(role_id,user_id,priority,bumen_id);
  if(userRoleService.save(userRole)==true){
  ajaxResult = AJAXUtil.newOk("分配权限成功!");
  }else{
  ajaxResult = AJAXUtil.newOk("分配权限失败!");
  }
  ….......
  多重角色用户登录系统时,根据用户角色数据查询每一角色对应的部门信息,主要代码如下:
  ………
  @Override
  public List getUserRoles(Long id) {
  UserRoleDAO userRoleDao = new UserRoleDAO();
  List userRoles = userRoleDao
  .getUserRoles(id);
  RoleDAO roleDao=new RoleDAO();
  BumenDAO bumenDao=new BumenDAO();
  Long bumen_id;
  Long role_id;
  for (UserRole userRole:userRoles) {
  role_id=userRole.getRole_id();
  userRole.setRole(roleDao.get(role_id));
  }
  //多重角色:查找与角色对应的部门信息。
  for (UserRole userRole:userRoles) {
  bumen_id=userRole.getBumen_id(); userRole.setBumen(bumenDao.get(bumen_id));
  }
  return userRoles;
  }
  .............
  
  
  
  角色名称
  优先级(数值越小,优先级越高)
  角色对应部门
  
  
  
  
  
  ${item.role.name td>
  ${item.priority}
  ${item.bumen.bmname}
  

  
  …….......
  3.2 生成用户界面
  用户登录后验证其合法性,权限控制系统根据用户编号从系统中读取出其对应的角色信息,再根据每个角色对应的权限为用户展示出可操作的权限集合,即功能栏。如图3中左侧的部分功能栏是给用户可操作的模块,每个子模块对应链接页面,图3右侧为每个链接页面数据内容的显示区。不同权限的用户登录后的功能栏也不同。如图4。
  对于身兼多职的用户,类似于跨部门或跨学院具备多重角色的用户,实例中充分考虑到用户的体验和易于交互,用户界面无需切换视图,即可处理多个职务对应的数据,达到了用户零察觉,高效办公的效果。如图5所示为用户显示多个角色对应的各部门的数据。
  3.3 权限控制
  1)为角色添加权限
  系统实例中创建了很多功能模块,每一个新增角色都是若干个功能模块根据业务逻辑需要的自由组合,新增角色时,系统为管理员用户提供了一个树形视图,能够非常方便地选择功能模块,如图6所示。
  2)多重角色用户
  对于具有多重角色的用户,分配角色时增加一个部门信息,在用户访问具体的功能模块时可根据角色对应的部门信息获取数据,具有非常强的灵活性。如图7所示,由管理员为用户分配角色,分配角色时同时选择角色对应的部门信息。
  4 结束语
  基于B/S架构的Web应用系统,对于安全性方面的要求非常高,因此,本文针对企业、校园中个人身兼多职的情况,结合Jsp技术以及Web应用框架Struts解决了多重角色用戶的访问控制,无需根据职务切换视图,处理工作流畅高效。本文提出的方案已在一个项目中应用,运行状况良好。
  参考文献:
  [1] Ravi Sandhu, Edward Coyne, Hal Feinstein et al.Role-Based Access Control Models[J]. IEEE Computer, 1996, 29(1): 38-47.
  [2] 邵奇峰, 韩玉民, 郑秋生. 一种混合授权的RBAC模型及其UML建模[J]. 武汉大学学报:理学版, 2014(4).
  [3] 陈宫浩, 卿粼波, 滕奇志, 等. RBAC权限管理模型在油田管理系统中的应用[J]. 微型机与应用, 2017(2).
  [4] 张宇一, 张保稳. 基于本体的RBAC建模及应用研究,[J].通信技术, 2017(1).
  [5] 牛永洁. 改进的RBAC在设备管理系统中的应用[J].电子设计工程, 2011(5).
  [6] 倪东英, 张晓丽. 基于RBAC的用户权限管理的设计与实现[J]. 济南大学学报:自然科学版, 2010(2).
  [7] 樊金生, 关保灿, 李晓东.基于角色的访问控制扩展模型及其实现[J]. 计算机工程与设计,2008, 29(18).
  [8] 黄伟强, 傅秀芬.基于角色的权限管理系统的研究与设计[J]. 现代计算机:专业版, 2011(5).
  [9] 王志瑞, 顾问, 刘正涛. 基于RBAC模型的权限组件[J]. 计算机系统应用, 2015(3).
  [10] 陈琛, 陈学广, 王煜, 等. 一种基于改进RBAC模型的EIS权限管理框架的研究与实现[J]. 计算机应用研究, 2010(10).
其他文献
摘要:通信网络工程项目具有点多、线长、面广的特点,面对成千上万乃至几十万个站点的项目,Excel在其投资控制、进度控制、合同管理、信息管理、资产管理等各方面都起到了积极的作用,占据了举足轻重的地位。  关键词:通信;网络工程;项目管理;Excel  中圖分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)36-0245-02  Microsoft Excel是微软公司的办公
摘要:国内网页设计教学,长期以来都是微软平台下,围绕Dreamwver展开,这种组合体现了高可用性,可视化开发的特点,但是它有各种弊端,平台封闭,版权成本高昂,平台的进化速度慢。为此在高职电子商务网页设计中引入新的时代特色,依托Linux 平台下的超强编辑器vim,emmet特有的快速开发,重新赋予网页设计新的亮点。  关键词:vim;emmet;电子商务;网页制作;教改  中图分类号:TP393
气象因素对冬奥会的准备和竞赛会产生重要影响。通过实地调查、数据分析和系统分析等方法,对2016—2017雪季北京冬奥会赛区及相关区域“窗口期”的气象资料进行分析。结果显
明朝诗人杨慎,不仅诗写的很好词也写的很好,他的代表作《临江仙》颇有特色,很受人称道:“滚滚长江东逝水,浪花淘尽英雄。是非成败转头空,青山依旧在,几度夕阳红。白发渔樵江渚上,惯看秋月春风。一壶浊酒喜相逢,古今多少事,都付笑谈中。”清人毛宗岗父子评点《三国演义》时,将这首《临江仙》词置于小说的卷首,因而广泛地流传开来,几乎是家喻户晓,妇孺皆知。由于词中有“青山依旧在,几度夕阳红”两句,所以有人认为“夕
近年来,随着互联网、高性能计算机的信息技术的发展,越来越多的信息化项目应用被投入到校园网络信息平台的建设中来,这就为进一步发展和研究数据挖掘技术提供了背景知识的支持。校园卡系统是高校建设智慧型校园的重要信息化载体,是高校的人、财、物等资源数据的重要整合和共享平台,是衡量高校信息化程度的首要标准。该文以数据挖掘为技术条件,对其在校园卡系统开发过程中的应用进行探讨。
社区体育组织作为承接基层全民健身组织的重要力量,面临基层社会的"原子态"、社会关系的外溢、社区自治的张力、虚拟社区的出现等一系列困境。提出:在研究范式上应关注个人社
高二册《归去来兮辞》:“登东皋以舒啸,临清流而赋诗。”课本注“登东皋以舒啸”:“登上东边的高冈,放声长啸。皋,高敞之地。”此注令人费解:为什么作者非要登上东边的高冈去长啸,其他方向的高冈就不能去登?或者他家只有东边才有高冈?课本注“皋”为“高敞之地”是对的,但将“东”释解为实指方位的词,则不妥。  《辞海》注“东皋”为“泛指田野或高地”,比课本的解释要确切些,但“东”字还没有落实。按,方位在古人的
信息化技术的不断发展的同时,科技也在日新月异地进步,数据库的使用越来越频繁,伴随着产生了大量的数据库的安全性问题。几乎所有的应用系统都会用到数据库,但是在数据的完整性、可用性、保密性方面也面临的最大的挑战。数据库的安全管理和日常维护,就成为数据库管理员需要重点关注的问题。该文阐述了数据库系统面临的主要问题,探讨了数据库在日常使用及维护中涉及的相关技术在提高数据库性能、安全保障方面起到的作用。
摘要:随着计算机技术的快速发展,大数据、云计算的广泛应用,数据库的信息安全面临着严峻的挑战,信息泄露、丢失等数据库安全问题给社会发展带来了巨大的损失。本文就数据库安全存在的风险问题进行剖析,并提出了具体的数据库安全防范措施和对策。  关键词:数据库;安全风险;对策措施  中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2016)32-0003-02  The Research o
摘要:《ASP.NET程序设计》作为高等职业院校甚至是应用型本科院校计算机及相近专业的一门重要的职业技能课程,在专业教学中占有重要的地位。在课堂教学中如果单纯采用以教材知识讲授、按部就班的教学方式,将不能有效提高学生的实践应用技能,学生缺乏综合操作技能的训练,培养的学生与企业要求还有很大的差距。在课堂教学中引入“项目驱动教学法”,以一个小型项目的设计与开发过程贯穿课程教学始终,把课程中分散的知识点