权限管理概述
权限管理功能是系统安全的重要基础保障,作为数字化变革和数据管理优秀实践开发的创新型工业软件开发与运营平台,工业数字模型驱动引擎-数据建模引擎(xDM Foundation,简称xDM-F)提供了基于数据对象和操作的授权/鉴权功能服务、上下文(文件夹)、群组/团队/团队角色/全局角色等多维度权限配置功能,帮助您构建完善安全的权限系统,保障数据安全。
参与者
参与者一般指的是在系统之外与系统交互的某人或某角色,在xDM-F中,参与者指的是对搜索服务定义、“权限管理”功能的数据模型与其数据实例等操作的某人或某角色。xDM-F当前提供如表1所示的参与者类型。
类型 |
说明 |
---|---|
团队角色 |
指一个人在团队中某一职位上应该承担的责任,例如某业务团队的业务经理、业务组长、业务人员和业务代表。
|
群组 |
指将用户按照子公司、部门、项目等维度划分为不同的群组,使群组下的全部用户获得相应的权限,方便统一权限管理。 |
全局角色 |
指用于管理xDM-F全局功能的操作权限或者某个子模块最高权限的角色,例如超级管理员、系统管理员、安全管理员、质量管理员、数据源管理员等。 |
虚拟角色 |
xDM-F在团队角色中预置了所有人、拥有者和团队成员三种虚拟角色。
|
用户 |
指应用下的个体成员,即“XDMUser”数据实体创建的数据实例。 |
操作类型
不同的角色有不同的操作权限,对每个用户分配最小够用的操作权限,可以极小的防止各种越权操作,从而有效减少由于操作不当带来的故障和安全问题。
xDM-F的操作类型提供了应用内的具体操作,内置七种操作类型:创建、管理、修订、下载、查询、修改和删除。如果内置的操作类型满足不了您实际的业务场景,您也可以自定义添加。更多关于操作类型的操作请参见操作类型。
授权
为了保证各类数据的安全性,满足用户自定义开发数据对象或功能授权的需求,xDM-F提供基于数据对象和操作的授权功能。您可以通过授权功能将参与者、搜索服务定义/具有“权限管理”功能的数据模型及操作类型进行关联,并将这组关系配置到策略集,提升模型维护效率,方便用户维护系统权限、数据流转等操作。
根据授权维度的不同,xDM-F的授权分为静态授权和动态授权。
权限规则
权限规则是您自定义的属性访问控制规则,用于控制参与者对具有“权限管理”功能的数据模型的属性级操作,可以实现对应用数据更细粒化的访问控制和安全防护。
单条自定义的权限规则由如下信息构成:
- 属性:如果数据模型需要进行属性级的权限管理,必须选择属性。您可以在创建数据模型时配置权限操作,或者直接编辑已有的数据模型进行配置。更多操作请参见创建数据实体、创建关系实体、修改数据实体和修改关系实体。
长文本、文件和JSON类型的属性不支持设置权限规则。
- 运算符:用于属性的运算,不同类型的属性所支持的运算符不同。xDM-F支持的运算符如下:
表3 支持的运算符 运算符
说明
支持属性类型
startsWith
以“属性”的“值”开头。
- 文本
- 参考对象
notStartsWith
不以“属性”的“值”开头。
- 文本
- 参考对象
endsWith
以“属性”的“值”结尾。
文本
notEndsWith
不以“属性”的“值”结尾。
文本
like
如果“属性”匹配值,返回true,否则返回false。
文本
notLike
如果“属性”不匹配“值”,返回true,否则返回false。
文本
in
如果“属性”在“值”中,返回true,否则返回false。
- 文本
- 整型
- 长整型
- 浮点型
- 浮点型(自定义精度)
- 参考对象
- 日期
- 枚举
- 人员
- URL
==
“属性”等于“值”,返回true,否则返回false。
- 文本
- 整型
- 长整型
- 浮点型
- 浮点型(自定义精度)
- 参考对象
- 日期
- 枚举
- 人员
- URL
!=
“属性”不等于“值”,返回true,否则返回false。
- 整型
- 长整型
- 浮点型
- 浮点型(自定义精度)
- 参考对象
- 日期
- 枚举
- 分类
- 人员
- URL
>
“属性”大于“值”,返回true,否则返回false。
- 整型
- 长整型
- 浮点型
- 浮点型(自定义精度)
>=
“属性”大于等于“值”,返回true,否则返回false。
- 整型
- 长整型
- 浮点型
- 浮点型(自定义精度)
<
“属性”小于“值”,返回true,否则返回false。
- 整型
- 长整型
- 浮点型
- 浮点型(自定义精度)
<=
“属性”小于等于“值”,返回true,否则返回false。
- 整型
- 长整型
- 浮点型
- 浮点型(自定义精度)
isNull
“属性”为NULL,返回true,否则返回false。
- 文本
- 整型
- 长整型
- 浮点型
- 浮点型(自定义精度)
- 日期
- 枚举
- 分类
- 人员
- URL
isNotNull
“属性”不为NULL,返回true,否则返回false。
- 文本
- 整型
- 长整型
- 浮点型
- 浮点型(自定义精度)
- 日期
- 枚举
- 分类
- 人员
- URL
is
如果“属性”匹配“值”,返回true,否则返回false。
布尔值
- 值:设置该权限规则要匹配的属性值。配置示例如下:
- 示例1:“属性”为“creator”,“运算符”为“isNotNull”,表示当创建者不为空时,则符合该规则。
- 示例2:“属性”为“tenant.id”,“运算符”为“==”,“值”为“-1”,表示当租户ID等于“-1”时,则符合该规则。
- 显示值:根据“属性”选择的“id”,返回对应属性映射的实例值。您可以在创建数据模型时的“权限操作”进行设置,或者直接编辑已有的数据模型进行配置。更多操作请参见创建数据实体、创建关系实体、修改数据实体和修改关系实体。
显示值仅适用于“参考对象”类型的属性。
策略集
策略集是一个容器,是您创建的参与者、数据模型、权限规则和操作类型相互关联的权限策略集合。当应用进行鉴权时,系统将在您指定的策略集中寻找权限策略,来确定参与者是否具有相应权限。更多关于策略集的操作请参见策略集。
xDM-F内置的“adhoc”和“function”策略集不允许编辑、删除或添加子策略集。
此外,文件夹具有策略集继承的功能,子文件夹的策略集可以继承父文件夹的策略集,也可以自定义。更多关于文件夹的操作请参见文件夹。
约束与限制
同一应用运行态同一逻辑租户下,最多可创建5000个团队角色、5000个群组和5000个全局角色。