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

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

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

作者:王伟全张学平

来源:《软件导刊》2012年第01期

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

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

中图分类号:TP311.52 文献标识码:A 文章编号:1672-7800(2012)001-0107-

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 实现模型的关键技术

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

Web应用程序的开发周期。

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结合起来才有意义。

相关文档
最新文档