用户与权限管理

2021-6-29 About 33 min

# 用户与权限管理

# RBAC 基于角色的权限管理

RBAC (Role Based Access Control)基于角色的权限管理,由用户、角色、操作/资源,三部分组成,访问列表也称之为资源列表被赋予角色/用户组之上,赋予用户一个或多个组让用户获得所在组的资源访问权限;
混合模式下允许资源被直接赋予用户,这样对于复杂多变的互联网公司的业务场景更加灵活。IBI自1.2起开始支持直接在用户至上的赋权模式。

# 权限管理模块

与之相对应用户管理界面分也为三块,同时支持用户管理/角色管理/用户、角色、资源总览三种视图模式。

栏目 介绍
用户栏 所有用户列表,目前仅支持超级管理员新建、编辑、删除用户
角色栏 所有角色列表,但是用户只能改变自己是角色管理员的角色项
资源栏 资源按标签页分为:菜单、数据源、资源(数据集、图表、看板以文件夹形式组织)、定时任务

授权文件夹资源具有继承效果,如果不单独对子节点设置权限,则子节点继承父节点权限

# IBI权限管理特色

为了简化用户、角色、权限管理,我们把原来需要多个操作页面的工作集中设计到单页面完成,在您可能之前使用过其他的系统里会存在一个页面用户管理,一个角色管理一个界面,角色权限管理又有一个页面,想要查看一个赋予了多个角色的用户所具有的权限合集,一般得靠记忆力。

在IBI系统中,查看、新增、编辑、权限管理统一在一个页面完成,避免了不同界面来回切换,从而做到所见即得的使用体验!

下面的解释可以在您对操作产生疑惑时解疑,正常情况下相信可以脱离文档快速上手

# 三种操作模式

# 模式1:用户管理

用户管理模式下,可以看见两栏,左边栏为用户列表,右边栏为资源列表, 在该模式下用户可以

  • 可以管理与编辑用户信息
  • 查看用户与资源之间的直接关系
  • 更新用户权限

  • 资源栏会监控用户选中状态,选中单个用户,右边栏会与选中用户联动,从而达到查询用户权限的功能;
  • 选中多个用户,或者不选中用户资源栏取消所有选中
  • 当用户具有菜单->管理->用户管理->用户资源管理权限的时候用户栏下方会显示授权按钮,进行用户授权:
    • 点击用户-权限按钮进行授权,下拉授权按钮可以操作撤销用户权限
    • 用户授权内容为增量更新,新增授权系统自动检测当前授权是否存在,如果存在则会删除原有授权,更新为当次操作授权
    • 当您在资源栏多个标签页切换时,您可能已经忘记之前标签页被选中状态,为了避免多用户状态下授权变更错误的增加或者删除非当前标签页的资源,授权内容仅为当前激活资源标签页下面的资源
    • 支持一次对多个用户进行授权

# 模式2:角色管理

角色管理模式下,可以看见两栏,左边栏为角色列表,右边栏为资源列表,在该模式下可以:

  • 可以管理与编辑角色信息
  • 查看角色与资源之间的直接关系,包含单个角色或多个角色权限合集
  • 更新角色所具有的权限

资源栏联动:与用户资源联动不同地方在于,选中多个角色时资源栏会显示多个角色具有的权限合集,该设计是因为我们经常会把某个用户赋予多个角色,显示多个资源合集可以便于查看具有了多个角色的情况下能够访问的所有资源

  • 资源栏会监控角色选中状态,选中角色项变化时,资源栏会与选中角色联动,从而达到查询角色权限的功能;
  • 授权:
    • 点击更新角色资源权限按钮进行授权限,授权为全量授权
    • 目前仅支持每次更新一个角色权限(后续更新会与用户管理一样,支持增量更新多个角色权限)

# 模式3:权限总览

权限总览模式下,可以看见三栏,在该模式下对于熟练的用户甚至可以完成所有权限相关的操作:

  1. 进行所有在用户管理模式下支持的用户管理
  2. 支持所有在角色管理模式下支持的角色管理
  3. 支持查看与管理用户与角色的关系
  4. 支持查看用户直接授权的资源 + 用户在角色组间接授权的资源合集

  1. 查看用户角色与权限 选中单个用户,该用户所属角色会被联动选中,方便便捷查看用户所属角色;同时该用户所有的权限列表(包含用户权限与该用户所属角色具有权限合集)也会实时联动
  2. 查询与修改用户直接拥有权限 取消用户与角色的联动,选中单个用户的状态下,用户与资源直接的关系实时联动, 效果与用户管理模式一致
  3. 修改(授权,回收)用户角色 取消所有用户的选中,此事角色与资源直接的实时联动,管理效果与角色管理模式一致
  4. 查询角色权限 在用户没有被选中的状态下,联动选中的资源即为当前选中角色具有的权限, (用户被选中状态下会混入用户直接授权所关联的权限)

选中多个角色时,被联动选中的资源为当前所有角色权限合集

# 其他管理操作

用户列表

  • 用户列表
  • 点击+号添加`新建用户`: 新建用户的权限目前只对管理员开放, CAS, OAuth2.0系统接入之后, 通过认证登录能够自动创建新用户
  • `编辑与删除`: 只有选中单个用户的时候右上角的编辑与删除菜单才会出现
  • 搜索用户:默认通过用户名(包含登陆名)搜索,点击搜索框前面的按名称按钮可以切换为按用户组搜索
  • 企业版多选checkbox选中用户或者角色(社区版暂时为按住Ctrl鼠标左键选中多个用户或者角色)
  • 用户<->权限:从版本1.2开始直接对用户进行授权
  • 用户<->角色:授权或者回收权限
  • 选中一个用户之后,该用户对应的角色可以被联动选中,同时该用户所有的权限列表(包含用户权限与该用户所属角色具有权限合集)也会实时联动

角色(Role)

  • 点击+号添加角色, 并为该角色分配一个管理员(角色管理员所在组需要有管理功能菜单权限)
  • `编辑与删除`: 只有选中单个角色的是右上角的编辑与删除菜单才会出现
  • 角色管理员用于管理当前角色所属
  • 除了Admin之外,角色管理员只能管理的角色, 其他的角色为不能编辑状态
  • 每次只能更新一个角色的资源权限

资源

  • `菜单`:一级菜单与二级菜单分开控制,没有级联
  • `文件夹`: 子文件夹会继承父文件夹的权限, 文件夹的详细解释请参考[文件夹资源管理(企业版)](zh-cn/manual/foldersystem.md)
  • 合理的按照文件夹组织资源之后`看板`/`数据集`/`图表`都可以不用另行控制权限; 特殊需求可以单独控制
  • 文件夹下的子节点在没有单独选中修改权限的情况下集成最近父节点权限,选中状态下以自身状态为主,如父节点为可读写删除权限,当前节点只读权限,则最终为只读。
  • `资源的查改删`: 资源的权限包含`查,改,删`, 右键点击资源节点可以切换`改,删`状态
  • 角色管理员只能管理owner为自己的角色

# 数据权限精细化控制(企业版)

企业版支持对角色设置精细的访问权限, 权限控制可达到单元格粒度. 下面是详细操作介绍:

假如我们有两个不同地区的销售团队, 美国组加拿大组, 管理员希望每个组只能看到各自的数据; 在角色栏选中美国组, 选中需要添加规则的数据集, 右键Rule

弹出交互框, 左侧为数据集下所有的列, 拖拽列到AND节点, 然后点击编辑按钮, 会进入和图表设计时同样的字段过滤窗类似:

# 维度成员动态查询

维度成员过滤设置与自助分析时不同的地方是,此处的维度成员设置支持动态查询脚本,设想一下贵公司可能在引入BI系统之前在其他系统里面维护了一套用户与业务数据权限管理表,此事便可以很方便的在此通过动态查询导入BI系统外部关系; 从而让您公司多套系统共用一套权限数据

动态查询支持传入的查询变量常用的有:

变量 解释
loginName 登陆账号
userName 用户别名

当某个角色对应的维度成员过滤变成动态数据之后,角色本身遍可以当成可变规则来使用,如:原本要对每个国家的用户都建立一个角色然后选定该角色可见国家维度成员,食品集市-加拿大组、食品集市-美国组等等,变可以统一变成一个动态规则组国家过滤规则组

select country
  from your_rule_table
 where user = '${loginName}'
1
2
3

同时, 还您还可以

  • 添加多个字段的过滤
  • 切换同级下多个节点之间的关系为AND或者OR
  • 添加多级节点

Tips

设置完成之后记得点击确认保存, 关闭窗口哦!

# 字段可见控制

切换到排除标签页, 你还可以控制该角色对模型节点(包含: 层级, 维度, 指标, 表达式与过滤器)的可见性, 如下图, 配置了美国组在使用Foodmart模型的时候不可见家庭小孩数

# 用户结合数据集维度精细权限控制

通过数据集权限模板可以控制数据集对不同用户的数据访问权限,查询模板是可以查询外部系统权限数据,这样便可以方便用户把BI系统与外部系统的权限进行集成

操作步骤:

  • 编辑维度节点,高级配置栏开打权限规则开关
  • 可以使用直接查询,选定权限数据所在的数据源连接->编写查询,查询中可以通过${loginName}变量控制区别用户权限范围,查询首列为当前维度限定的数据范围
  • 也可以使用权限模板(查询模板)中预定义的模板
    • 查询模板目前仅管理员账号可以统一配置,配置路径: 管理权限模板
Last update: March 28, 2023 11:38