模型演进
权限模型演变过程
通过了解权限模型的演进过程,相信你会对权限系统有更深的理解,以下是正文。
1、ACL:基于用户的权限管理模型
小王是一家创业公司的产品经理,负责一款 CMS 系统的设计。起初,网站的所有内容都由公司唯一的运营小红负责,所以小王就对小红的账号开启了所有权限。
这种直接将权限绑定在用户账号上的方式就叫做基于用户的权限管理(ACL)。
2、RBAC:基于角色的权限管理模型
随着运营部门不断发展壮大,每次有新员工入职,小王都要为其单独配置权限,而且无法批量修改,十分繁琐。
同时小王发现运营部门分工明确,部分人员负责内容审核,需要为他们开启审核管理的权限;部分人员负责产出内容,需要为他们开启内容管理的权限……
这就导致小王经常会做一些重复性的工作。于是小王就想在现有的用户层上再抽象出一层——角色层,只要对角色设置权限,属于该角色的人员就自动拥有这些权限。
这种将权限绑定在角色上,再给用户账号赋予角色的方式就叫做基于角色的权限管理(RBAC),
该模型于 1992 年由美国国家标准与技术研究院组织开发,是目前最通用的权限管理模型,节省了很大的权限维护成本。
3、RBAC1:角色继承的 RBAC 模型
在 CMS 系统使用了一段时间后,小王发现了一个新问题——系统中存在的角色太多了,因为只要有权限不一样的用户加入系统,就需要新建一个角色,当用户权限分得很细的时候,甚至比 ACL 还繁琐,于是小王就想着手解决这一问题。
他发现角色之间存在着类似组织架构一样的上下级关系,比如 COO>运营经理>运营主管>运营组长>运营人员>运营实习生,并且上级拥有下级的所有权限,同时可以额外拥有其他权限,于是他在现有的角色基础上又抽象出一层角色等级。
这种在角色中引入上下级关系的 RBAC 模型就叫做角色继承的 RBAC 模型(RBAC1),通过给角色分级,高级别的角色可继承低级别角色的权限,一定程度上简化了权限管理工作。