我们在做任何一款产品的时候,或多或少都会涉及到用户和权限的问题。譬如,做企业类软件,不同部门、不同职位的人的权限是不同的;做论坛类产品的时候,版主和访客权限也是不一样的;再例如一款产品的收费用户和免费用户权限也是迥然不同的。但在设计产品的用户和权限的关系的时候,很多产品经理可能按照感觉来,在并不清楚用户和权限是否存在优秀的理论模型的时候,就按照自我推理搭建了产品的用户和权限模型。而这种基于感觉和推理的模型肯定是有诸多问题的,譬如写死了关系导致权限不够灵活、考虑不周导致权限覆盖能力弱等等。
正如牛顿所言,站在巨人的肩膀上才能看的更远。我们不妨去参照已有的比较成熟的权限模型,如:RBAC(Role-Based Access Control)——基于角色的访问控制。我搜集了网上很多关于RBAC的资料,大多与如何用数据表实现RBCA相关,并不容易理解。所以,
我会以产品经理的角度去解析RBAC模型,并分别举例如何运用这套已得到验证的成熟模型
。
一、RBAC模型是什么?
RBAC是一套成熟的权限模型。在传统权限模型中,我们直接把权限赋予用户。而在RBAC中,增加了“角色”的概念,我们首先把权限赋予角色,再把角色赋予用户。这样,由于增加了角色,授权会更加灵活方便。在RBAC中,根据权限的复杂程度,又可分为RBAC0、RBAC1、RBAC2、RBAC3。其中,RBAC0是基础,RBAC1、RBAC2、RBAC3都是以RBAC0为基础的升级。我们可以根据自家产品权限的复杂程度,选取适合的权限模型。