基于RBAC的权限控制模型小总结

基于RBAC权限模型

今天大致了解了一下RBAC概念模型,特此记录一下,好记性不如敲一敲。

概念

RBAC,即role-based access control,基于角色的访问权限控制。可以抽像概括为,who是否有对what进行how操作的权限,这个逻辑表达式是否为true的求解过程。
RBAC支持公认的安全原则,最小特权原则,责任分离原则和数据抽象原则。

  • 最小特权原则:可以通过分配给角色的权限和大小来控制最小职责,分配给某用户的角色权限满足用户需要即可。
  • 责任分离原则:可以通过在完成敏感任务时分配两个责任上相互约束的两个角色给用户来实现,比如说清查账目,财务管理员和会计两个角色参加即可。
  • 数据抽象原则:是通过抽象许可权的概念来实现的,就比如说在账目管理中,可以使用信用,借方等抽象管理权。

分类

RBAC96是一个模型族模型包括4种概念性模型。RBAC0,RBAC1,RBAC2,RBAC3。

RBAC0是最基础的也是最核心的,分为用户—会话—角色—权限四个部分,用户与角色之间是多对多的关系,一个用户可以有多个角色,多个角色可以赋予一个用户,角色和用户之间也是多对多的关系,一个角色可以有多个权限,一个权限也可以被多个角色所拥有。用户可以通过会话来激活角色从而获得相应的权限。

RBAC1是RBAC0的升级,引入了角色间的继承关系。角色间的继承关系可以分为一般继承关系和受限继承关系。一般继承关系即多继承,受限继承关系即单继承。这种模型关系适合于角色之间层次明确,包含明确。

RBAC2是RBAC0的升级,此模型中添加了责任分离关系。责任分离包括静态责任分离和动态责任分离。责任分离和用户–角色–权限一起构成了RBAC2模型中用户的访问许可。在权限赋予角色时,以及角色被赋予用户时,以及用户通过会话激活角色时要遵循的强制性规定。
静态约束:

  • 互斥角色:一个用户只分配到一组互斥角色中的至多一种角色。
  • 基数约束: 一个用户被赋予的角色数目有限,一个角色锁拥有的权限有限。
  • 先决条件角色:可以分配角色给用户仅当用户已经是另一角色的一员,可以赋予权限给角色仅当该角色已经拥有另一种权限。通俗讲,必须有低级权限,才能有高级权限。
    动态约束:
  • 运行时互斥:允许一个用户具有两个角色的成员资格,但是在运行中不可同时激活这两个角色。(不是很理解
    RBAC3拥有最全面的权限管理,它基于RBAC0,整合了RBAC1和RBAC2。

缺点

RBAC模型没有提供操作顺序控制机制,使得RBAC模型很难应用于那些有严格操作次序的实体系统。

数据库建模

我们公司的数据库关于权限的设计是采用的RBAC0模型,基于此我做了一个数据库建模练习。
RBAC0数据库建模

最后附上我所学习的原文链接RBAC权限控制模型详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值