问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

权限体系设计:融合组织和岗位的权限模型详解

创作时间:
作者:
@小白创作中心

权限体系设计:融合组织和岗位的权限模型详解

引用
1
来源
1.
https://www.aifabu.com/details/13095

在系统权限管理中,如何设计一个既能满足组织结构特点,又能灵活处理一人多岗、一岗多人等复杂情况的权限模型?本文将从RBAC(基于角色的访问控制)的基本原则出发,结合实际工作中的需求,详细解释这一问题的解决方案。

传统RBAC的局限性

传统的RBAC(基于角色访问权限控制)是一种经典的权限管理模式,其基本原则是不直接授权给系统用户,而是通过角色作为系统用户和系统资源之间的中介,将资源权限绑定到角色,然后将角色绑定到用户,从而完成整个授权过程。这种设计简化了授权和修改授权的过程。

然而,在实际工作中,为了满足更复杂的业务需求,基本的RBAC往往需要叠加更多的特性。例如,在用人制度上,通常采用以岗定人的模式。在这种模式下,当人员需要更新各种权限时,只需更新相应的组织关系,角色权限就会自动调整,从而减少管理人员的工作量,更符合常见的岗位调整操作模式。

组织结构的特点

在设计权限模型时,首先需要了解组织结构的特点:

  1. 组织通常是树形的:在同一层组织中,有不同的职位,每个职位都有不同的权限。例如,会计和出纳有不同的权限。
  2. 不同职位之间存在权限重叠:比如办公室主任除了有办公室员工的基本权限外,还有更多的审批管理权限。
  3. 同一职位将对应多个职位:同时,也会有一个人和多个职位,即多个职位,如下图所示。

在副总经理组织的相应职位上,有两个人,赵子龙和赵德彪。同时,赵子龙不仅担任副总经理,还担任总会计组织负责人。

组织、职位、角色、账户集成后的模型

基于上述组织结构的特点,我们可以设计一个集组织和岗位于一体的权限模型。在设计之前,先了解一下相关术语的定义:

  • 账户:每一个真实的人,登录系统的场景,我们用【账户】代表这个真实的人。
  • 资源:系统中的每个项目,如所有菜单、所有数据列表、所有页面等。
  • 角色:角色代表资源CRUD控制权限。
  • 组织:图1所示的组织结构
  • 岗位:对应人,一个岗位只能对应一个人,但一个人可以同时担任多个岗位。
  • 职位:同一类型的职位,形成一个职位

账户和资源不会直接绑定,原因是在前言中已经说明,这种粒度太细,会使以后的维护非常复杂和耗时。为了方便授权和以后的维护,可以绑定职位和角色。同一职位下的所有职位都有相同的角色。

如下图所示。注:副总经理赵德彪需要对应自己的账号。该帐户仅代表一个职位。登录后,系统检查该帐户代表该职位C,组织结构中的职位C是职位B。接下来,系统发现这个职位B对应四个角色,即角色2~5。每个角色代表不同的资源操作权限,职位B拥有这四个角色权限的总和。综上所述,赵德彪登陆后,拥有操作资源A,C和操作资源…资源…的权限。另一位副总经理赵子龙需要对应自己的账户。该账户代表两个职位。根据上述逻辑推断步骤,省略了中间过程。最后,赵子龙登录后有资源查看A,操作资源B和操作资源C的权限。

总结

本文首先介绍了RBAC的基本原则,即绑定账户和角色,绑定角色和资源权限,实现简单合理的权限控制。然后介绍了实际工作中以岗位定人的组织结构特点,包括一人多岗、一岗多人的情况。最后,给出了一个实用的权限模型设计方法,包括如何设计融合组织和岗位的权限模型,供读者参考。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号