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