Day 561:权限设计

权限模型

核心问题:判断某人对某资源是否可进行某操作(即权限)

常见模型:

1. 最简单的模型

用户 - 权限 - 资源


比如:运营人员小A对某个页面(比如说活动页面)可以进行增删查改(小技巧:permissions可以用一个字节的不同位表示不同权限)

2. 最常用的模型

RBAC:即基于角色的访问控制。最简单模型中有个问题,即通常公司里有很多像小A这样的运营人员,他们职责差不多,如果都要这么设置比较麻烦,特别是职责发生变化时,需要更改每个人的权限。

这些类似职责的人聚集合到一起就是岗位,是角色的一种。角色代表的是一组权限。


这个模型和现实比较对应,即人在公司里总是某个岗位上的,这个岗位则定义了一组权限。

比如:运营人员小A,岗位是运营,运营可以在活动页面上增删查改,也可在专辑页面上做同样操作。可以减少权限的重复操作,也可避免最简单模型中权限改动时的麻烦。

这个模型也叫RBAC0,是RBAC中最核心的概念。

对于公司组织架构来说,岗位总是在某个部门之下。部门意味着有一组基本权限,而部门之下的岗位则是继承了这些权限。所以这又引申出RBAC的另一个变种,RBAC1。与RBAC0的差别是,角色有了继承关系。


RBAC0告诉我们,组织中的用户可以有多个岗位。但在实际工作中有些岗位是不能兼任的,比如说销售和财务,因为销售提交合同,而财务审核合同,是不允许自己审核自己合同的。为了解决这个问题,在RBAC0基础之上衍生除了RBAC2,引入了静态和动态规则,叫静态职责分离(SSD)和动态职责分离(DSD)。

SSD:在设置阶段就做好了限制。比如同一用户不能授予互斥的角色,用户只能有有限个角色,用户获得高级权限之前要有低级权限等等。

DSD:在运行阶段进行限制。比如运行时同一用户下5个角色中只能同时有2个角色激活等等。


相应的,可以把RBAC1和RBAC2结合起来,就成了RBAC3。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 2019/3/10 什么是RBAC 权限系统通常基于RBAC(Role-Based Access Control)...
    杨呀阅读 11,849评论 6 67
  • 业务后台系统的产品设计最重要的内容有三项:功能设计、权限设计和流程设计。三项内容还可以按下表细分: 本篇总结的是业...
    SanCode阅读 11,408评论 0 97
  • 一、令人头疼的权限设计 设计师在进行设计时,常常会抽象出对产品有诉求的多个角色,再依据角色的特性去梳理使用场景并设...
    帆尘阅读 14,933评论 9 440
  • 几乎所有的管理后台都会涉及到权限的设计,权限控制是管理后台的重要功能,可以有效的提高系统的安全性,减少误操作、数据...
    湖中小筑阅读 15,502评论 6 210
  • 几乎所有的管理后台都会涉及到权限的设计,权限控制是管理后台的重要功能,可以有效的提高系统的安全性,减少误操作、...
    刘建彬来了阅读 7,906评论 0 14

友情链接更多精彩内容