云帆文档的权限模型剖析

作者:云帆互联
时间:2022-12-15 11:09

权限管理是一个系统最基本也是最重要的功能。好的权限管理可以使系统更加的灵活,更好的扩展。权限管控可以通俗的理解为权力限制,即不同的人由于拥有不同权力。对应到一个应用系统,就是一个用户可能拥有不同的数据权限(看到的)和操作权限(使用的)。  系统有多种权限模型,主流的权限模型主要分为以下五种:包括ACL 模型:访问控制列表,DAC 模型:自主访问控制,MAC 模型:强制访问控制,ABAC 模型:基于属性的访问控制,RBAC 模型:基于角色的权限访问控制,云帆文档使用的就是RBAC模型(基于角色的权限访问控制)

  RBAC是Role-Based Access Control的简称,核心在于用户只和角色关联,而角色代表对了权限,是一系列权限的集合。RBAC 的三要素为:

1)用户:系统中所有的账户

2)角色:一系列权限的集合(如:管理员,开发者,审计管理员等)

3)权限:菜单,按钮,数据的增删改查等详细权限。

在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。

 角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系同样也存在继承关系防止越权。优点:便于角色划分,更灵活的授权管理;最小颗粒度授权;

 RBAC 权限管理的在实际系统中的应用

  RBAC 权限模型由三大部分构成,即用户管理、角色管理、权限管理。

  用户管理按照企业架构或业务线架构来划分,这些结构本身比较清晰,扩展性和可读性都非常好。

  角色管理一定要在深入理解业务逻辑后再来设计,一般使用各部门真实的角色作为基础,再根据业务逻辑进行扩展。

  权限管理是前两种管理的再加固,做太细容易太碎片,做太粗又不够安全,这里我们需要根据经验和实际情况来设计。

 a.用户管理

    用户管理中的用户,是企业里每一位员工,他们本身就有自己的组织架构,我们可以直接使用企业部门架构或者业务线架构来作为线索,构建用户管理系统。

    

    需要特殊注意:实际业务中的组织架构可能与企业部门架构、业务线架构不同,需要考虑数据共享机制,一般的做法为授权某个人、某个角色组共享某个组织层级的某个对象组数据。

   B.角色管理

  角色相对于用户来说是一般固定不变的,每个角色都有自己明确的权限和限制,这些权限在系统设计之处就确定了,之后也轻易不会再变动。

    (1)自动获得基础角色 

      当员工入职到某部门时,该名员工的账号应该自动被加入该部门对应的基础角色中,并拥有对应的基础权限。这种操作是为了保证系统安全的前提下,减少了管理员大量手动操作。使新入职员工能快速使用系统,提高工作效率。

    (2)临时角色与失效时间 

      公司业务有时需要外援来支持,他们并不属于公司员工,也只是在某个时段在公司做支持。此时我们需要设置临时角色,来应对这种可能跨多部门协作的临时员工。

  C.权限管理

    权限管理一般从三个方面来做限制。页面/菜单权限,操作权限,数据权限。

    (1)页面/菜单权限

      对于没有权限操作的用户,直接隐藏对应的页面入口或菜单选项。这种方法简单快捷直接,对于一些安全不太敏感的权限,使用这种方式非常高效。

    (2)操作权限

       操作权限通常是指对同一组数据,不同的用户是否可以增删改查。对某些用户来说是只读浏览数据,对某些用户来说是可编辑的数据。

    (3)数据权限

      对于安全需求高的权限管理,仅从前端限制隐藏菜单,隐藏编辑按钮是不够的,还需要在数接口上做限制。如果用户试图通过非法手段编辑不属于自己权限下的数据,服务器端会识别、记录并限制访问。

    (4) 数据权限如何管控

      数据权限可以分为行权限和列权限。行权限控制:看多少条数据。列权限控制:看一条数据的多少个字段

      简单系统中可以通过组织架构来管控行权限,按照角色来配置列权限,但是遇到复杂情况,组织架构是承载不了复杂行权限管控,角色也更不能承载列的特殊化展示。 目前行业的做法是提供行列级数据权规则配置,把规则当成类似权限点配置赋予某个角色或者某个用户。

云帆文档的权限管理功能截图

角色管理

数据权限设置

菜单权限设置

云帆文档管理系统致力于为企业提供安全稳定的文档系统解决方案。我们一直在努力提升文档的安全性,稳定性,可操作性,功能细节的完善性。我们致力于成为最好文档系统解决方案提供商,为企业的文档管理保驾护航。

部分内容来源

http://www.flydean.com/authorization-service/

商业版地址:https://www.jeedocm.com/?plan=qxgl

微信号:18710213152

微信二维码:

 

上一篇:文件管理系统的主要作用是什么?     下一篇:文件管理系统应具备的功能都有哪些?