数据权限
数据权限用来约束用户是否能访问和操作某个模型的数据,目前分以下几种类型:
- 行数据权限(即界面上的”数据权限”):用来约束用户可以访问的记录
- 列数据权限:用来约束用户可以访问记录的哪些字段。
鉴权流程
开启鉴权
MS & 业务模块 配置环境变量:
1.0.8.RELEASE 起,废弃了环境变量 DEFAULT_ENABLED_AUTHENTICATION,这个环境变量控制着默认开启/关闭鉴权的开关。由于交付工作台支持了 Func/Flow 开关后,默认关闭了Func/Flow 的数据鉴权,导致无论该环境如何配置,默认都是关闭数据权限,因此作废。
DEFAULT_ENABLED_AUTHENTICATION=true //❗️trantor 版本 < 1.0.8.RELEASE 时,业务模块必须开启,否则不走鉴权,ms请勿配置。trantor 版本 >= 1.0.8.RELEASE 起,废弃了环境变量 `DEFAULT_ENABLED_AUTHENTICATION`,使用交付工作台界面的 Func/Flow 数据权限开关。ACL_MOCK=false;USER_MOCK=false;ACL_CLIENT_HOST=;ACL_ADMIN_HOST=;UC_PROTOCOL=;UC_FRONT_URL=;LOGIN_SHARE_COOKIE_NAME=;授权流程
在交付控制台|模块|(数据权限|列数据权限)定义模型哪些字段需要设定数据权限约束,具体的数据权限约束规则在 统一工作台|角色管理|(数据权限|列数据权限)时确定。
创建
交付控制台点击数据权限进入数据权限配置页点击创建在右侧完善权限点名称以及约束字段,点击提交完成新增。发布完成后可在统一工作台配置字段的约束规则,约束值可以选择指定值(使用指定值鉴权)或业务变量(使用业务上下文表达式获取的变量鉴权)。
❗️注意事项:
- 影响模型不能重复选择,即无法为同个模型配置多个数据权限。
- 选中的影响模型为 VO时,右侧会出现实体模型映射操作,点击打开form选择实体模型,映射结果显示到后面的括号里。若选中模型为PO,则不显示操作。
交付控制台|数据权限|影响模型|字段的变量管理可为字段配置多个业务变量,发布成功后即可在统一工作台选择业务变量。单个业务变量是由变量名与业务上下文表达式组成的键值对,因此同个字段无法定义同名业务变量。其中涉及到业务上下文相关的知识点,请参考:业务上下文开发指南

修改
点击已创建的数据权限点,在右侧可调整基础信息、影响模型及约束字段,点击提交生效本次修改,发布完成后可在统一工作台修改约束规则。
删除
点击已创建的数据权限点,点击删除二次确认后可删除该数据权限点,发布完成后,权限点失效。
鉴权失效排查
❗️仅针对行数据权限
- 检查环境变量是否配置正确。
- 在业务服务的最近日志中查找关键字
Invalid permission,一般可以看到权限点失效的原因。 - 若无任何
Invalid permission日志,则下开启业务服务debug日志,在最近日志中查找关键字Permission add sql,即可看到鉴权拼接的where条件和params。
logging: level: io.terminus.trantorframework.permission: debug更多数据权限配置可以点击数据权限