权限管理系统是每个B端产品都绕不过去的问题,好的权限管理系统具有可以明确企业内不同人员、不同部门的分工,降低操作风险发生概率,便于管理等优势。
传统的权限管理往往授权方式单一、维护成本高。永洪BI的权限管理系统,经历了若干版本迭代,具备高度灵活性。管理员可以批量导入用户数据,轻松维护企业组织架构。系统提供了用户授权、分组授权等多种授权方式,同时支持页面化设置数据行级列级权限,可满足不同规模企业的授权需求。本文将带你深度解析永洪BI权限管理系统。
一、RBAC模型
永洪BI权限管理系统设计整体上参照RBAC模型,RBAC模型全称为Role-Based Access Control,即基于角色的访问控制。在此模型中权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。
RBAC模型
有些读者可能会有疑问,如果去掉角色概念,直接将用户与权限进行绑定是否可以减轻工作步骤?对于人员较少的企业来说确实可以,但是对于中大型企业,组织结构庞大且复杂,如果再直接将用户与权限绑定,会造成大量重复的操作和冗余的权限数据。当用户身份发生变更时,还需要重新梳理绑定。所以将权限封装成角色,在赋予给指定用户和分组,可以大大提升效率和稳定性。
为了兼容各种规模的企业,永洪BI认证授权模块包含了用户管理、分组管理、角色管理和授权编辑四部分,管理员可选择直接对用户授权,也可以选择通过角色授权。
认证授权模块
1、用户管理
在用户管理中,管理员可完成对用户的增删改查操作,维护用户基础信息,添加分组和角色,以及对单个用户添加权限。
用户管理界面
2、分组管理
分组可以是企业中的组织架构,也可以是业务群组。永洪BI中分组支持树状的层级结构,管理员可以管理分组的层级,在某个组内添加用户。
当某个组内的所有用户都具有相同角色时,可以将角色直接添加在分组上,根据继承原则,分组下的所有用户都会自动添加到该角色。同样管理员也可以对单个分组进行授权。
分组管理界面
3、角色管理
角色可以是企业中的职位,也可以特指拥有某一类权限集合的对象,如数据管理员主要负责数据库对接及数据处理,运维管理员主要负责系统运行管控等。在角色管理中,管理员可以给角色添加权限,并将角色添加给指定用户和分组。
考虑到不同角色的权限可能差异不大,所以产品支持角色复制功能,可以将一个角色的权限一键复制给其他多个角色,管理员再对其他角色做剩余调整即可。
产品也默认提供了几个内置角色:
admin_role:超级管理员,拥有系统所有模块和资源的权限,可以管理全部用户、组、角色。
groupAdmin_role:组管理员,可以管理所在组内的用户,可以创建角色。其拥有的权限由admin进行指定。
everyone_role:所有用户都默认拥有的角色,拥有若干基础操作权限。
developer_role:报告管理员,一般为报告制作人员,用户优先级会自动降至较低
角色管理界面
4、授权编辑
授权编辑模块提供了另一种授权角度,即可以从资源层面进行授权。当系统新增了一个资源,涉及若干个角色的改动时,可以直接在资源上进行调整。
授权编辑界面
二、继承
继承规则也是永洪BI权限系统的核心之一。在上文中也有提及,用户可以继承其所在父组的权限和角色,获得相应权限,也可以继承其拥有角色的权限。
利用继承规则,可以大大减少重复授权的操作,便于权限的更新与扩展,因此需要管理员合理规划系统组织架构,将权限的最小集合封装为角色,然后赋予给相关的分组和用户。对于个别用户拥有额外权限,可以再单独授权。
产品中通过页面样式的变化,也可以区分出权限的不同状态:
如果是灰色勾选,说明权限是从分组或角色处继承而来。
如果是绿色无勾选,说明拥有文件夹下面某些子项的权限,但是没有父项的权限。
如果是绿色勾选,说明权限加在自身。
三、行级列级权限
除了对资源和操作进行权限管控外,数据安全管控也是B端产品极为重要的部分,企业数据往往有严格的业务等级划分,例如销售经理可以查看整个部门的销售数据,而销售组长仅能查看本组的数据等。因此永洪BI设计支持了数据行级和列级权限管理。
行级权限可通过行过滤器配合内置参数实现。举例说明:假设有一张业务表A,记录了北京和上海地区咖啡和茶两种商品的总销量。小明是北京地区的销售经理,可以查看北京的全部销售数据,小红是上海地区的销售经理,可以查看上海地区的全部销售数据。我们可以设计权限表B,将用户与地区一一对应起来,然后通过内置参数?{USER}过滤出每个登录用户所对应的地区,在以此作为条件过滤业务表。
业务表A
业务表A过滤条件:地区 是 其中一个 ?{region},?{region}赋值为权限表B的地区列。
权限表B
权限表B过滤条件:用户 是 = ?{USER}
列级权限较行级权限更容易理解和设置,可以直接在元数据界面上添加过滤对象,支持过滤用户、组、角色。此外还支持白名单过滤和黑名单过滤:黑名单为所选值不可见该字段,白名单则相反。
列权限设置界面
以上即为永洪BI权限管理系统设计的基本内容,希望通过本文,能让你对权限管控有更深刻的理解。
来源:oschina
链接:https://my.oschina.net/u/4373202/blog/4412113