APP下载

工作流系统中的PRBAC访问控制模型研究

2020-10-21熊天虹娄定俊

应用科学学报 2020年5期
关键词:访问控制业务流程职位

熊天虹,余 阳,娄定俊

中山大学数据科学与计算机学院,广州510006

工作流技术[1]是利用计算机环境来实现业务过程的半自动化或全自动化.而工作流管理系统(workflow management system,WFMS)[2]就是利用该技术管理业务流程的系统,将工作项在合适的时间交给合适的资源以确保案例正确执行,实现了过程优化、组织变更、提高灵活性等目标[3],因此被广泛应用于企业和政府的组织业务流程管理.目前大多数WFMS 都采用基于角色的访问控制(role-based access control,RBAC)模型[4-5]来解决授权控制的问题,引入角色作为用户和权限之间的中介,将业务流程中的工作项分配给角色,再由担任此角色的用户负责执行所委派的工作项.角色层次的增加使得权限管理更为灵活,且在实际应用中角色的变化远慢于用户的变化,因此降低了用户变化所带来的影响.但RBAC 模型也存在一些不足,例如其角色管理过于复杂、授权粒度不够细化等[6].RBAC 模型中的角色指的是组织角色,企业的组织结构会因应对激烈的竞争而不断变动,例如部门的增加、撤销与合并、角色的增加与减少等.组织资源作为任务工作项分派的核心,其变动将会对任务的分派与执行产生严重的影响.同时,一套流程系统(支持一组业务流程的应用系统)实施到不同的组织,需要面对不同的组织结构和角色,例如ERP 厂商将同一套流程实施到不同组织结构的企业.RBAC 模型导致业务流程定义中的任务授权严重依赖于组织,后者的频繁变化不但会引起授权体系的频繁变化,甚至因影响流程定义而引起执行期的异常.

基于以上问题,本文提出了基于职位-角色的访问控制(position-role based access control,PRBAC)模型.在传统RBAC 模型的基础上,将组织模型的角色粒度细化为组织职位(position),同时在业务模型引入业务角色的概念并通过映射层建立它们之间的映射,降低了组织层的组织结构变动对业务层产生的影响.在实际应用中,PRBAC 模型同时满足了组织层面和业务层面的访问控制需求并实现了两者之间的解耦,增强了系统的适应性与柔性.

1 相关工作

随着互联网的发展,数据资源日益增多,对数据资源的访问管理和授权安全问题引起了极大的关注,因此访问控制模型成为一个研究热点.相关研究开始于20世纪60、70年代,70、80年代主要是自主访问控制(discretionary access control,DAC)和强制访问控制(mandatory access control,MAC)[7],它们都是由用户和权限直接关联的,不能灵活适应工作流系统中工作分派人员的频繁变更.

20世纪90年代,由Ferraiolo 和Kuhu 提出的基于角色的访问控制模型获得广泛关注,用户和权限通过角色进行关联,提高了权限管理的灵活性.接着提出了基于角色访问控制模型簇—RBAC96[8],包括RBAC0∼RBAC3[9]4 个概念性模型,它们的权限复杂程度不同且添加了更为细化的授权原则.该模型不断地被改进和扩展,如基于任务的授权模型是以业务流程中的任务为核心进行动态授权[10];Liu等[11]提出的TRBAC 模型添加了时间维度,能够满足基于时间的访问控制需求;Hu等[12]提出的基于属性的访问控制(attribute based access control,ABAC)模型是通过属性组合的方式为用户授予访问权限.之后,黄毅等[13]同时考虑任务和角色两个因素,提出了基于任务-角色的访问控制模型(task-role based on access control,T-RBAC),结合了TBAC 和RBAC 两种模型的优势.Qi等[14]提出的基于角色和属性的访问控制模型,改进了RABAC(RBAC+ABAC)模型的不足,使得授权更细粒度和灵活高效.蔡婷等[15]提出的基于角色扩展的RBAC 模型(mini-roles RBAC,MR-RBAC)通过引入最小角色集,增强了角色层次结构和权限继承关系的管理能力.

近年来,熊厚仁等[16]给模型又加入了组织的属性,将组织角色划分为组织职能角色和组织任务角色,建立了双层角色和组织的可扩展访问控制(scalable access control model based on double-tier role and organization,SDTR-OBAC)模型.周炜[17]提出了一个具有时空约束的工作流授权模型(temporarily-spatially constrained model based on task-role based access control,TSC-TRBAC),用户在时间和空间的约束下执行任务,保证了工作流的安全性和合理性[19].李金艳等[18]提出的面向协作的柔性工作流引入了团队的概念,结合角色的静态授权和任务的动态控制,实现了工作流的分级授权管理.进一步,为了确保访问控制策略的正确性和性能,Bhuyan等[20]定义了一致性、完整性、简洁性三个质量属性,并开发了一种将工作流访问控制策略映射到上述属性的机制.此外,Ghazal等[21]针对跨组织的安全信息共享和协作特点,提出了一种基于智能代理的RBAC(intelligent agent-RBAC,IA-RBAC)的解决方案,特别适用于在权限和任务之间建立关联,确保安全可靠的访问控制.

通过分析国内外访问控制模型和工作流权限控制的相关研究工作,可以看出它们并没有考虑组织结构变动在工作流访问控制和授权管理体系中所产生的影响,不能很好地解耦组织模型和业务模型并且相关的扩展模型也不够完善,因此本文所研究的PRBAC 模型正是要解决这些问题,且能较好地应用在工作流系统中.

2 PRBAC 模型设计

2.1 模型主要思想

PRBAC 模型继承了传统RBAC 模型的基本理念,以角色为核心,将权限授予角色,然后通过赋予用户相应的角色来完成授权.其扩展理念在于将其中的组织角色细化为组织职位并引入业务角色.为了降低组织结构的变动对业务流程模型产生的影响,将用户所担任的组织职位与该职位在流程模型中涉及的具体业务分离,授予业务角色完成指定业务功能的权限,因此添加一个映射层对组织中的组织职位与实际的业务角色建立映射并集中管理权限,增强了系统的柔性,同时也解决了在分布式环境下产生的角色和权限冗余的问题.

在授权过程中,用户被赋予组织职位,业务流程中的工作项被委派给业务角色,作为中介的映射层为组织职位和业务角色建立映射关系,用户便由所担任的组织职位获得对应业务角色所拥有的权限去执行被分派的工作项.这样就解耦了组织层和业务层,组织结构的变动不会影响到业务流程的任务分派与执行,业务流程中的任务发生变更也不会对组织结构产生影响.另外,该模型能够实现多维度的授权,有效减少了工作分派管理的工作量.

该模型如图1所示,左边表示的是用户通过会话完成组织职位的分配,右边表示的是业务角色的授权以及权限的管理.这两部分是互相独立的,分别由不同的管理员根据各自设定的规则完成分配与授权,映射中心则作为它们交互的中介来完成组织职位与业务角色的映射.

在映射中心中,一个组织往往使用多个流程系统.组织职位与业务角色是多对多关系,业务角色与权限的映射关系也是多对多的.由对应的流程管理员根据业务特点对权限进行分配,这也避免了组织管理员因不懂具体业务而执行权限分配导致严重后果的情况.

图1 PRBAC 模型图Figure 1 PRBAC model diagram

2.2 模型形式化描述

基于对象管理组织(object management group,OMG)[22]的相关术语,本节从模型的元素、关系、函数三方面给出该模型的形式化描述.

定义1模型元素

1)U(user):表示用户集合,能被赋予角色和权限,组织内所有实体人员的抽象,一个人员关联一个用户.

2)S(session):表示会话集合,是用户和角色关联的中介,决定了用户被赋予角色的场景.

3)P(permission):表示权限集合,指的是授予用户的权利,包含用户对可执行对象能够实施的操作类型和方法等.

4)O(organization):由人或组织因特定的目标联合在一起形成的集体,存在层级结构.

5)OU(organization unit):组织单元,泛指组织,可以是部门或团队等.

6)OR(organization role):表示组织角色集合,组织中人被赋予的角色,在组织中占据一定的位置和具有相应的职能.

7)OP(organization position):表示组织职位集合,指在组织单元中负责某些功能的用户集合.

8)BR(business role):表示业务角色集合,负责在业务层中完成某类具体业务的用户集合.

9)C(constraint):表示约束集合,包含对用户赋予组织职位、组织职位与业务角色的映射、对业务角色授予权限、组织层级关系和职位等级关系的约束,主要的约束与RBAC 中的相同.

一个组织是由多个组织单元组成的,即一个企业由多个组织部门组成,部门内包含一定数量的组织职位,不同的组织职位负责部门内部不同的功能职责.组织职位是由组织角色和该角色所处环境(组织单元)两个维度共同决定的,因此组织职位是组织角色在具体组织单元内的具体实现,它代表着更细粒度的范围.例如,“财务部”是一个组织部门,“部长”是一个组织角色,而“财务部的部长”就是一个具体的组织职位.

因此,在该PRBAC 模型中,P(position)指的是组织职位,R(role)指的是业务角色.

定义2模型关系

1)UA⊆U×OP:表示用户-组织职位指派,用户被赋予组织职位,将完成相同工作的用户指派给同一个组织职位,用户也可以对应多个组织职位,它们是多对多的关系.

2)US⊆U×S:表示用户和会话之间的关联,用户可以拥有多个会话,但一个会话只能和一个用户关联.

3)OPH⊆OP×OP:表示组织结构中组织职位的等级结构,具体指职位的上下级关系,但职位之间的权限不能进行传递.

4)BRH⊆BR×BR:表示业务角色被授予的权限的层级结构,粗粒度的业务可以继承其所包含细粒度业务的权限.

5)OPBR⊆OP×BR:表示组织职位与业务角色之间的映射,两者是多对多的关系.

6)PA⊆BR×P:表示业务角色与权限之间的多对多关系,一个业务角色可以被授予多个权限,一个权限也可以被多个业务角色拥有.

定义3模型函数

根据上述的模型元素及关系,可以得出下述函数的定义.

1)user:S→U,表示一个会话函数si映射到一个用户user(si),由用户来激活一个会话.

2)positions:S→2OP,表示每个会话si到组织职位集合OP 的映射,positions(si)⊆{OP|(user(si),OP)∈UA}.

3)user_positions:U→2OP,表示一个用户ui和组织职位集合OP 的映射关系,user_positions(ui)={OP|(ui,OP)∈UA}.

4)orgpos_busirole:OP→2BR,表示组织职位OP 与业务角色BR 之间的映射关系,orgpos_busirole (opi)={BR|(opi,BR)∈OPBR}.

5)busirole_permissions:BR→2P,表示业务角色BR 与权限集合P 的映射关系,busirole_permissions (bri)⊆{P|(bri,P)∈PA},业务角色被赋予相应的权限.

3 PRBAC 模型评估

3.1 表达能力评估

表达能力是访问控制模型评价的重要指标之一,本节将从构建系统的角度证明PRBAC模型与RBAC 模型具有相同的表达能力.

定理1在所有基于RBAC 模型的系统中,均可采用基于PRBAC 模型的系统实现.

证明:对每个RBAC 模型={U,R,P,S,RH,UA,PA} 相应地构造一个PRBAC 模型={U’,OP,BR,P’,S’,OPH,BRH,UA’,PA’},其中

1)U’,P’,S’,UA’,PA’的概念与U,P,S,UA,PA 表达的概念一致.

2)组织角色在具体的组织单元中对应的是组织职位,所以在组织单元中有OP≡OR.

3)RH 在RBAC 模型中有两个特性:角色层次和权限继承.而PRBAC 模型中的组织职位层次OPH 表示的是职位之间的等级关系,没有权限传递的概念;业务角色层次BRH 表示的是处理业务所需的权限层次,不存在等级关系,但权限可以被继承.由OP≡OR 可得OPH≡ORH,因此RH 可以表示为由OPH 和BRH 两者组成的映射集,即有RH≡OPH→BRH.

由此可见,两个模型的元素及其关联是等价的,该定理得证.

定理2在所有基于PRBAC 模型的系统中,均可采用基于RBAC 模型的系统实现.

证明证明方法同定理1.

因此,从以上两个定理可以证明PRBAC 模型和RBAC 模型具有相同的表达能力.

3.2 授权粒度评估

组织职位是由组织角色和组织单元两个维度决定的,是最细粒度的维度.RBAC 模型将权限授予粗粒度的组织角色,PRBAC 模型则用组织职位代替组织角色实现更细粒度的授权.但PRBAC 模型在细化权限分配粒度的同时,由于需要进行多层级的授权,在一定程度上会提高授权复杂度.为了解决上述问题,本模型除了组织职位到业务角色的基本映射外,还增加了由组织部门和组织角色到业务角色的多维度映射.例如,从组织部门的维度对业务角色进行映射,实质上是将该部门内的所有职位都映射到指定的业务角色,这种批量映射的方式减少了授权操作次数,使得授权更为灵活.因此,PRBAC 模型可以从组织角色或组织部门的维度通过映射对业务角色进行粗粒度的授权,最终都能转化成由组织职位的维度完成业务角色的细粒度授权,这为授权复杂度的控制和授权粒度的细化提供了一个很好的解决方案.

3.3 复杂度评估

在RBAC 模型中,业务流程定义中的任务授权严重依赖于组织,组织的变化会导致流程定义的修改和已执行实例的处理,甚至出现流程执行异常的问题,因此需要相应地更改授权体系,如更新组织角色与任务工作项的绑定.也就是说,RBAC 为了应对组织变化需要同时修改组织模型、流程模型、授权体系.

PRBAC 模型将组织模型中的组织角色细化为组织职位,在一定程度上它依然是依赖于组织结构的,但其在应对组织结构变动时引入了业务角色的概念,并通过添加映射层实现了组织资源与流程系统的隔离,那么只需修改映射层中的组织资源信息以及组织职位与业务角色的映射关系,并不需要修改对业务角色的授权和业务流程的定义,这使得一个变化的组织能够很快地对接业务流程.

同时,在PRBAC 模型中会存在这样一些情况:1)若组织结构中只是组织部门内部的组织职位发生了变化,而组织模型是从组织部门的维度与业务角色作映射的;2)若组织部门发生合并等变动,而组织模型是从组织职位的维度与业务角色作映射的,并且职位所负责的业务保持不变.针对这两种情况,除了组织本身的变化之外,映射层与业务层不需要作任何修改.

从以上的分析可知,在组织结构变动的场景下,PRBAC 模型能够大大降低授权复杂度并隔离了组织层对业务层的影响,在一定程度上还可以通过控制映射维度(组织职位、组织角色与组织部门)进一步减少组织变化对业务造成的影响,增强了系统的柔性.

4 案例分析

通过对开源工作流系统YAWL 作少量修改并增加一个映射中心组件[23],本文在YAWL中实现了PRBAC 模型.分析采用的案例为YAWL 官网上的Genko Oil 组织中的一个标准业务流程Order Fulfillment,该流程开始于订单管理部门的订单创建,然后由供应部门进行采购,接着触发运输和付款活动,最终完成交付.为了简化案例并更好地说明本文的模型,在本案例中主要考虑其中的订单子流程,如图2所示.

该子流程描述如下:由订单管理部门创建的订单需要通过供应部门的批准并可能需要执行一定的修改,订单的创建是由OD clerk 处理的;当订单管理员接收并完成被分配的订单创建任务后,需要决定由哪个订单管理员去执行后期的修改请求;接着完整的订单会被提交到供应部门去请求批准,可能订单仍需多次修改,并且需要追踪每次修改和重新请求批准;如果初始的订单或任何修改被驳回,又或者订单未在规定期限内被处理就会被丢弃,流程将终止.

在定义流程时给任务分配业务角色(如审核者、核对者和申请者等),这些业务角色与组织资源无关,只负责完成某类具体业务,例如在图3中将Create Purchase Order 这项任务指派给申请者,由申请者完成订单的创建.

图2 订单流程模型中的订单子流程Figure 2 Ordering sub-process in order fulfillment process model

图3 YAWL editor 分配资源Figure 3 Resource allocation in YAWL editor

上传并解析该订单流程,得到每项任务所指派的具体业务角色(格式为“流程ID&任务ID&业务角色ID”).接着映射中心加载组织中的组织资源和该流程解析得到的业务角色后,对两者执行映射操作,如图4所示.前面Create Purchase Order 是分配给申请者的,在映射中心中将申请者与Genko Oil 组织中的OD Clerk(Order Management Department)和Client Liaison 建立映射关系,最终该项任务就被指派给了担任订单管理部门的职员这个组织职位和Client Liaison 这个组织角色的用户,也可继续指派到具体的一个职员,由他们负责执行和完成该任务.

图4 Order 子过程的映射关系图Figure 4 Mapping relation diagram of order sub-process

相比较于传统的RBAC 模型,在PRBAC 模型中,当企业的组织结构发生变更时,如Client Liaison 这个组织角色被删除,只有与其相关的映射关系会受到影响,那么只需更改申请者这个业务角色与组织资源的映射,而业务流程的定义与业务角色不受任何影响;又比如撤销Warehouse 部门并将其并入Supply Department,而职位所负责的业务保持不变,那么就不用更新映射关系,流程模型也不需要做任何授权的修改,只需要更新职位的信息(其所属部门发生改变),这不会影响到抽象的业务角色.

由上述的案例分析可知,通过PRBAC 模型建立的映射中心较好地隔离了组织结构变动对业务流程模型的影响,不需要修改对业务角色的授权和业务流程的定义,只需更改与组织变化相关的映射关系,从而增强了系统的柔性,保证了业务流程的正确执行.另外,由于增加了业务角色的映射中心处理,PRBAC 模型在复杂度和性能上可能会受到一定的影响.然而,工作流的成功执行主要依靠人机协同,更多的是依赖于用户准确完成工作任务.合适的角色对任务的成功完成非常重要.同时在实践中,用户处理占用的时间通常是远大于机器处理时间的.因此相比较于由组织结构变动而带来的频繁授权变更,甚至是流程执行期异常而需要重定义,PRBAC 模型所具备的良好适应性和柔性相对而言是更为重要的.此外,模型在复杂度和性能上的优化和改进将是后续的研究方向之一.

5 结 语

本文提出的PRBAC 模型,基于传统RBAC 模型,将角色的粒度细化为组织职位并引入了业务角色.针对企业组织结构变动频繁的特点,建立映射中心对组织资源和业务角色进行映射,实现了组织模型与业务模型的解耦,弥补了RBAC 模型的不足.经过分析和评估,PRBAC 和RBAC 具有相同的表达能力,能够实现更细粒度的授权且面临组织资源发生变动的情况时,不需要修改对业务角色的授权和业务流程的定义,使授权更为灵活.最后通过案例分析将贯彻PRBAC 模型理念的映射中心应用于工作流系统中,与相关系统协同工作,有效增强了WFMS应对组织变化的适应性和柔性,提高了企业管理的效率.

猜你喜欢

访问控制业务流程职位
领导职位≠领导力
一种跨策略域的林业资源访问控制模型设计
航天企业基于信息化的业务流程体系构建方法研究
互联网+背景下物流公司的业务流程再造
职位之谜与负谤之痛:柳治徵在东南大学的进退(1916—1925)
ONVIF的全新主张:一致性及最访问控制的Profile A
建设项目全过程造价管理咨询服务的业务流程分析
基于财务业务流程再造的ERP信息系统构建探析
动态自适应访问控制模型
美最高就业率地铁圈