美文网首页权限管理
Day 561:权限设计

Day 561:权限设计

作者: kafkaliu | 来源:发表于2018-08-10 22:03 被阅读3次

权限模型

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

常见模型:

1. 最简单的模型

用户 - 权限 - 资源

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

2. 最常用的模型

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

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

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

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

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

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

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

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

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

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

相关文章

  • Day 561:权限设计

    权限模型 核心问题:判断某人对某资源是否可进行某操作(即权限) 常见模型: 1. 最简单的模型 用户 - 权限 -...

  • 数据库 权限设计

    数据库 权限设计 -系统权限管理设计-通用权限管理设计 之 数据库结构设计 权限 用户 角色 组 用户表

  • JavaWeb权限设计原理

    每个系统都有权限设计,本篇主要将初始的权限设计的原理,不依赖任何框架,以直观的角度剖析web的权限设计。 权限设计...

  • day561

  • 权限系统设计方案

    1权限模型 1.1 权限设计 从业务分类上来讲权限可以分为数据查看权限,数据修改权限等,对应到系统设计中有页面权限...

  • 2、用户权限管理,数据库表设计

    一、权限设计 网上资料说权限设计 = 功能权限 + 数据权限,我认为还是很有道理的。之前项目中只涉及到功能权限,没...

  • 权限设计合集

    1.《数据权限设计思路_权限设计数据权限》摘要:方案一:按照岗位体系建立数据权限方案二:针对角色设置数据权限方案三...

  • 产品 | 权限设计=功能权限+数据权限

    权限设计=功能权限+数据权限 权限管理 Authority Management 目前主要是通过用户、角色、资源三...

  • 我们的读书会

    中原焦点团队 【坚持分享Day561】2020/12/17 星期四 多云 依旧夜色朦胧的清晨5:30,属于我...

  • 模型设计

    一、模型整体设计 二、模型说明 该设计参考现在比较通用的权限管理设计模式,权限管理模型包括 2.1 用户表 ...

网友评论

    本文标题:Day 561:权限设计

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