基于岗位抽象的角色权限控制模型设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于岗位抽象的角色权限控制模型设计与实现

摘要:通过对传统访问控制技术及其局限性的探讨,提出了全新的基于岗位抽象的角色权限控制模型,画出了新模型的图示,介绍了新模型中“用户定岗”和“岗位授权”两个主要关系,阐述了新模型的优点。详细地阐述了实现新模型的关键技术,给出了新模型的总体结构图和总体类图,并对总体类图中的各个类及其关系进行了详细的说明。最后,总结了新模型的实用性及其推广应用价值。

关键词:RBAC;岗位;岗位互斥;定岗;授权

1 传统访问控制技术及其局限性

访问控制实质上是对资源使用的限制,决定主体是否被授权客体或资源执行某种操作,是保障系统安全不可或缺的重要组成部分。目前,主要有3种不同类型的访问控制:自主访问控制(DAC)、强制访问控制(MAC)和基于角色的访问控制(RBAC)。

自主访问控制(DAC)是目前计算机系统中实现最多的访问控制机制,如Windows操作系统。强制访问控制(MAC)是强加给访问主体的,即系统强制主体服从既定的访问控制策略,主要应用于军事方面。这两种访问控制方式都只适用于特定的领域,具有一定的局限性。基于角色的访问控制(RBAC)引入了角色的概念,在授权主体和客体之间增加的角色这个中间层,实现了主客体的逻辑分离,具有一定的通用性。但RBAC在实际的应用中仍然存在一些问题,如:角色的继承机制有缺陷,会造成某些角色的权限过大;权限定义较模

糊、笼统,不够清晰;无法满足“同角色不同人员不同权限”的需求。基于上述原因,本文提出一种扩展的RBAC新模型,引入了“岗位”概念,有效地弥补了传统RBAC的不足。

2 基于岗位抽象的角色权限控制模型

2.1 模型定义

新模型是在传统RBAC模型基础上引入“岗位”概念,模拟现实中的岗位管理制。其基本思想是:机构与角色结合形成岗位,模块与操作结合形成权限,先将权限赋给岗位(授权),再将人员指派到岗位(定岗),实现对系统资源的细粒度访问控制。如图1所示:

图 1 基于岗位抽象的角色权限图 2 基于岗位抽象的角色控制模型权限模型总体结构

新模型中包含的主要关系:

用户定岗:为用户指派岗位,受岗位基数约束,当岗位基数大于1时是用户与岗位之间是多对多的关系。

岗位授权:将权限赋给岗位,岗位和权限之间是多对多的关系。

新模型中定义的约束:岗位互斥关系(Mutually Exclusive Posts):用于指定两个岗位具有不同的职责,不能让同一个用户同时拥有。

岗位基数限制(Post Cardinality Constraints):用于指定一个岗位可被同时授权的数目。比如一个学校的校长只能由一个用户担任,那么这个学校校长岗位的岗位基数就为1。

2.2 模型优点

基于岗位抽象的角色权限控制模型以“人员定岗”、“岗位授权”为核心,权限访问控制整个过程逻辑清晰、步骤简单。主要优点如下:①引入了“岗位”概念,模拟现实中的岗位机制,易于理解,便于操作;②权限定义为模块与操作的二元组,不仅实现了页面级别的访问控制,而且实现了功能(按钮)级别的访问控制,即能将访问权限限制到某个用户对某个模块的某个具体操作;③机构与角色结合形成岗位,通过岗位授权、人员定岗控制访问权限,有效地解决了RBAC 中“同角色不同人员不同权限”这一问题,遵循了最小特权原则。

3 基于岗位抽象的角色权限控制模型实现

3.1 实现模型的关键技术

3.1.1

是一种将各种Web元素组合在一起的服务器技术,是一个统一的Web开发平台,用来提供开发人员生成企业级Web 应用程序所需的服务。完全基于模块与组件,是一种建立在公共语言运行时CRL基础之上的程序开发架构,具有很好的可扩展性与可定制性。开发人员可以方便利用其托管的公共语言运行库环境、类型安全、继承等,有效缩短Web应用程序的开发周期。

3.1.2 Ajax

Ajax全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),结合了XML、JavaScript等编程技术,是一种创建交互式网页应用的网页开发技术。Ajax以一种崭新的方式来使用所有的这些技术,实现异步交互无刷新,使得基于B/S模式的传统

Web开发焕发了新的活力,大大改善了用户体验。

3.2 模型总体结构图

为了使基于岗位抽象的角色权限模型更加清晰、更易操作和管理,特将其分为基础数据管理和权限管理两大部分,总体结构图如图2所示。

3.3 模型总体类图及说明

图3 基于岗位抽象的角色权限模型总体类图

Department:机构,使用系统的组织机构,Department具有树形层次关系。

Role:角色,表示用户在一个机构中担任的职务。例如:学校机构中,校长、教师、学生都是角色。

Post:岗位,是(Department,Role)的二元组,直接映射现实中的岗位。例如:海南师范大学校长、计算机科学与教育技术系主任都是岗位。一个岗位可以有一个或多个Person,一个Person可以指派到一个或多个岗位上。

OpposePost:互斥岗位,不能同时指派给某一个用户的两个岗位为互斥岗位。例如在银行系统中,一个用户不能同时为出纳员和审计员。

UserGroup:表示User的组织关系,UserGroup是具有树形层次关系的。一个Person可以属于多个UserGroup,一个UserGroup可以包含多个用户。

Resource:功能模块,系统中的功能页面。通常是在系统设计阶段就定义好的,客户不可以自行修改的。

Operate:操作,可简单理解为数据的增、删、改、查等操作,一个Operate本身没有任何意义,只有与Resource结合起来才有意义。

Permission:权限,是(Resource,Operate)二元组,用户在系统中的任何操作都可以被定义为权限,例如:增加用户、删除日志都是不同的权限。

4 结束语

基于B/S模式的管理信息系统面临着日益复杂的数据资源安全管理难题,基于岗位抽象的角色权限控制模型引入了岗位概念,实现了用户与访问权限的逻辑分离和构造角色之间的层次关系,达到了细粒度的权限控制。该权限控制模型已经成功地应用于管理信息系统的设计和开发实践中,集成性良好。实践表明,该权限控制模型具有权限分配直观、容易理解、便于使用、扩展性好、支持岗位管理、权限多变等优点,具有很强的实用性和可重用性。

参考文献:

[1]普继光.基于角色的访问控制系统的设计和应用[D].成

相关文档
最新文档