身份认证与访问控制技术2第5章基于任务的访问控制5.1工作流与工作流管理系统5.2基于任务的访问控制中的概念与模型5.3基于角色和任务的访问控制模型5.4案例:R-TBAC模型应用5.5安全性分析35.1.1工作流5.1.2工作流管理系统5.1.3工作流管理系统的应用5.1工作流与工作流管理系统4•工作流–工作流概念起源于生产组织和办公自动化领域,是针对日常工作中具有固定程序活动而提出的一个概念,目的是通过将工作分解成定义良好的任务或角色,按照一定的规则和过程来执行这些任务并对其进行监控,达到提高工作效率、更好的控制过程、增强对客户的服务、有效管理业务流程等目的。–为完成某一目标而由多个相关的任务(活动)构成的业务流程。工作流所关注的问题是处理过程的自动化,对人和其他资源进行协调管理,从而完成某项工作。5•工作流管理系统(WorkflowManagementSystem)–能完整定义和管理工作流,并按计算机中预先定义好的工作流逻辑规定的次序,以执行软件的方式执行工作流,实现过程管理和过程控制。–它是一个软件系统,企业的业务系统,而是为企业的业务系统的运行提供了一个软件的支撑环境。–主要部件–1.过程定义工具:过程定义工具被用来创建计算机可处理的业务过程描述。它可以是形式化的过程定义语言或对象关系模型,也可以是简单地规定用户间信息传输的一组路由命令。–2.过程定义:过程定义(数据)包含了所有使业务过程能被工作流执行子系统执行的必要信息。这些信息包括起始和终止条件、各个组成活动、活动调度规则、各业务的参与者需要做的工作、相关应用程序和数据的调用信息等。6–3.工作流执行子系统(WES)和工作流引擎:工作流执行子系统也称为过程执行环境,包括一个或多个工作流引擎。工作流引擎是WFMS的核心软件组元。它的功能包括:解释过程定义;创建过程实例并控制其执行;调度各项活动;为用户工作表添加工作项;通过应用程序接口调用应用程序;提供监督和管理功能等。工作流执行子系统可以包括多个工作流引擎,不同工作流引擎通过协作共同执行工作流。–4.工作流控制数据:指被WES和工作流引擎管理的系统数据,例如工作流实例的状态信息、每一活动的状态信息等。–5.工作流相关数据:与业务过程流相关的数据。WFMS使用这些数据确定工作流实例的状态转移,例如过程调度决策数据、活动间的传输数据等。工作流相关数据既可以被工作流引擎使用,也可以被应用程序调用7–6.工作表和工作表处理程序:工作表列出了与业务过程的参与者相关的一系列工作项,工作表处理程序则对用户和工作表之间的交互进行管理。工作表处理程序完成的功能有:支持用户在工作表中选取一个工作项,重新分配工作项,通报工作项的完成,在工作项被处理的过程中调用相应的应用程序等。–7.应用程序和应用数据:应用程序可以直接被WFMS调用或通过应用程序代理被间接调用。通过应用程序调用,WFMS部分或完全自动地完成一个活动,或者对业务参与者的工作提供支持。与工作流控制数据和相关数据不同,应用数据对应用程序来讲是局部数据,对WFMS的其他部件来说是不可见的。8•工作流管理系统的应用–应用于企业的业务自动化管理系统,以任务为中心,将上层任务分成小任务项,多人协作完成任务,需要进行访问控制。9–具体应用•业务流程:订单、报价处理、采购处理、合同审核、客户电话处理•行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请。•人事管理类:员工培训安排、绩效考评、职位变动处理、员工档案信息管理等。•财务相关类:付款请求、应收款处理、日常报销处理、出差报销、预算和计划申请等。•客户服务类:客户信息管理、客户投诉、请求处理、售后服务管理等管理等。•特殊服务类:ISO系列对应流程、质量管理对应流程、产品数据信息管理、贸易公司报关处理、物流公司货物跟踪处理等各种通过表单逐步手工流转完成的任务均可应用工作流软件自动规范地实施。–举例:企业认证工作流;受理保单工作流115.2.1TBAC中的概念5.2.2TBAC模型5.2.3TBAC模型的分析5.2基于任务的访问控制中的概念与模型12•TBAC:从应用和企业层角度来解决安全问题,以面向任务的观点,从任务(活动)的角度来建立安全模型和实现安全机制,在任务处理的过程中提供动态实时的安全管理。•首先考虑工作流环境中对信息的保护;不仅能对不同工作流实行不同的访问控制策略,还能对同一工作流的不同任务实例实行不同的访问控制策略13•相关概念–任务:工作流系统中的逻辑单元;包括:开始、结束条件,可参与到此环节中的用户,完成此任务所需的程序或数据,相关限制条件–授权步:工作流程中对处理对象的一次处理过程;任务中的每个子任务对应一个授权步;授权步随着处理的进行动态改变状态执行委托者执行许可集激活许可集受托人集保护态授权步14•相关概念–授权单元:一个或多个授权步组成的单元,逻辑是相互联系的。可分为一般授权单元和复合授权单元–依赖:授权步骤之间或授权单元之间的相互关系,包括顺序依赖,失败依赖,分权依赖和代理依赖15•TBAC模型–一个工作流的业务流程由多个任务构成。一个任务对应于一个授权单元,每个授权单元由特定的授权步组成。授权单元之间以及授权步之间通过依赖关系联系在一起–用五元组(S,O,P,L,As)来表示授权,其中S表示主体,O表示客体,P表示许可,L表示生命期,As表示授权步。由于任务都是有时效性的,所以基于任务的访问控制中,用户对于授予他的权限的使用也是有时效性的–授权策略:As-As,As-U,As-P–任务间的关系•任务顺序限制•任务相依限制–TBAC的不足A1A2工作流激活撤销访问决策Yes/NoA1A3A2A4保护态165.3.1R-TBAC模型描述5.3.2R-TBAC中的层次模型5.3.3R-TBAC中的约束研究5.3基于角色和任务的访问控制模型17•R-TBAC模型–RBAC强调系统的静态元素–TBAC强调系统的动态元素–人:受托人集角色集–授权:静态授权(角色);动态授权(任务)任务会话用户角色许可权限RTAURATPA18•R-TBAC模型定义–URA:usersXroles用户和角色间的多对多指派关系–RTA:rolesXtasks角色和任务间的多对多指派关系–TPA:tasksXprms任务和权限间的多对多指派关系–assign_users(r)角色r到用户集合的映射–assign_roles(t)任务t到角色集合的映射–assign_permissions(r)任务t到权限集合的映射–user_sessions(u)用户u到会话集合的映射–session_roles(s)会话s到角色集合的映射–avil_session_tasks(s)会话s中用户可执行的任务集合19•R-TBAC模型设计与实现•构成:–访问控制服务器ACS(AccessControlServer)–访问请求过滤器AF(AccessFilter)–角色任务权限管理器RTAM(Role&TaskAuthorizationManager):存储执行任务时角色需拥有的访问客体权限.它涉及到四个集合:任务、角色、客体、权限–用户/角色信息库UR(User/RoleBase)–角色任务权限库RTA(RoleTaskAuthorizationBase)–任务信息库TI(TaskInformationBase)保存工作流中任务的相关信息,是基于任务授权的根本.在任务信息库中,保存任务的属性有任务名、处理态、权限集、能执行任务的角色集、执行任务的角色以及其它相关信息.处理态随着任务的执行而改变.只有当处理态为活动态时,权限集才真正有效.当处理态为终止态时,主体拥有的权限被撤销,权限集立即为空.能执行任务的角色集是满足条件、潜在的执行角色,执行任务的角色才是最终真正执行任务的角色20•流程–(1)客户端要求进入系统之前,首先向身份认证服务器证实自己的身份,获取能担当的角色–(2)客户端得到身份认证之后,向访问请求过滤器AF提出执行任务请求的具体内容.访问请求过滤器AF从请求的具体内容中提出有关访问控制信息内容,如请求的任务、用户标识、用户的角色、请求访问的客体等,送交访问控制服务器ACS–(3)访问控制服务器ACS收到请求后,首先查询任务信息库TI,根据TI中保存的任务信息,如任务当前的状态、能执行该任务的角色、该任务的约束等,分析判断用户能否执行该任务;如能执行,再参照角色任务权限库RTA授予用户执行该任务所需的最小权限,同时收回用户拥有的其他权力;如不能,拒绝用户的任务请求21•流程–(3)然后,访问控制服务器ACS将决策结果回送给访问请求过滤器AF.如果决策结果为接受,访问请求过滤器AF将用户的请求提交给工作流,工作流将处理结果返回给用户–(4)工作流中各任务按一定的逻辑顺序由系统自动执行.当轮到某个任务执行时,由系统自动标识,然后等待主体激活.如果任务被激活,任务此时的状态信息就写入任务信息库.此后任务的状态信息及其它相关信息都由系统自动记入任务信息库.一旦任务处于终止态或夭折态,系统在任务信息库中标志该任务已终止,启动后续任务准备执行22•R-TBAC中的层次模型–任务:复合任务;原子任务–任务的流程与角色的层次相“匹配”–任务层次R1R2R3R4RR5R6TaskJaJbJcJ1J2J5J6分配23•R-TBAC中的层次模型任务会话用户角色许可权限URATPARTARHRH24•R-TBAC中的层次模型定义–URA,RTA,TPA–RH:rolesXroles角色集上的偏序r1r2–TH:tasksXtasks任务集上的偏序t1t2表示t2是t1的子任务–assign_roles(t)任务t到角色集合的映射–authorized_user(r)拥有角色r的用户集合–avil_session_tasks(s)会话s中用户可执行的任务集合–execut(t)执行任务t所需的用户集合25•R-TBAC中的约束–约束避免冲突–权限,角色,任务和用户可能存在冲突可能性任务会话用户角色许可权限URATPARTARHRH约束26•R-TBAC中的约束–冲突类型•权限冲突•角色冲突•任务冲突•用户冲突–任务上下文和用户上下文:描述用户权限的动态特性•角色间关系:角色相容,角色互斥•任务间关系:任务相容,任务互斥,任务相依•权限间关系:权限相容,权限互斥–与授权约束的相关定义–工作流中的冲突使用授权约束规则进行描述275.4.1数据库设计5.4.2系统实施的安全框架5.4案例:R-TBAC模型应用•实现:基于R-TBAC的层次约束模型•数据库设计–用户-角色分配–权限定义–任务信息定义28任务会话用户角色许可权限URATPARTARHRH约束29•系统实施的安全架构审计模块身份验证模块授权模块约束模块工作流执行服务模块系统安全框架图30•系统静态定义–建立用户–建立角色,角色继承–用户分配角色–建立模块及其操作–建立工作流:任务信息,任务顺序…–任务分配权限(一般为原子任务)31•系统动态授权–依据任务顺序,按次序激活相应任务–执行状态的任务,查找权限,激活相关权限–执行状态的任务,查找角色,选择执行者,赋予相关权限–执行者处理任务,回收相关权限,任务状态改为无效,激活下一任务–所有任务执行完毕,结束生命周期,回收权限32335.5.1最小特权原则5.5.2职责分离原则5.5.3数据抽象原则5.5安全性分析•最小特权原则–权利细化到原子任务级–赋予和撤销–角色维护方便,角色在工作流中不需单独授权•职责分离原则–静态职责:建模时确定的约束–动态职责:运行中确定的约束,根据任务的执行状态和约束规则•数据抽象原则–模块—权限—模块权限34Q&A