您的当前位置:首页正文

Web系统功能权限管理研究

来源:帮我找美食网
维普资讯 http://www.cqvip.com 2007弃第2期 中图分类号:TP315 文献标识码:A 文章编号:1009—2552(2007)0"2—0102—04 Web系统功能权限管理研究 吴 愚,李炳法 (四川大学计算机学院,成都610065) 摘要:提出Web系统权限管理基本思想,提出一种权限分类方法。根据该分类方法对每种类 型的权限提出管理方案,阐述了RBAC,TBAC的基本思想,给出一种基于RBAC,TBAC的权限 管理架构模型。该模型灵活有效地解决了Web系统中的动态权限管理问题。 关键词:权限管理;角色;RBAC;TBAC Research on authorization management on Web system WU Yu.LI Bing—fa (School of Computer Science,Sichuan University,Chengau 610065,Ct ̄a) Abstract:This paper proposes the basic idea about authorization and a kind of clssifaication.Based on the classification,it proposes a proposal to solve the pmblem,expounds the basic idea of RBAC and TBAC,pre— entss a solution based on RBAC and TBAC.It solves authorization management problem highly active. Key words:authorization management;role;RBAC;TBAC 随着Internet网络的迅猛发展,B/S信息管理系 统已经广泛应用于社会生活中的各个方面,随之而 应用层,由Web应用服务器管理。第三层是客户端 表示层,提供uI接口,直接与用户交互信息。表示 层根据B/S系统的技术选型表现为不同的web页 来的信息管理安全性问题也越来越受到关注。为了 更好地解决此问题,权限管理技术应运而生。目前 的权限管理技术大致可以分为两大类:系统级权限 管理,比如操作系统级、数据库系统级的权限管理; 应用级权限管理,具体实现形式多样,主要取决于具 体应用。现在,系统级权限管理模式相对稳定成熟, 而应用级权限管理特别是运行时动态权限还没有一 种统一稳定的模式,故而其研究备受关注。相对比 较成熟的应用级权限管理使用RBAC授权模型。本 文提出一种功能权限分类方法,并结合RBAC, FBAC 授权模型,提出一种Web系统功能权限管理架佝 模型。 面文件,比如aspx,jsp文件等。用户可以通过在这 些页面文件中嵌入的不同控件完成对数据的增、删、 改、查以及页面跳转等操作。故而一个B/S系统的 功能权限控制就是对被访问页面和被访问页面上面 的控件的显示及访问权限控制 。 2 功能权限的分类 2.1静态功能权限 静态权限是指根据访问者角色在Web应用程 序运行之前先期决定的功能权限。比如在BBS论 坛系统中,系统管理员能够执行删帖、封帐号等操作 的权限就属于在Web应用程序运行前,根据用户角 色先瑚决定的功能管理权限。 2.2动态功能权限 动态权限是指在静态权限许可的访问范围内, 1 功能权限管理基本思想 角色访问控制模型是指根据安今=策略划分 同角色,对每个角色分配不同的权限,并为用户指派 不同的角色,用户通过角色间接地对信息资源进仃 许可的相应操作。B/S信息管理系统架佝总体 一 般的实现模型分为三层。第一层是后台数据持久 层,由成熟的数据库操作系统进行管理一在 eb应用程序运行过程巾才能决定的操作权限。 收稿日期:2006—09—04 作者简介:父愚(1981一),p 『大 汁 机 ’ 院2004级汁钟.机心川 、第_-层足 I 谈研究 ,主要研究方向为分布 , 汁3{. l02一 维普资讯 http://www.cqvip.com 比如在有的OA办公自动化系统中,员工上班时间 打卡子系统必须在一天中一定时问段范围内才能使 用。又如在项目管理系统中,某项目子任务数目已 经达到预先设定的最大值,这时即使是项目管理者 角色(具有安排子任务的静态权限)也不能再安排新 子任务。也就是说根据应用程序运行时动态产生的 某些特殊条件来判断功能使用权限。 3 利用RBAC模型实现静态功能权限 管理 3.1 RBAC模型概述 1996年Ravi S.SalqdhH等人提出了通用的 RBAC模型 。此模型有3个实体:用户、角色和访 问权限,如图1所示。 1 RB 4C段型3个实傩 RBAC在旧式用户权限模型中引入了角色这个 中间层。所谓角色就是指一组系统操作权限集合。 角色和用户,角色和权限都是多对多的关系。RBAC 根据用户所在系统内所处的角色进行访问授权与控 制。在B/S系统中,由于系统的组织结构变化,那么 用户对资源访问的权限也将发生变化。如果没有引 入角色概念,当变化发生时,就必须去修改每一 用 户的相关权限设定。假定某B/S系统总用户数为 2000,总权限数为100,那么对所有用户做一次权限 修改设定的维护工作总花费为2000×100。如果引 入角色概念,根据用户分类设定30种角色,那么做 一次权限修改设定的维护工作总花费为100×30。 正好认证了一句名言:计算机科学中引入一个中间 层可以解决所有问题。由此可见引入角色概念,权 限管理维护工作更加系统化、成本更低,权限管理的 可操作性和可管理性都要强很多。 3.2实现静态权限管理 (1)根据前面提到的RBAC模型,设计权限管理 控制策略。设计的数据库表,如图2所示。 ①用户表(User):保存用户II),用户名、密码。 ②角色表(Role):保存角包ID,角色名= ③权限表(P liege):保 权限ID,权限 、权限 类型等信息。 ①用户角色关联表(RolesOlUsers):保存具体用 户和某角色的关联信息: ⑤角色权限关联表(P tileges0fRoIes):保仔某角 色和相应权限的关联信息 (2)程序中静态杈 榆测算法: ①用户登陆时,根据¨ ・ID奄询Rolt ̄sOfUsers I矧2设if‘的数拂 衷 表获取用户角色集R={ r2,…, }。 @对R集合中每一个具体角色 ,1 ≤n查询 [h@ilegesOfRoles表获取 的权限集Pk={P P …, fP t P m 1 P ,得到用户权限矩阵 =l M O M『,这样 lP L P j 就得到一个用户权限集UPS={P P :,…,P ,p2。, …,,p2 ,…,P 1,P 2,…,P , 保存于session变 量中。 ④当用户访问某受某静态权限P 保护的资源 时,系统将首先从session中取得用户权限集UPS。 如果P ∈UPS,则允许用户访问资源,否则提示用户 不具有此权限。  .4 动态功能权限管理 4.1 TBAC模型概述 在TBAC 中,对象的访问权限控制并不是静止 不变的,而是随着执行任务的上下文环境发生变化。 TBAC首先要考虑的是在工作流的环境中对信息的 保护问题:在工作流环境中,数据的处理与上一次的 处理相关联,相应的访问控制也如此,因而TBAC是 一种一j 下文相关的访问控制模型。其次,TBAC不 仪能对不同 [作流实行不同的访问控制策略,而且 还能对同一i1:作流的不同任务实例实行不同的访问 控圳策略。从这个意义上说,TB C足基于任务的, 这也表明,T|;AC是一种基于实例(instan;・e—based) 的i ̄l;J控制摸型 rI{ 模型山工作流、授权结构体、受托人集、 许可集I JU部分组成? (I)flt务(task)是工作流程t 的一个逻辑单元, 址一1、『I『 分的动作,与多个用广J村1是,也可能包括 几个 任务:授权结构体是任务 计算机中进行控 制的 实例。任务中的于任务,对懂于授权结构 一l0 — 维普资讯 http://www.cqvip.com 体中的授权步。 步AS被触发时,它的委托执行者开始拥有执行者 许可集中的权限,同时它的生命期开始倒记时。在 (2)授权结构体(authorization unit):是由一个或 多个授权步组成的结构体,它们在逻辑上是联系在 一生命期期间,五元组(S,O,P,L,AS)有效。生命期终 止时,五元组(S,O,P,L,AS)无效,委托执行者所拥 有的权限被回收。 起的。授权结构体分为一般授权结构体和原子授 权结构体。一般授权结构体内的授权步依次执行, 原子授权结构体内部的每个授权步紧密联系,其中 任何一个授权步失败都会导致整个结构体的失败。 (3)授权步(authoriatzion step)表示一个原始授 TBAC的访问政策及其内部组件关系一般由系 统管理员直接配置。通过授权步的动态权限管理, TBAC支持最小特权原则和最小泄漏原则,在执行 任务时只给用户分配所需的权限,未执行任务或任 务终止后用户不再拥有所分配的权限;而且在执行 权处理步,是指在一个工作流程中对处理对象的一 次处理过程。授权步是访问控制所能控制的最小单 元,由受托人集(trustee—set)和多个许可集(permis— sions set)组成。一个授权步内部状态转换如图3 所示。 图3授权步内部状态转换图 (4)受托人集是可被授予执行授权步的用户的 集合,许可集则是受托集的成员被授予授权步时拥 有的访问许可。当授权步初始化以后,一个来自受 托人集中的成员将被授予授权步,我们称这个受托 人为授权步的执行委托者,该受托人执行授权步过 程中所需许可的集合称为执行者许可集。授权步之 间或授权结构体之间的相互关系称为依赖(depen— dency),依赖反映了基于任务的访问控制的原则。 授权步的状态变化一般自我管理,依据执行的条件 而自动变迁状态,但有时也可以由管理员进行调配。 一个工作流的业务流程由多个任务构成。而一 个任务对应于一个授权结构体,每个授权结构体由 特定的授权步组成。授权结构体之间以及授权步之 间通过依赖关系联系在一起。在TBAC中,一个授 权步的处理可以决定后续授权步对处理对象的操作 许可,上述许可集合称为激活许可集。执行者许可 集和激活许可集一起称为授权步的保护态。 TBAC模型一般用五元组(S,O,P,L,AS)来表 示,其中S表示主体,O表示客体,P表示许可,I 表 示生命期(1ifec),cle),AS表示授权步。由于任务都是 有时效性的,所以在基于任务的访问控制中,用户对 于授予他的权限的使用也是有时效性的。因此,若 P是授权步As所激活的权限,那么L则是授权步 AS的存活期限。在授权步AS被激活之前,它的保 护态是无效的,其中包含的许可不可使用。当授权 一104一 任务过程中,当某一权限不再使用时,授权步自动将 该权限回收;另外,对于敏感的任务需要不同的用户 执行,这可通过授权步之间的分权依赖实现。 4.2动态权限管理架构模型 (1)为实现动态权限管理设计DPM的数据结 构形式化定义: ①DPM=F(WF,T,P) WF表示工作流、T表示受托人集、P表示许可集。 ②WF:{A ,,A ,…, } Au表示授权结构体,WF是一系列授权结构体 的集合,并且该集合满足如下关系 ’ Au×AuC2。,D={顺序依赖,失败依赖,分权依 赖,代理依赖}; ③Au与T是1:n的关系,Au—P,是一个从T: {R。,R2,…, }选择一个执行委托者的函数。 ④Au与P是1:n的关系,F(Au,R)一P,RT,P= {pl,p2,…, }为许可集,F为执行者许可集函数;G (Au,P。)一P2,PI cP,P2:P—PI,G为权限回收函数。 (2)动态权限的控制流程: 根据上述形式化定义设计,结合任务管理系统 实际应用设计动态权限控制流程如图4所示。 考虑一个任务管理应用场景。项目总负责人 UserA将项目划分为第一级子任务SubTask交给项 目小组负责人UserB。UserB接受并执行SubTask后 向UserA按时汇报任务情况,当SubTask完成,UserB 提交任务,当uSen确认任务提交后收回UserB的汇 报任务权限和提交任务权限。 5 结束语 功能权限管理是B/S系统的重要组成部分。权 限管理策略和技术决定了系统的安全性能。本文提 出的权限管理模型是在多个实际工程经验的基础上 提炼出来的,在实际Web系统的功能权限管理中运 行良好。特别是在动态功能权限的管理方面设计了 一种有效合理的管理模式,对同类BIS系统的功能 权限管理具有很好的参考价值。 维普资讯 http://www.cqvip.com 图4动态议限控制流程图 参考文献: [1]暴志刚,胡艳军,故新建.基于web的系统权限管卵实现方法 计算机工程[J].2006,32(1):169—170. 12 J Sandhu R "S,Coyne E J,Feinstein H L,et a1.Role—Based acces. ̄ 1997. [4] Fenai。It,D,Kuhn R.A几lntrMuct,ion tt,Role Based Access Conlxol [z]. 5]徐松,赵曦滨,顾明.网格环境下的分 式RBAC模型框架[J]. 计算机工程,2006,32(6):163—166. 6 3h ̄-m RK,'Sa ̄thu RS.Task—Based alIt}l∞d m nntords(rrHAC):a family of ̄Melsfor activeand enteqJrise—-( ̄ented authenticationmanage・・ models[Jj.1EEE Computer,1996,29(2):38—47. 13 J Barkley J F,Cincotta A V,Ferraiolo D F,et a1.Role Ba ̄ed Access Control for the :orld Wide Web C.Prey.:of 2Oth 1ST—NCSC Na. tional Information Systems Security Conference.National 1nstitute of rrt ̄t[M].1997:11—13. 责任编辑:肖滨 S'tandards and Technology.Baltimore,blaryland,U.S.A:[s.n.], ÷} ・} ・} ・} ・} -} ・} ・} ・} ・} ・} ・} ・} ・} -} ・} ・} ・} ・} ・} ・} ・}÷} -}一{-}-{-} ・} ・} ・} -}十} -} -} -} ・} -} ・} ・} -} -} -} ・} ・} ・} ・} ・} (上接第1O1页) next: end;//while not eof do end;//with adoqueryl do end; SQL.Text:=‘select *from ueach’;//从中 司表中查询出所有记录 Open; ifrst;//定位于第一条记录 while not eof do 步骤四:至此,目的表teacher.mdf中的数据和 数据类型在中间表中都含有,这时可利用目的数据 begin 环境soL Server2000中自带的数据迁移工具DTS,把 中间表teach.mdf中的数据导入目的表teacher.mdf 中(在此过程中是把中问表的字段“depamnent”的数 据和字段“biahl”的数据分别导入目的表中的字段 “department”和“bitrh”中)。 id:=fieldbyname(‘id’).asstring;//从工号 (对应字段id)中提取出教师所在系的信息, dep:=cow(trim(id),3,2);//并赋给参数dep birth:=sttrodatetime(trim(fieldbyname(‘bitrh’). asstring));//把出生日期从文本型转换为日期型 with adoque0—2 do//往中间表对应记录中字 段“depamncnt”和“birthl”里插入信息 begin 3 结束语 以上程序在Delphi7下调试通过。实际运行表 H』】该方法可行、有效,在信息系统开发中能较好的完 成数据迁移。在实际应用中有多种迁移方法,采取 SOI .Clear; sQL.Text:=‘update teach set de1)am ̄:nt ’=+dep+‘。birfll=… f什么方法,要根据实际情况而定。但不管采用什么 方法,都要以保证数据完整性和正确性为前提。 参考文献: 1j { 珍,黄东.,{.‘ :理佑息系统"发【{I耍¨¨进 t数据迁移[J . I.、 l2005. +fonmtdatctime(‘、、/mm/dd’,birth)+”’ where id= ’+id+…execsql; ’: 制 鲐饥,2003(4):31—32. 2j, 彬,柴晓娟 JlJ仿息符 技术f Mj北京邮电大学re,版社, 责任编辑:么丽苹 end://with at.1{xluer) 2 d0 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top