1. 概述编辑
1.1 版本
报表服务器版本 | 插件版本 |
---|---|
11.0 | V1.0 |
1.2 应用场景
信息安全,是目前企业越来越关注的重点之一,权限隔离也就作为最常用的手段之一被各大企业普遍应用。当前帆软的权限体系都是根据部门、职位、角色来控制的,但是目前这些控制维度不能完全满足客户对于权限的安全控制,权限拦截插件可以从额外的维度出发,加强了权限控制
1.3 功能描述
权限拦截配置
功能 | 功能描述 | ||
权限拦截配置 | 访问场景配置 | 访问用户 | 从用户和角色两个维度进行限制 |
网络 | 内网,外网或者自定义IP段进行限制 | ||
访问客户端 | 从不同的客户端进行限制 | ||
集成框架 | 嵌入别的系统的域名下的本工程的页面 | ||
可配置权限的资源 | 决策平台/H5决策平台/决策平台目录/报表目录/自定义资源 | ||
权限模拟 | 输入模拟访问场景和资源,得出权限结果和原因 |
2. 插件介绍编辑
2.1 插件安装
点击下载插件:XXXX(此处要添加插件市场该插件的链接)
设计器插件安装方法请参见:设计器插件管理
服务器安装插件方法请参见:服务器插件管理
如果安装后需要重启设计器或工程才能生效的话,在此处说明!!!
2.2 操作方法
2.2.1 安装插件
安装插件后,管理员可以看到决策平台的权限管理选项中增加了权限拦截配置项
2.2.2 权限拦截配置
点击+号,可以选择增加权限项、增加分组或者增加快捷模板
① 增加权限项
选择增加权限项后,给新的权限项命名,(可以选择复用目前内置的权限项快捷模板),点击确认
创建新的权限项后,点击该权限项,选择对应的配置
1) 访问场景配置
访问用户
访问用户可以从平台用户以及平台角色两个维度选择,选中访问用户,点击编辑进行选择
网络
访问网络可以分为内网,外网以及自定义IP段
内网:IP为10.0.0.0 - 10.255.255.255、172.16.0.0 - 172.31.255.255、192.168.0.0 - 192.168.255.255
外网:非内网的IP
访问客户端
客户端可以分为机器客户端和软件客户端
注:数据分析APP通过请求头的terminal=APP判断,需要注意下APP的userAgent是没有移动端Mobile的标识的,本地测试是userAgent=okhttp/3.11.0,他在第一层机器标识里只属于【电脑端PC等】
集成框架
支持配置集成系统的来源,即请求头的Referer(网站来路)
2)权限资源配置
访问资源 | 说明 |
决策平台 | |
H5决策平台 | |
决策平台目录 | 支持单独选择和全选。目前单独选择的选中逻辑是只选中叶子节点,不支持文件夹节点的选中 注:只支持/entry/access/目录节点ID方式访问,例如目录挂载url链接类型的则不在控制范围内 |
报表目录 | 支持单独选择和全选。目前单独选择的选中逻辑是只选中叶子节点,不支持文件夹节点的选中 拦截的是/view/form?viewlet=报表路径、/view/report?viewlet=报表路径 |
自定义资源 | 支持配置自定义的URL链接资源 拦截的是除了上述决策平台、决策平台目录、报表目录之外的平台url 仅支持当前服务器下的请求路径如/decision/xxx |
3)有权限与无权限配置
有权限表示当前配置的访问场景有当前配置资源的访问权限
无权限表示当前配置的访问场景没有当前配置资源的访问权限
4)高级配置
用于配置权限项和权限分组之间的关联
AND&OR的逻辑:(true表示有权限,false表示无权限)
根据插件AND和OR的逻辑,只有一个权限项时且为OR时,权限拦截是不生效的
对于OR来说,其结果为true的时候,会直接导致当前分组的计算结果为true
对于AND来说,其结果为false的时候,在没有OR 权限项先一步导致当前分组为true的情况下,会直接导致当前层级的计算结果为false
场景:
1.当两个权限项同为AND时,会优先计算false的权限项
2.当两个权限项同为OR时,会优先计算ture的权限项
3.当两个权限项一个为AND,一个为OR时,若OR的结果为ture则计算ture的权限项,不计算AND的结果为false,若OR的结果为false则不计算,直接计算AND的权限项结果
3. 示例编辑
权限拦截主要是两个场景:某个范围没有权限和只有某个范围有权限
3.1某个范围没有权限示例:禁止外网PC端访问决策平台
配置过程:
新建对应命名的权限项
访问场景配置中,网络选择外网
访问场景配置中,访问客户端选择电脑PC端及其他
权限资源配置中,选择决策平台
选中无权限,高级配置选择AND
保存
3.2 只有某个范围有权限示例:只能在内网环境中用移动端登录决策平台
跟上一个示例有区别,这种情况下需要拦截的场景太多,只从拦截的角度出发容易遗漏,就需要多条权限项配合
配置过程:
新建第一个权限项 ----用于拦截所有访问决策平台的场景
访问场景配置中,不选择(不选择也就是默认全选)
权限资源配置中,选择决策平台
选中无权限,高级配置选择AND
创建第二个权限项 ----用于给固定的访问场景权限
访问场景配置中,网络选择内网
访问场景配置中,访问客户端选择移动Mobile端
权限资源配置中,选择决策平台
选中有权限,高级配置选择OR
保存
4. 注意事项编辑
数据分析APP中没有决策平台的概念,故配置数据分析APP访问决策平台的权限项不起作用。
常见的配置误区:配置【OR 无权限】然后还是可以访问,这是因为OR只有为true的时候才会直接导致结果为true,否则就是继续计算或取默认结果true。
常见的配置误区:配置【AND 有权限 】选择【自定义资源】/decision/xxx,然后导致超管退出后无法访问工程。这是因为【AND 有权限】的组合实际上是一个强制白名单(没有选择的资源会变成false,导致权限项计算结果为false)。