基于角色的工作流平台访问控制安全模型

2011-05-18 07:48茜,张栋,包
关键词:访问控制许可约束

巫 茜,张 栋,包 坤

(1.重庆理工大学 计算机科学与工程学院,重庆400050;2.ABB中国有限公司重庆分公司,重庆401121)

工作流技术作为一种新兴的信息处理技术,被广泛应用于各行业,随之存在的安全问题也越显突出,而其中针对独立的安全域中安全的授权访问服务需求是最为迫切的[1-2]。本文旨在建立一种基于角色的工作流平台动态访问控制安全模型,解决工作流环境下的动态职责分离、动态职责绑定、案例间约束、互惠职责分离等实际问题,为工作流管理系统的安全运行提供技术支持。

1 基于角色的工作流访问控制模型

工作流是一种反映业务过程计算机化的模型,是在先进计算机集成支持下,实现经营过程集成与经营过程自动化而建立的由工作流管理系统执行的业务模型。工作流管理系统指运行在一个或多个工作流引擎上,用于定义工作流运行的一套软件系统。它与工作流执行者(人、应用)交互,确保工作流实例执行,监控工作流运行状态[3-6]。

1.1 RBAC

基于角色的访问控制模型技术(role-based access control,RBAC),较以往的自主型访问控制(discretionary access control,DAC)和强制型访问控制(mandatory access control,MAC)具有更强的灵活性和广泛的适用性。RBAC的基本思想是以角色为中介,对用户进行授权控制。系统安全管理员可根据需要定义各种角色,并为其设置合适的访问权限,然后根据用户所担任的工作职责或级别分配相应的角色,从而使用户获得相关的权限集。其中角色可以看成是一个表达访问控制策略的语义结构,也可以表示承担特定工作的资格。RBAC根据用户在组织内所处的角色做出访问授权与控制,但用户不能自主地将访问权限传给他人。引入角色的管理模式后,资源授权管理可分为2个过程,即首先实现访问权限与角色相关联,然后再实现角色与用户相关联,从而实现用户与访问权限的逻辑分离。

RBAC模型是一个完整的模型,其中所使用的术语定义如下:

1)用户(User),一个可以独立访问计算机系统中的数据或用数据表示的其他资源的主体,可以是人、进程等,一般指人。

2)角色(Role),一个组织或者任务中的工作或者位置,它代表了一种资格、权利和责任,例如经理、会计、出纳、教师等。

3)会话(Session),一个用户和一组激活的角色,表示用户的某种角色激活的过程。一个用户可以进行多次会话,在每次会话中激活不同的角色,这样用户也将具有激活的角色所具有的各种权限。用户必须通过会话才能激活角色。

4)权限(Permission),对计算机系统中的数据或者用数据表示的其它资源进行访问的许可。它表示对系统中的客体进行特定模式的访问操作,与实现的机制密切相关。权限的本质取决于系统的实现细节,如操作系统中保护的对象是文件、目录、设备、端口等资源,相应的操作模式有读、写、执行等,而在关系数据库管理系统中保护的对象是关系、元组、属性、视图,相应的操作模式有查询、更新、删除和插入等。

5)约束(Constraint),角色之间以及角色与权限之间的一种限制关系。

6)角色的层次关系(Role hierarchy),RBAC模型的重要特征。角色之间的继承关系是根据权限划分的,即角色1继承角色2就表示了角色1拥有角色2的全部权限。

7)管理角色(Administrative role),一种具有以下许可的角色,它可以修改用户、角色、许可集,或修改用户和许可的分配关系。

RBAC模型各元素之间的关系如图1所示。

图1 RBAC模型

1.2 改进访问控制模型的建立

工作流是一类工作中具有固定程序的常规活动,它将工作活动分解成定义的任务、角色、规则和过程,通过科学监控和合理调配以上元素,达到提高生产组织水平和工作效率的目的。工作流管理系统针对动态职质分离、动态职责绑定、案例间约束、互惠职责分离等问题对于系统安全性能有特殊要求,需要建立动态访间控制机制对RBAC模型进行扩展改进,为此在传统RBAC模型中引入任务案例(TC)、用户管理(UM)、任务(T)元素,在RBAC元模型基础上扩展形成如图2的改进RBAC模型。

图2 改进的RBAC模型

1)模型元素。在改进的RBAC模型中应用会话的概念,实现动态约束。在工作流管理系统应用中,由于临时边界难于界定,因此会话的概念很难给出一个清晰的定义。正如在电气销售企业,如何禁止同一次销售特价申请业务过程中同一个用户执行特价请求和特价批准业务等情况呢?在改进的RBAC模型中,动态约束的概念是禁止用户在同一会话时间内绑定用户和角色。很明显,该例中的销售特价请求和销售特价批准业务处于2个会话中,因此无法应用会话动态约束控制在不同会话中的用户和角色的绑定。

为了适应业务过程的实例化约束的要求,增加了实体:任务案例(TC)和任务(T),如图2示,任务案例(TC)是一个工作流系统中提到的业务过程的实例;任务(T)则是工作流系统中具体业务过程实现的任务实体。与此同时定义了一个3元关系doer(u,t,c),u∈U,t∈T,c∈TC,意味着一个用户(U)在一个特定的业务流程中只执行一个特定的任务。

2)模型结构。在工作流应用中,企业组织内部人员常处于不同的部门、工作组,并且有多个不定的上级,所以对人员及角色分层网格化管理有很强的要求。

以某电气销售公司为例,以地域(西南、华南、西北等)划分销售分公司,以渠道(行业设计院、盘厂、供电局、OEM、系统集成商、分销商、大工业客户等)划分工作岗位,形成了一个有层次的树形结构,树的每个层次代表了级别的不同,每个子树又代表了不同部门分布,每个节点代表的用户角色同时处于不同的级别和不同的部门,从而形成了一个典型而且严格的层次关系结构。其中,各渠道部门以及销售分公司是组织单元,包含在以总裁办领导的销售总公司中;销售人员属于不同渠道事业部门和销售分公司的成员,同一个销售人员在渠道事业部门和销售分公司都有不同的领导。

RBAC模型原本没有这么多的层次概念,然而在面向工作流管理系统应用中,这种需求相继而生,因此扩展了该模型以适应于工作流环境。这个强大的层次概念中暗含的权力信息,给人们提供了表达安全约束的能力。某电气销售企业的关系层次如图3所示。

图3 关系层次示意图

图3关系层次可抽象出3种关系,定义如下:

包含关系include(d1,d2),d1,d2∈UM,表示组织d1包含组织d2。

成员关系member(u,d),u∈U,d∈UM,表示用户u是组织d的一个成员。

领导关系head(u,d),u∈U,d∈UM,表示用户u是组织d中的一个领导。

3)约束关系。在改进的RBAC模型中,借助基于谓词逻辑的形式化语言描述约束,文献[7]中的约束关系描述可用形式化语言表达为:

4)动态约束。动态约束描绘在工作流环境下依据当前任务案例的先前活动的执行情况,动态授予用户和角色访问权限。

动态职责分离:要求系统为一个任务选择执行主体时实施互斥规则。如,在电气商品销售特价申请业务中不允许在同一申请业务流程中,执行审查特价需求任务的审查人和执行财务审批特价需求任务的最终审批人是同一个人。

﹁←doer(u,audit,c)&&doer(u,approve2,c)

动态职责绑定:同动态职责分离恰恰相反。要求系统为一个任务选择执行主体时实施相容规则,如在销售发货业务中,基于弱化管理的繁杂程序,提高办事效率的考虑,要求在同一笔销售业务流程中,执行审查销售单任务的审查人和执行审批销售单任务的直接审批人是同一个人。

﹁←doer(u,audit,c)&&doer(u',approve1,c)&&not(u=u')

案例间依赖的约束:约束参考其他案例的情况。

互惠职责分离:防止跨越多个案例,不同用户之间,互利互惠业务操作。

2 模型集成应用

尽管工作流管理系统在企业中已经有不少的应用,但是安全问题仍是不容忽视的。为了使工作流管理系统的改动不影响系统的安全性,必须考虑如何构架一个集成框架,以方便与工作流管理系统无缝集成,针对该需求的框架,必须提供授权许可服务。某公司电气销售系统应用上述模型,实现了该模型与工作流引擎组件的框架集成,如图4所示。

该平台采用J2EE的技术路线,基于SOA理念设计,采用多层模式,基于C/S体系结构。框架集成中RBAC访问控制模块根据RBAC数据库中的信息为用户分配角色。用户向业务应用发送请求时,RBAC模块根据角色和权限关系以及特征类别和特征实例,对用户请求做出相应反应。

图4 框架集成

授权许可服务管理有关组织关系、角色、特权等信息。工作流引擎与授权许可服务通过两个通道交互。一个通道用于通知授权许可服务有关工作流的过程实例的历史信息,另一个通道用于工作流管理系统向授权许可服务提出查询请求。当新的具体任务实例创建后,紧跟着进入用户选择阶段。用户通知工作流引擎进行用户选择,工作流引擎接到通知后,通过通道2向授权许可服务发送查询请求,询问哪些用户可以执行当前业务过程中的当前任务,并对用户按照排序规则进行优先排序。授权许可服务收到查询请求后,立刻与知识库进行信息交换,并按要求计算出所需的用户列表,返回给工作流引擎并由其决定那个用户执行下一步任务并将有关信息发送到用户的任务列表中,当用户通知工作流引擎接受该任务时,在通道1中引擎自动发送信息给授权许可服务,并由授权许可服务将授权信息写入知识库。

基于角色的工作流平台访问控制安全模型的框架集成可实现系统在独立安全域内的安全授权服务,系统初步试运行表明,模型集成应用是可行与合理的。

3 结束语

安全性是工作流管理系统的前提保证,文中提出的基于角色控制的工作流安全访问改进模型,设计了动态授权机制,初步应用实践表明,该模型与工作流引擎组件的框架集成,可实现独立安全域内的安全授权服务,为系统安全运行提供技术支撑。

[1] 范玉顺.工作流管理技术基础[M].北京:清华大学出版社,2001.

[2] 杨天怡,董红林,黄勤,等.应用角色和任务访问控制的工作流动态授权模型[J].计算机应用研究,2010,27(4):1511-1513.

[3]SEJONG O,SEOG P.Task-role-based access control model[J].Information Systems,2003,28:533-562.

[4]叶春晓.基于角色访问控制(RBAC)中属性约束委托模型研究[D].重庆大学,2005.

[5] 杨彬,李鑫,杨红韵,等.基于RBAC的用电检查管理系统的设计与实现[J].重庆工学院学报:自然科学版,2008,22(10):186-192.

[6]Mikhail I.Gofman,Ruiqi Luo,Ayla C.Solomon,Yingbin Zhang,PingYang,and Scott D.Stoller.RBAC-PAT:A Policy Analysis Tool for Role Based Access Control[J].JICS,2009,76(4):1322-1331.

[7] 张栋,刘飞,宋豫川,等.基于角色的访问控制机制在工作流平台下扩展的研究[J].制造业自动化,2004,26(5):52-57.

猜你喜欢
访问控制许可约束
版权许可声明
版权许可声明
“碳中和”约束下的路径选择
版权许可声明
本期作者介绍
约束离散KP方程族的完全Virasoro对称
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
自我约束是一种境界