DWF通过规则引擎实现授权。授权模型负责对功能模型和数据模型进行权限分配管理,
权限模型包括:功能授权、类和属性访问控制、对象访问控制三个层次。DWF通过规则引擎实现授权。DWF提供了基于组织对应用功能授权和基于组织对数据访问授权的权限模型,利用这种授权限模型可以最小粒度控制到数据层面的访问权。
授权模型的主要功能:
- 基于功能授权:基于功能树实现对用户组的快速授权;通常用于增加了新的功能模块,需要对组织进行快速授权;
- 基于组织授权:基于组织和用户实现对应用通道和功能树的授权;
- 数据访问授权:基于组织和用户实现对类和属性的授权;数据访问授权还提供了批量授权模式,可对用户和用户组进行类和类属性的批量授权,大大提高授权的效率;
- 对象授权:对象授权属于数据访问授权范畴,是实现基于规则的数据对象授权方式。
DWF授权模型具有如下特点:
- 快速授权控制顶层功能访问
- 访问控制防止数据异常泄露
- 对象规则实现细粒度数据保护
- 支持统一认证服务集成
...
权限分配—Authorization。用户和授权项之间的分配关系称为权限分配。
2.基本功能
授权模型包含功能授权、类和属性访问控制、对象访问控制三个模块。授权模型包含:功能授权、数据访问授权二个层次。
2.1基本功能
2.1.1
...
基于功能授权
功能授权包括功能树授权和操作授权2个层次,其中“快速授权”是针对功能树的授权方式。
...
基于功能实现对组织的授权,通常用于对新增的功能实现对组织的授权。
2.1.2基于组织授权
基于组织和用户实现对应用通道和功能树的授权。
基于功能的授权和基于组织的授权其本质都是基于组织对功能进行授权。功能授权采用白名单机制,权限粒度为模块、模块操作;即默认普通用户没有查看和操作应用及功能(模块及模块操作)的权限;需要管理员根据实际业务添加用户(组)对具体应用的功能权限。
信息 | ||
---|---|---|
| ||
|
...
2.1.3 操作授权
基于功能授权还有一种情况是基于操作的授权
- 操作授权是针对表单中的操作(按钮)进行授权的方式。
- 默认用户都有对表单操作使用的权限。可通过“操作”控件设置区“开启授权”,在“管理授权”处对指定用户(组)赋予权限时,仅授权用户具有表单中的操作权限,非授权用户无表单中的操作权限。
信息 | ||
---|---|---|
| ||
|
2.1.2类和属性访问控制4 数据访问控制
”访问控制“是针对类和类属性的授权方式。访问权限粒度为类、类属性。对类操作访问控制授权包括:新增,删除, 修改,查询;对属性操作访问控制授权包括:编辑,查询。
...
- 独立模式:是按照用户/用户组进行授权;
- 批量模式:可以按照用户/用户组进行“批量允许”或“批量禁止”的授权操作,批量授权模式支持勾选方式 。
2.1.3 5 对象访问控制
针对符合属性授权规则中的对象进行访问控制的方式,称为对象访问授权。
...
4)将前述查询的关联类的结果集与左/右对象的对象授权规则的结果集取交集返回。
2.3 授权规则
(1)权限的继承性:功能授权、类和类属性授权(访问控制)、功能授权权,对组织树(用户组)的授权都具有继承性。(1)权限的继承性:功能授权、类和类属性授权(访问控制),对组织树(用户组)的授权都具有继承性。
(2)当设置了父组织(用户组)的权限,其下的子组织(包括子用户组和用户)会继承父组织的权限规则;如果对某个子用户组或者用户收回权限,该子用户组/用户权限规则优先级高于父组织的权限规则,子用户组/用户的权限将不再受到父用户组的影响。
3.建模过程
3.
...
1基于组织授权
”快速授权“的建模过程:”基于组织授权“的建模过程:
- 1 1. 进入权限模型,选择”快速授权“; 进入权限模型,选择”基于组织授权“;
- 2. 在功能模型下选择要授权的模块(选择零件列表模块);选择组织和用户;
- 3. 在弹窗中3选择授权的用户组;选择应用通道和功能模块(选择零件管理模块);
- 4. 点击”确认“件,完成对零件列表的授权过程。 点击”保存“件,完成对零件管理的授权过程。
图-快速授权基于组织授权
3.2 表单操作授权
表单操作授权就是对表单上的按钮控件进行授权:通过在表单定义的操作中“开启授权”,可以在 “管理授权”中实现指定用户(组)对操作权限的控制。建模过程如下:对操作权限的控制。进入表单模型,选择“实体类表单”,举例中选择的零件实体类的多对象表单;建模过程如下:
进入表单模型,选择“实体类表单”,举例中选择的零件实体类的多对象表单;
- 1. 进入表单模型,选择“实体类表单”,举例中选择的零件实体类的多对象表单;选择要进行访问控制的操作按钮;
- 2. 选择要进行访问控制的操作按钮;在右侧的操作属性定义界面中选择“开启授权”;
- 3. 在右侧的操作定义界面中选择“开启授权”;点击“管理授权”进入授权界面;
- 4. 点击“管理授权”进入授权界面; 5. 选择用户/组进行授权
- 65. 点击确认,即可完成表单操作的管理授权。
图-表单操作授权
3.
...
3数据访问控制
在“访问控制”中,批量授权模式2种:在“数据访问控制”中,有批量授权和独立授权2种方式:
进入独立模式:独立模式是针对用户独立模式:独立模式是针对用户/用户组的授权模式。用户组的授权模式,可进行编辑和查询的授权。
进入批量模式:批量模式是针对用户组进行授权,批量授权有2种:批量允许、批量禁止。
访问控制批量授权的建模过程:
- 1. 进入权限模型,选择”访问控制“; 进入权限模型,选择”数据访问控制“;
- 2. 选择要授权的类或类属性;
- 3. 选择授权模式开关,截图是在批量授权模式;
- 4. 选择“批量允许”或“批量禁止”方式;
- 5. 选择授权的用户组或用用。选择授权的用户组或用户。
图-访问控制数据访问控制
信息 | ||
---|---|---|
| ||
如果在上图中步骤3显示”进入独立模式“,说明当前是在批量授权模式,步骤3所指的按钮是一个授权模式开关,显示的模式是点击按钮后要进入的授权模式,而不是当前的授权模式。 对类的授权支持:新增、编辑、查询、删除 对类属性的授权支持:编辑、查询 |
3.4 对象访问控制
1)对象访问授权举例
对象访问授权是在功能授权、类和类属性授权(访问控制)的基础上做更细粒度的授权方式,是将符合某属性规则的对象的集合进行访问控制的方式。结合设备管理的案例,我们希望针对"维修工程师"组,当每一位维修工程师(属性为:engineerOid)登录设备管理系统查询工单时(工单实体类:WorkerOrder),系统只显示该工程师所负责的工单,要实现这样对象访问授权,需要设置一个“工单筛选”属性授权规则为:
...
- 1.选择“属性授权”规则;
- 2.选择“新增属性授权规则”;
- 3.填写属性授权规则名称,本例子定义为“工单筛选”;
- 4. 编写属性授权规则条件,本例子属性规则条件为:select plt_engineerOid as userId,plt_engineerOid as objId from plt_cus_WorkerOrder;
- 5.选择确定,即完成属性授权规则的定义过程;
图-属性规则权限
- 6.选择“对象规则权限”;
- 7.选择用户组,本例子中选择”维修工程师“;
- 8.选择属性实体类和属性,本例子中需要选择工单实体类:WorkerOrder,选择的属性为:engineerOid,并选择”创建“对象授权规则;
图-对象授权规则1对象授权规则
- 9.在弹出的创建对象授权规则的弹窗中,编写对象授权规则,本例子中为1=1,永远为真;
- 10.选择属性授权规则,本例子中需先择”工单筛选“;
- 11.点击”确认“,即可完成对象授权的规则。
通过上述属性授权规则、对象授权规则的定义,即可完成针对维修工程师组的用户登录时只能看到自己属于自己的维修工单的对象访问权限的控制。
图-对象授权规则2对象授权规则
4.小结
本章介绍了DWF授权模型的基本概念和基本功能,DWF授权分为:功能授权、类和属性访问控制、对象访问控制三个层次:本章介绍了DWF授权模型的基本概念和基本功能,DWF授权分为:功能授权、数据访问控制二个层次:
功能授权:包括功能树和操作的授权,”快速授权“是针对功能树的授权方式;操作授权:是针对表单中的操作按钮进行授权的方式。功能授权:包括功能树和操作的授权,操作授权:是针对表单中的操作按钮进行授权的方式。
类和类属性访问控制:”访问控制“是针对类和类属性的授权操作授权。数据访问控制:”访问控制“是针对类和类属性的授权。
对象访问授权:是针对符合属性授权规则中的对象进行访问控制的方式,称为对象访问授权。
...