美文网首页
2021-03-25 Day9

2021-03-25 Day9

作者: 威Sir漫话 | 来源:发表于2021-03-25 23:53 被阅读0次

    #产品小记  RBAC权限管理模型

    对于B端产品,多数会遇见权限管理问题。比如,不同部门、不同职位的人权限是不同的。今天学习了一个RBAC权限管理模型,在设计产品的权限时可以方便套用。

    RBAC(Role-Based Access Control)——是基于角色的访问控制。这是一套成熟的权限模型。在RBAC中,增加了“角色”的概念,根据权限的复杂程度又分为RBAC0、RBAC1、RBAC2、RBAC3。其中,RBAC0是基础,RBAC1、RBAC2、RBAC3都是以RBAC0为基础的升级。

    1.RBAC0. 

    这属于基础模型,在这个模型中,我们把权限赋予角色,再把角色赋予用户。用户和角色,角色和权限都是多对多的关系。用户拥有的权限等于他所有的角色持有权限之和。

    2.角色分层模型RBAC1。

    RBAC1建立在RBAC0基础之上,在角色中引入了继承的概念。简单理解就是,给角色可以分成几个等级,每个等级权限不同,从而实现更细粒度的权限管理。

    3.角色限制模型RBAC2。

    RBAC2同样建立在RBAC0基础之上,仅是对用户、角色和权限三者之间增加了一些限制。这些限制可以分成两类,即静态职责分离SSD(Static Separation of Duty)和动态职责分离DSD(Dynamic Separation of Duty)。具体限制如下图:

    4.统一模型RBAC3。

    RBAC3是RBAC1和RBAC2的合集,所以RBAC3既有角色分层,也包括可以增加各种限制。

    5.基于RBAC的延展——用户组。

    基于RBAC模型,还可以适当延展,使其更适合我们的产品。譬如增加用户组概念,直接给用户组分配角色,再把用户加入用户组。这样用户除了拥有自身的权限外,还拥有了所属用户组的所有权限。

    我们可以把一个部门看成一个用户组,如销售部,财务部,再给这个部门直接赋予角色,使部门拥有部门权限,这样这个部门的所有用户都有了部门权限。用户组概念可以更方便的给群体用户授权,且不影响用户本来就拥有的角色权限。

    做产品不需要重复造轮子,更多时候是成熟经验的继承。这就需要在平时多体验、多学习,只有积累够了,才能做到信手拈来。

    相关文章

      网友评论

          本文标题:2021-03-25 Day9

          本文链接:https://www.haomeiwen.com/subject/uxjdhltx.html