APP下载

基于对象属性约束权限控制研究与实现

2016-05-25曾锡山陈振洲

关键词:角色

曾锡山, 陈振洲

(华南师范大学计算机学院,广州 510631)



基于对象属性约束权限控制研究与实现

曾锡山*, 陈振洲

(华南师范大学计算机学院,广州 510631)

摘要:授权控制是软件设计中一个比较难处理的问题,目前大多授权研究均基于用户授权方法,未涉及授权后实现技术.上述授权技术通常采用简单限制或允许某些菜单、命令功能操作,授权控制方式简单、粒度大而且不灵活.文中提出一种基于对象属性的约束访问控制方法,通过对软件最小控制单位(对象属性)进行约束,很好解决上述问题;该方法具有授权管理方便以及实现简单等特点,并极大提高软件开发效率和复用程度.

关键词:角色; 对象属性; 控制粒度; 约束管理

提高访问控制安全性是软件设计必须解决的问题,应用程序根据不同角色授权不同资源使用,达到授权限制使用目的.角色管理是权限控制的一个重要环节,权限控制技术有3种:自主型访问控制(DAC)[1]、强制型访问控制(MAC)[2]和基于角色的访问控制(RBAC)[3].基于角色的访问控制(RBAC)是目前公认的解决资源访问控制的有效方法[4].其特征是:减小授权管理的复杂性,降低管理开销;灵活地支持企业的安全策略,对用户变化有很大的伸缩性.企业系统普遍采用基于角色的授权控制方法,根据需要设立不同操作权限的角色,用户通过授权不同角色获得相应操作权限.

基于角色访问控制已开展较多研究,应用效果好,但在软件设计中如何实现授权控制技术,一直困扰软件开发人员,目前涉及用户权限研究的文献基本是介绍基于角色如何授权的技术,对用户授权后软件设计或代码实现方法等关键技术少有介绍[5];另外,如何获得受约束控制资源、其规范要求、如何控制资源访问及实现技术也鲜有介绍[6],有的是采用静态把功能和相应具体角色或用户进行绑定[7].大多授权方法存在如下不足:

(1)授权粒度较大.授权资源的粒度大,大多采用菜单授权,少数是针对操作对象进行控制,每个菜单可能代表一个比较复杂处理功能,不能在处理模块授权,如需使用某个程序功能一部分,则需增加新模块实现使用,程序功能重复,不利于软件开发和维护[8].

(2)功能角色相互绑定,无法添加新角色.有些系统设计,可以把授权粒度缩小到某一个功能控件,但在程序中绑定了某些固定角色,所受约束的控件无法作为其他角色使用[9],不能实现新角色的添加及使用.

(3)控制简单.授权采用简单允许或限制操作,没有根据不同对象进行不同约束,策略简单、授权粒度较大,资源控制不够灵活,无法满足细化管理要求,造成软件功能重复现象.

(4)缺乏对非功能约束.无法根据业务或特定需求进行非功能执行的限制,例如对一个文本对象,无法增加用户只读、部分信息禁止显示等非执行约束.

本文提出一种基于对象属性访问控制方法,通过对软件的最小控制单位——对象属性约束,可以很好解决上述问题.

1基本原理及实现

基于对象属性访问控制是在RBAC基础上,针对展示层受约束对象属性进行授权和控制管理,不同角色用户使用展现层模块时,通过约束对象(控件)启动、只读、显示等3个属性,控制用户对控件响应、数据修改、信息显示等操作,实现对用户授权目的.

1.1基本概念

定义1启用控制(Enabled).Enabled属性用来设置控件是否启动,Enabled取值为“True”时可以启动,Enabled取值为“Fasle”时,对象不可以启动、被禁止, Enabled控制的默认值为“True”.

定义2文本读写控制(Readonly).Readonly 表示文本对象是否可以被更改操作,Readonly设置为“True”时,该文本对象不能被更改、只能只读.通过设置,实现对用户授权限制,默认值为“Fasle”.

定义3可见控制(Visible).Visible是用来设置控件是否可见或隐藏,对象属性Visible值设置为“True”时对象可以显示,设置为“Fasle”时对象隐藏不被显示,默认值为“True”.

定义4授权约束属性. 授权约束属性是约束限制Enabled、Readonly、Visible集合,记作A,授权约束属性子集记作a.

定义5表示层模块集.表示层模块集是指需要进行授权控制的程序模块集合.常见约束模块有菜单模块、输入输出程序模块等.

定义6约束对象.约束对象是能够对授权约束属性A进行操作的软件对象,记作f,约束对象全集记作F.约束对象包括菜单项、按钮(Button)、文本(Text)或标签(Label)等控件.

授权有2种:一种是许可授权,根据用例图实现对角色使用的许可.可许可资源比较多,为减少许可复杂性,在约束时多数是针对模块进行[10].另一种是资源使用约束,约束资源只占资源很少一部分,可以把约束粒度缩小,约束资源的授权要比许可授权简单且容易实现.

定义8角色.角色是具有一组操作权限集合,不同角色具有不同操作集,这些操作由系统管理员分配给角色,记作r,角色的全集记作R.

角色表:存放角色信息,模型简化为角色ID、角色名称主要属性.

定义10用户.用户是可以独立访问系统中的数据的主体,记作u,用户的全集记作U.

定义11角色指派.角色指派是用户集U和角色集R之间的二元关系,假定U×R是—个角色指派关系的集合,那么(u,r)⊆U×R表示用户被指派了—个角色r.

授权管理实际是限制角色对资源使用,包括对象的启动、写操作、信息显示限制等,其他限制都可以通过对象Enabled、Readonly、Visible属性设置实现,本文主要通过对象Enabled、Readonly和Visible等3个控制属性值设置,讨论授权限制及实现技术.

1.2控件资源约束描述基本结构模型

基于对象资源权限控制访问,涉及用户、角色及约束资源等相关对象,它们关系如图1所示,一个用户可以授权多个角色,用户约束是其拥有各角色的资源约束集的交集.例如:如果用户UA具有角色R1和R2,假设R1对控件C1约束,R2没有约束,则UA对控件C1没有约束.

考虑模型设计及算法实现需要,授权管理实体分用户表、角色表、用户角色表、功能模块表、模块约束资源表和角色约束表等6个实体表,它们关系如图2表示.

图2中,角色约束表是关键,它直接限制用户对展示资源使用.用户拥有的角色是通过对用户指定角色实现的[11].

图1 用户、角色、约束资源、约束权限结构

图2 用户、角色、约束权限表等联系结构

1.3实现技术模型

1.3.1约束对象资源划分及抽取大多用户授权是基于用例图进行许可管理,考虑到许可资源较多,为简化授权管理和设计方便,一般采用功能授权(菜单授权)或有少量简单增、删、改等操作授权、或放宽许可粒度来降低许可复杂性和编程的难度[12],授权只是实现简单禁止或许可[13].

本方法在不增加系统复杂度情况下,把授权粒度降低到对象属性,既满足所有授权需要,又提高系统灵活性.

用户使用一个UI界面进行操作,操作界面程序受约束的控件比较少.对用户需约束的控件,抽象相应关键属性,根据不同权限设置不同属性值,实现用户授权目的.角色名称设置UI界面如图3所示,抽象约束资源如表1所示,角色名称设置中包括5个标签、1个表格、2个输入文本框、3个按钮等对象,这些控件都约束授权.

图3 UI界面控件及原理图

UI模块名对象对象类型备注角色设置增加Button增加按钮角色设置删除Button删除按钮角色设置保存Button保存按钮角色设置Text1Text编号输入框角色设置Text2Text姓名输入框角色设置表格GridView显示表内容角色设置编号Label编号标签角色设置名称Label名称标签

1.3.2授权约束管理模型授权约束表是对角色资源使用限制说明,结构属性包括角色ID、对象ID、Enabled、Readonly、Visible.假设有2个格式:R1和R2,对角色R1和R2分别授权,R1只能查看数据;R2不能删除,可增加和修改(表2).

表2 一般角色名称设置授权约束

实现过程:(1)根据不同角色对资源进行统一管理和授权,每种角色对应一组权限.用户被分配角色后,就拥有这些角色操作约束.(2)通过一个授权程序,对资源进行功能限制管理,创建用户时只需指派相应角色.

一个功能约束授权,只需通过对象设置禁止响应、只读或不显示等,则满足要求,方法简单方便.

2约束资源授权算法及实现

用户授权控制包括角色指派和使用约束管理两部分,通过软件指派用户角色;用户指派角色后,每进入一个程序操作时,会受角色限制资源的使用.

授权后用户操作控制实现过程包括:(1)权限约束验证过程Role_Check()算法实现;(2)Role_Check()过程使用方法及说明.

2.1权限约束验证过程Role_Check()的实现

权限约束验证程控制:用于对表现层模块指定对象进行约束使用限制,实现角色授权限制,它提供一个公共约束接口Role_Check(模块ID,用户ID),在需要授权的模块程序编写代码调用,简化授权约束程序编写.Role_Check()过程在表现层进行初始化时被调用,主要处理过程包括:

(1)根据参数传入模块和用户,获得用户角色所受约束对象集.

(2)根据约束对象集,按以下步骤逐条设置相应对象约束属性值:

①当约束对象Enabled受约束,对象Enabled设置为False,对象方法被禁启用动.

②当约束对象Readonly受约束,对象Readonly设置为True,禁止修改相应数据.

③当约束对象Visible受约束,对象Visible设置为False,对象信息不显示.

权限约束验证过程Role_Check()实现算法描述流程如图4.

图4 Role_Check()算法描述

2.2表现层模块调用权限约束方法

软件编码时,在需要授权的模块调用过程Role_Check()实现限制,不同角色可以同时使用同一个模块功能,使用的流程如图5所示.

图5说明每个展示层都可以调用Role_Check进行控制,包括菜单、一般输入输出、弹出过程等模块.当程序P_ID、用户U_ID作为参数被传入授权控制程序,则完成授权控制,调用程序方式: Role_Check(P_ID,U_ID).

授权后的编程实现简单方便、不增加其他限制、不需添加复杂逻辑算法或程序代码.授权控制的粒度可以降到最低,添加新角色也不用修改控制系统.

3结束语

基于对象资源约束权限控制研究,授权控制资源可以细化到程序对象属性,极大缩小控制粒度,提高程序控制灵活性、开发效率.技术已经在澳门濠江中学学生考评系统等多个系统上应用,结果表明:在信息量巨大、角色复杂情况下,使用效果很好.

图5授权后的编码实现方法

Figure 5Code implementation method after authorization

参考文献:

[1]DENNING D E. A lattice model of secure information flow[J]. Communications of the ACM, 1976, 19(5): 236-243.

[2]SANDHU R,MUNAWER Q.How to do discretionary accessusing roles[C]∥The Third ACM Workshop on Role Based Access Control.Barkley:ACM Press,1998:47-54.

[3]SANDHU R, COYNE E J, FEINSTEIN H L, et al. Role-based accesscon troll models[J]. IEEE Computer, 1996, 29(2): 38-47.

[4]于春生, 聂晶.基于组和角色的工作流权限访问控制模型[J].计算机应用, 2011,31(3):778-780.

YU C S,NIE J.Access control model of workflow permission based on group and role[J].Journal of Computer Applications,2011,31(3):778-780.

[5]张辉. 基于工作组的访问控制模型研究[J].哈尔滨理工大学学报,2011,16(3):31-34.

ZHANG H.Research on user group of access control[J]. Journal of Harbin University of Science and Technology, 2011,16(3):31-34.

[6]叶春晓, 李忠祎, 胡海波,等.基于角色访问控制授权约束条件的生成方法[J].计算机工程, 2011,37(1):154-158.

YE C X, LI Z Y, HU H B, et al.Generation method of authorization constraints in role-based access control[J].Computer Engineering, 2011,37(1):154-158.

[7]胡迎松, 陈刚, 朱阿柯,等.一种基于角色和部门的访问控制模型[J].计算机工程与科学, 2006,28(7):30-33

HU Y S, CHEN G, ZHU A K, et al.An extended access control model based on roles and departments[J].Computer Engineering & Science, 2006,28(7):30-33.

[8]郝文育, 蔡宗琰, 王宁生.基于角色的访问权限控制在ERP系统中的应用[J].机械科学与技术,2004,23(9):1029.

HAO W Y,CAI Z Y,WANG N S.Role-based access control and its implementation in enterprise resource planning(ERP)[J].Mechanical Science and Technology,2004,23(9):1029.

[9]司炜, 曾广周, 盛琦,等.RBAC 模型的细粒度扩充及应用[J].计算机科学, 2006, 33(4):278.

SI W, ZENG G Z, SHENG Q, et al.Fine grain extension and application of the RBAC model[J].Computer Science,2006, 33(4):278.

[10]张剑波,童方圆,胡金涌,等. 基于复杂角色模型安全访问控制的研究与实现[J].计算机应用与软件,2011,28(7):290.

ZHANG J B,TONG F Y, HU J Y, et al.On complex roles model-based secure access control and its implementatin[J].Computer Applications and Software,2011,28(7):290.

[11]郭理,秦怀斌,梁斌.基于RBAC的高校WEB服务平台权限设计[J].微计算机信息,2011,27(2):236.

GUO L,QIN H B, LIANG B.Authorization design of university web services platform based on RBAC[J].Microcomputer Information, 2011,27(2):236.

[12]韩伟力,陈刚,尹建伟,等.权限约束支持的基于角色的约束访问控制模型与实现[J].计算机辅助设计与图形学学报,2002,14(4):337.

HAN W L, CHEN G, YIN J W,et al.Role-based constrained access control model and implement supported by constraints among permissions[J].Journal of Computer-Aided Design & Computer Graphics,2002,14(4):337.

[13]邓康明, 陈金玉.角色访问控制模型的分拆数实现[J].计算机工程与应用,2011,47(12):54.

DENG K M,CHEN J Y.Research and implement of role-based access control model based on partition number[J].Computer Engineering and Application,2011,47(12):54.

【中文责编:庄晓琼英文责编:肖菁】

Research and Implementation of Constraint Access Control Based on Object Attribute

ZENG Xishan*, CHEN Zhenzhou

(School of Computer Science, South China Normal University, Guangzhou 510631, China)

Abstract:In software design, authorization control is a very difficult problem. Most authorization research is based on user authorization method, in which no implementation technology is involved after authorization. These authorizations usually employ simple restrictions or allow some menu and command function operation. Authorization control method is simple, coarse and inflexible. A constraint access control method based on object attribute is proposed. Through some constraints on the smallest control unit of software, object attribute, the method can solve the problems above. At the same time,the method has characteristics such as it has convenient authorization management and is easy to be implemented and also it can greatly improve the efficiency of software development and reuse degree.

Key words:role; object attribute; granularity control; constraint management

中图分类号:TP39

文献标志码:A

文章编号:1000-5463(2016)01-0111-05

*通讯作者:曾锡山,讲师,Email: zengxishan@126.com.

基金项目:广东省科技计划项目(2013B010401022);广州市科技计划项目(2014Y2-C0123)

收稿日期:2015-05-25《华南师范大学学报(自然科学版)》网址:http://journal.scnu.edu.cn/n

猜你喜欢

角色
小学语文教师在实施新课程中的角色定位
教师和学生角色的转变是实现有效教学的关键
论新媒体时代传统媒体的角色担当
生态系统理论视角下医院志愿者角色和功能的研究
小议戏曲中角色的发展趋势
办公室行政管理工作的“角色”与效率分析
《冰雪奇缘》开启迪士尼剧本角色新模式
人力资源开发与智力资本提升的关系探析
农民工子女融合教育:教师的角色与使命