SaaS工作流访问控制模型设计.docx
- 文档编号:17970677
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:5
- 大小:18.99KB
SaaS工作流访问控制模型设计.docx
《SaaS工作流访问控制模型设计.docx》由会员分享,可在线阅读,更多相关《SaaS工作流访问控制模型设计.docx(5页珍藏版)》请在冰点文库上搜索。
SaaS工作流访问控制模型设计
SaaS工作流访问控制模型设计
摘要:
在saas中,人们正逐渐采用基于服务的业务流程来满足企业业务流程的灵活性和定制性。
从实现工作流访问控制的角度,应当使工作流访问控制模型与流程模型分离,以支持在流程改变或组织机构变化时减少对彼此的影响。
为此,设计和实现了一个面向服务的、支持访问控制模型和流程模型分离的saas工作流访问控制模型—rbswac(role-basedserviceworkflowaccessscontrol)。
该模型可提高访问控制的适应性和灵活性,实现访问控制模型同流程模型的松耦合和灵活性。
关键词:
saas;访问控制模型;服务;工作流designingasaasworkflowaccesscontrolmodelwangfengjing,zhangqunfang(beijingtongfangsoftware,beijing,100080china)abstract:
serviceorientedworkflowhasbeenadoptedinthesaasapplicationtomeettheflexibilityandcustomizationofenterpriseinformationsystem,whichemphasizestheseparationofaccesscontrolmodelandtheworkflowmodel.inthispapertheauthorsdesignandimplementaserviceorientedsaasworkflowaccesscontrolmodel-rbswac(orrole-basedserviceworklfowaccessscontrol),whichmayenhancetheflexibilityandadaptabilityofaccesscontrolandrealizetheloosecouplingandagilenessbetweentheaccesscontrolmodelandtheworkflowmodel.keywords:
saas;accesscontrolmodel;service;workflow0引言saas是softwareasaservice(软件即服务)的简称,是一种通过互联网向公众特别是中小企业提供应用软件的模式。
saas软件厂商将应用软件统一部署在中心服务器上,租户可以根据自己的实际需求,通过互联网向厂商定购所需的应用软件服务。
saas本质就是通过在线租赁的方式替代传统的信息化建设投资,并保证租户充分享有信息化技术的便利、效率和专业的信息化服务。
在saas中为了支持客户的实际业务需求,需采用基于服务的业务流程进行支撑,一方面以支持多企业的业务流程的灵活性和定制化,另一方面也可支持灵活的访问权限控制[1]。
随着信息技术和企业业务的发展,企业的组织结构更加动态化,业务流程也经常发生变化,这些变化增加了实现工作流访问控制的复杂性。
从实现工作流访问控制的角度,应当使工作流访问控制模型与流程模型分离,这样在流程改变时,通过工作流访问控制的调整可以避免影响到企业的组织安全策略[2,3]。
同时,当企业的组织结构发生变化时,也可以利用工作流访问控制的调整避免对流程模型产生影响,有助于支持saas业务流程的灵活性和安全性[4]。
本文设计和实现了一个面向服务的、支持访问控制模型和流程模型分离的saas工作流访问控制模型—rbswac(role-basedserviceworkflowaccessscontrol)。
1rbswac模型定义在rbswac模型中,流程中的任务是作为抽象服务存在的,在具体运行时任务将被映射到具体的服务实例。
服务是实施授权的基本单元。
一方面,服务作为执行流程任务的具体执行体;另一方面,作为任务的具体执行体的服务又在访问控制模型中作为角色、权限之间的关联者进行访问控制权限的定义,在流程运行而进行服务调用时,将相应权限与相应角色的用户进行关联[5]。
因此,在rbswac中,访问控制模型和流程模型通过服务就关联在了一起,实现了访问控制模型与流程模型的松藕合关系。
当用户执行任务时,系统根据定义的访问控制模型实例化任务到具体服务实例,授权用户可以调用服务实例的操作,当任务完成时系统将删除服务实例,用户的权限自动取消,这样就可以实现动态授权原则。
同时,本模型也支持通过设定流程中任务间的冲突关系,在流程运行时将任务间冲突映射到服务间冲突关系,从而达到职责分离的目的。
rbswac模型如图1所示。
图1rbswac模型示意图根据wfmc规范[6],可以定义流程模型如下。
⑴流程模型中的元素包括:
wf表示工作流,t表示工作流中的流程任务,tinstance表示任务实例。
⑵工作流wf是一组任务t的集合。
工作流的运行过程看做wf的一个流程实例的执行,而一个流程实例是一组任务实例tinstance的集合。
rbswac模型的基本元素及其与流程模型的关系说明如下。
⑴rbswac的基本元素包括:
u,用户集合;r,角色集合;s,服务集合;p,与流程任务执行相关的权限集合;一个在流程运行时才建立的ass(authorityservicesession)—授权服务会话。
⑵用户与角色之间的关系为ur,uruxr,它们之间的关系是多对多的关系。
⑶角色层次关系。
角色用于描述组织模型中的责任单元,角色之间存在偏序关系rh,rhrxr,这种关系可以用<表示,如ri<rj,就表示rj是ri的上级角色。
⑷权限集合p定义了工作流程任务执行过程中相关的权限集合。
在rbswac模型中,权限是一个与任务执行相关的抽象概念,也就是流程任务对应的操作体的具体执行,即各种具体的业务权限。
⑸任务与角色之间的关系tr,trtxr,它们之间是多对多的关系;由于存在rh角色层次关系,tr也是可以根据rh进行继承的。
⑹任务与权限之间的关系tp,tptxp,这种关联关系规定了执行任务时所需要的权限。
⑺工作流中的任务与服务集合中的服务存在多对一的指派关系ts,tstxs,每个任务只有一个服务作为其具体执行体,但一个服务可以对应到多个任务上。
⑻服务集合s由一组服务s组成。
s是一个三元组(pain,paout,sp)。
其中pain和paout分别表示服务的输入参数和输出参数集合,用来描述服务与用户之间的数据交互需求,在任务到服务的映射过程中会进行对应;sp表示服务s上的各种具体操作函数集合。
⑼存在一个约束集constraints,表示作用在用户、角色、服务和权限之上的授权约束关系,可用以实现更复杂的安全策略控制。
⑽工作流实例winstance是一系列授权服务会话集合ass[ass1,ass2,…assn]。
assi是一个四元集(t,ts,tp,tr),tt,tss是任务t执行时的服务s,tpp是完成任务t需要的最小权限集,trr是可执行任务t的角色集。
工作流实例中的任务按照其定义中的流程逻辑顺序执行。
授权服务会话作为流程任务的执行和实施访问控制点的基本单元,将任务、服务、角色和权限关联起来,避免了流程模型和访问控制模型的直接关联。
如果访问控制模型或者其中的安全策略发生改变,只需要修改相关的授权服务会话,而流程模型无需作任何更改。
同样,如果流程的业务逻辑发生变化,例如当需改变某些任务的工作内容或添加、删除部分任务,从而影响执行流程所需的权限或流程参与者时,只需要对任务所对应的授权服务会话作相应的修改而不必修改访问控制模型和安全策略。
⑾任务授权服务会话的指派(tassa):
tassatxass,是多对一的任务到授权服务会话的指派关系。
一个任务只有一个授权服务会话与其对应,而一个授权服务会话可以控制多个任务的执行。
⑿服务授权服务会话的指派(sassa):
sassasxass,是一对一的任务到授权服务会话的指派关系。
一个服务只有一个授权服务会话与其对应。
⒀权限授权服务会话的指派(passa):
passapxass,是多对多的任务到授权服务会话的指派关系。
⒁角色授权服务会话的指派(rassa):
rassarxass,是多对多的任务到授权服务会话的指派关系。
ass是工作流程运行时的授权服务会话,在流程运行时与任务对应的服务实例sins将与符合访问控制策略的用户进行关联。
即只有当流程运行时,工作流系统才会根据各相关元素信息建立ass,并将任务对应的服务实例及其上的权限赋给相关用户。
服务调用结束后,用户的权限将随着服务实例的结束一并收回。
这一过程实现了动态责任分离的多用户访问控制策略。
2rbswac模型使用下面通过一个简单的流程实例来说明rbswac模型的设计和使用。
该示例业务流程如图2所示,这是一个企业采购订单的审核流程。
[t2:
校对订单][t1:
制定订单][t1:
核算订单][t1:
订单复核][t5:
订单审批][t6:
发送订单][t7:
订单退回,重新修改][金额小于1万][金额大于1万][批准状态yes][批准状态no]图2采购订单审核流程图3角色层次图根据上面的业务流程逻辑,系统涉及到以下角色:
r1采购经理;r2采购主管;r3采购人员;r4财务经理和r5财务人员。
角色层次图如图3所示。
根据上面的业务流程逻辑,系统对应的服务集合如下。
s={s1:
制定订单服务,s2:
校对订单服务,s3:
订单核算服务,s4:
订单审批服务,s5:
发送订单服务}根据上面的业务流程逻辑,系统对应的权限集合p为:
p={p1:
制定订单,p2:
校对订单,p3:
订单核算,p4:
批准订单,p5:
拒绝订单,p6:
发送订单}根据rbswac模型,可以为流程中各任务定义相关的授权服务会话。
制定订单ass1={t1,(t1,s1),(t1,p1),(t1,r3)}校对订单ass2={t2,(t2,s2),(t2,p2),(t2,r2)}订单核算ass3={t3,(t3,s3),(t3,p3),(t3,r5)}订单复核ass4={t4,(t4,s3),(t4,p3),(t4,r4)}订单审批ass5={t5,(t5,s4),(t5,p4,p5),(t5,r1)}}发送订单ass6={t6,(t6,s5),(t6,p6),(t6,r3)}订单撤销ass7={t7,(t7,s1),(t7,p1),(t7,r3)}该业务流程实例的ass集合与服务集合、权限集合、角色集合的关系如图4所示。
图4集合与集合之间的关系当任务实例化时,工作流程系统在运行时创建任务对应的授权服务会话并将服务实例和对应权限分派给合法的执行用户,即将授权服务会话对应的服务、执行角色集合和执行权限集合中的权限赋予执行用户,任务完成后,授权服务会话将权限收回。
现假设在已定义好的业务流程中需要对访问控制策略进行更改,在任务t2中校对订单对应的角色需要由采购主管r2修改为采购经理r3。
如果使用的是基于角色的工作流访问控制模型,则需要将流程模型任务t2的执行角色r2删除,同时在组织模型中将r2的p2权限撤除,再为r3角色添加p2权限,并将任务t2的执行角色改为r3。
而在rbswac模型中只需修改流程模型任务t2的tr关系,将(t2,r2)改为(t2,r3)即可。
业务流程在执行时会动态调整对应的授权服务会话ass,并将对应的服务、执行角色集合和执行权限集合中的权限赋予具体执行用户,任务完成后,授权服务会话将权限收回。
同样道理,当流程模型需要改变时只要修改相应流程模型的元素即可。
由上面的示例可见,rbswac模型大大增加了访问控制的适应性和灵活性,实现了访问控制模型同流程模型的松耦合和灵活性。
3结束语rbswac模型通过流程任务与角色、权限、服务的关联,以及流程模型和基于角色的组织模型的关联,实现了一个方便、灵活的工作流访问控制机制。
在接下来的工作中,我们将根据实际saas平台的安全需求和约束需求适当引入新的功能特性,进一步改进和完善rbswac的实现机制,同时将对不同类型约束的整合机制加以研究。
参考文献:
[1]徐伟,魏峻,李京.面向服务的工作流访问控制模型研究[j].计算机研究与发展,2005.42(8):
1369~1375[2]薛伟,怀进鹏.基于角色的访问控制模型的扩充和实现机制研究[j].计算机研究与发展,2003.40(11):
1635~1641[3]pckhung,k1karlapalem.leastprivilegesecurityincapbased2ams1[j].internationaljournalofcooperativeinformationsystems,1999.8(223):
139~168[4]吴耀华,李宁.适用于b/s结构的rbac模型研究及实现[j].计算机应用,2004.24(12):
8~87[5]陈波.基于saas的软件服务链研究[d].硕士学位论文,武汉理工大学,2008:
1~48[6]workflowmanagementcoalition.workflowsecurityconsiderations.workflowmanagementcoalition[r],technicalreport.:
wfmc2tc21019,1998
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SaaS 工作流 访问 控制 模型 设计