初涉基于工作流平台的访问控制

初涉基于工作流平台的访问控制

沙晋  深圳易思博

访问控制技术的运用已经渗透到当代社会中的各行各业,不少的国际高科技公司已经在自己的产品中将访问控制技术实现得相关完善,如企业级关系数据库供应商OracleIBM公司所开发的数据库产品中,都有自己的访问控制技术的实现。

IBMDB2产品为例,其中有权限和特权两个概念:权限是由特权组和较高级别的数据库管理器(实例级别)维护和实用操作组成;而特权则是针对数据库以及其中的对象操作实施控制的。同时,DB2还定义了五种权限,其中SYSADMSYSCTRL SYSMAINT 是系统实例级权限,而DBADM LOAD 权限是为了某个特定的数据库而指定给某个用户或组的。对于数据库级特权和对象级特权,前者的作用范围覆盖数据库内的所有对象,而后者仅与特定对象有关。这种权限与特权的分配,使数据库的管理者和使用者都能根据DB2中所设定及配置的访问控制策略进行许可的资源操作,可以作为访问控制技术实现中的基本标准。

以这些基本标准为基础,我们不难为自己开发的应用系统提供一个访问控制模块,下面我们就以一个工作流系统为例,为其提供访问控制技术的相关实现。在实际的应用中,工作流系统通常都是以一种需要进行二次开发的通用平台提供给商业用户的,这也就决定了工作流系统中所需要的权限控制与普通数据库的权限控制实现略有不同。除了工作流系统级别的权限与操作外,还需要可容纳二次开发用户的业务级权限与操作。

根据以上的要求,我们可以给出以下的组成元素:人员,组织,角色,系统级操作及业务级操作,关系类图如下,为了保持简洁,本类图结构并未进行优化。


1:访问控制模块基本关系类图

对于系统级操作而言,主要针对整个工作流系统的运作进行管理,初期我们可以假定在系统初始阶段指定一个管理者,拥有所有的系统级操作,这些操作都被赋予给一个称为ADMIN的角色,操作列表如下:

操作代码

操作名称

操作描述

0001

CREATE_WF_MODEL

创建工作流程模板

0002

UPDATE_WF_MODEL

更新工作流程模板

0003

DELETE_WF_MODEL

删除工作流程模板

0004

LOAD_WF_MODEL

装载工作流程模板

0005

UNLOAD_WF_MODEL

卸载工作流程模板

0006

START_WF

启动工作流程

0007

STOP_WF

终止工作流程(无条件完全终止)

0008

SUSPEND_WF

挂起工作流程

0009

RESUME_WF

恢复工作流程

0010

GRANT_SYS_OPER

赋予角色系统级操作能力

0011

REVOKE_SYS_OPER

去除角色系统级操作能力

0012

GRANT_BUSS_OPER

赋予角色业务级操作能力

0013

REVOKE_BUSS_OPER

去除角色业务级操作能力

上表中所列出的只是一个系统级操作中所必须的子集,新增,删除,修改用户,工作组以及角色的操作定义并未被列入,且不同的工作流系统开发者可以定义其他不同的系统级操作。我们规定以0开头的操作代码代表了系统级操作,这些信息可以存在于系统数据库表中或其他持久性存储介质上。

在这里,我们设定一个简单的二次开发业务环境:处理客户投拆流程。以下是一个简化的处理流程:


2:处理客户投拆流程

根据上图所给出的业务流程,我们可以制定两个或三个角色,以两个角色为例:雇员和经理。但在这个业务应用中存在三个业务级操作,分别分配给对应的角色,再指定给系统中所定义的用户,具体定义如下表:

操作代码

操作名称

操作描述

所属角色

1001

COMPLAIN_HANDLE

对客户投拆进行处理

雇员,经理

1002

COMPLAIN_CONFIRM

对客户投拆处理进行确认

经理

1003

COMPLAIN_FILE

将客户投拆及处理信息归档

雇员,经理

在指定了这些操作以后,工作流系统将保存这部分信息到系统数据库表中,系统管理者将在对工作流程进行建模时为流程中的每一个任务指定一个执行者角色,登录者所被分配的角色将被工作流引擎用来决定该用户是否能够对该任务进行处理。

至此,我们基本上完成了一个关于通用工作流系统的访问控制设计,并假设了一个平台上二次开发的业务用例。实现该初步设计的具体方案可以有很多,并能进行相应的优化。毕竟在这个简洁的示例中,还有太多细节没有描述,欢迎大家多提意见进行讨论,如果需要转载,请注明出处,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值