Topic 权限模型

一、权限模型分类

1 MAC(Mandatory Access Control):

起初由政府和军方设计并使用, 它有非常严格的访问控制模型。
在MAC中, 所有的权限由管理员预定义, 并且由操作系统控制。
MAC实现了数据的权限分类(如重要的等级或安全的等级)和用户的权限分类(部门, 项目等), 这样在验证的时候就可以对比用户和数据的权限等级对应关系, 从而知道是否有访问权限。
很少会有只使用MAC的, 一般情况下会和其他的方法混合使用, 比如UNIX的文件系统使用了DAC, 但是root账号可以绕过这个访问控制模型不受限制。
2 DAC(Discretionary Access Control)

和所有数据和权限被操作系统控制不一样,这个允许用户控制自己的数据的访问权限。
根据用户的身份以及它们所属的分组来限制对对象的访问权限。
用户可以通过ACL定义什么人或什么等级的人可以访问什么资源, 每一个ACL都包含一个用户和组的列表, 以及它们的访问权限。通常情况下, 系统管理员设置一系列常用的访问控制权限。
这里关键的是用户只能定义它们自己拥有的资源的访问权限。
3 ACL(Acess Control List)


4 RBAC(Role-Based Access Control) 基于RBAC模型的权限验证框架与应用 Apache Shiro、spring Security、SELinux

RBAC通常被公司使用, 基于用户的职位给予访问权限。 这里权限被分配到公司里定义的角色上面。
RBAC中用户被分配一个角色, 而它只能拥有角色里包含的权限, 没有可以绕过的方法。
RBAC通过role分离了工作职责。


5 RBAC(Rule-Based Access Control)

权限的分配依据管理员预定义的规则。 每一个对象都有它自己的ACL(access control list), 操作系统检查用户是否拥有这个权限。
6 ABAC(Attribute-Based Access Control)

这个模型根据特殊的规则来分配权限, 这些规则组合了用户(users), 资源(resource)和对象(objects)的属性。
处理的逻辑是根据这个role和action的属性来判断, 不同的属性应该满足不同的要求。


 7 PBAC(Policy-Based Access Control)

 

二、RBAC(Role-Based Access Control) 介绍

RBAC即角色访问控制(Role Based  Access Control)

RBAC认为权限授权实际上是Who、What、How的问题。在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What(Which)进行How的操作”。
Who:权限的拥用者或主体(如Principal、User、Group、Role、Actor等等)
What:权限针对的对象或资源(Resource、Class)。
How:具体的权限(Privilege,正向授权与负向授权)。

基于角色的访问控制方法(RBAC)的显著的两大特征是:1.由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,减小了授权管理的复杂性,降低管理开销。2.灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。

1        RBAC 介绍

RBAC 模型作为目前最为广泛接受的权限模型。

RBAC0 RBAC1 RBAC2 RBAC3

NIST (The National Institute of Standards and Technology,美国国家标准与技术研究院)标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0(Core RBAC)、角色分级模型RBAC1(Hierarchal RBAC)、角色限制模型RBAC2(Constraint RBAC)和统一模型RBAC3(Combines RBAC)[1]。RBAC0模型如图1所示。

RBAC 0模型.JPG
图表 1 RBAC 0 模型

l          RBAC0 定义了能构成一个RBAC控制系统的最小的元素集合

在RBAC之中,包含用户users(USERS)、角色roles(ROLES)、目标objects(OBS)、操作operations(OPS)、许可权permissions(PRMS)五个基本数据元素,权限被赋予角色,而不是用户,当一个角色被指定给一个用户时,此用户就拥有了该角色所包含的权限。会话sessions是用户与激活的角色集合之间的映射。RBAC0与传统访问控制的差别在于增加一层间接性带来了灵活性,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的扩展。

l          RBAC1 引入角色间的继承关系

角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构。

l          RBAC2 模型中添加了责任分离关系

RBAC2 的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。责任分离包括静态责任分离和动态责任分离。约束与用户-角色-权限关系一起决定了RBAC2模型中用户的访问许可。

l          RBAC3 包含了RBAC1和RBAC2

既提供了角色间的继承关系,又提供了责任分离关系。

建立角色定义表。定出当前系统中角色。

因为有继承的问题,所以角色体现出的是一个树形结构。

 

 

 

三、参考

The NIST Model for Role-Based Access Control: Towards A Unified Standard (paper)  https://www.profsandhu.com/confrnc/rbac/rbac-nist(org).pdf

  RBAC几种常见的控制权限模型  https://www.cnblogs.com/yangzailu/p/9760692.html
  权限系统与RBAC模型概述[绝对经典] https://www.cnblogs.com/jpfss/p/11210694.html
  常见的权限访问控制模型 https://www.cnblogs.com/helloz/p/11234101.html

  Role-based access control https://en.wikipedia.org/wiki/Role-based_access_control
  NIST RBAC model https://en.wikipedia.org/wiki/NIST_RBAC_model
(1) Rationale for the RBAC96 Family of Access Control Models  https://www.profsandhu.com/confrnc/rbac/ratio(org).pdf
 Overview of Four Main Access Control Models https://www.utilizewindows.com/overview-of-four-main-access-control-models/
 RBAC即角色访问控制(Role Based Access Control) https://blog.csdn.net/huanghanzzz2006/article/details/1429678
 权限分析文档 http://www.blogjava.net/anwenhao/archive/2006/11/21/82535.html?spm=a2c6h.12873639.0.0.1d385621kqY3tK
 基于PBAC的统一权限管理平台设计与实现 http://www.ict.edu.cn/ebooks/b1/text/n20200601_21712.shtml

 实现Demo:
  RBAC(Role-Based Access Control )基于角色的访问控制(TP3.23) https://blog.csdn.net/Phplayers/article/details/76579557
  基于角色的权限控制系统(role-based access control)https://www.cnblogs.com/silence-cho/p/9781237.html
  权限系统与RBAC模型概述[绝对经典] https://www.cnblogs.com/jpfss/p/11210694.html
  权限分析文档 http://www.blogjava.net/anwenhao/archive/2006/11/21/82535.html?spm=a2c6h.12873639.0.0.1d385621kqY3tK

  RBAC权限管理模型 https://www.xiaoman.cn/detail/150
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值