注:每天进步一点点,记录每日成长,思考的第03/365天 ;
本文预计阅读时间: 4分钟

一、常见权限模型:

类型 | 描述 |
---|---|
ACL | 访问控制表 |
RBAC | 基于角色的权限控制 |
ABAC | 基于属性的权限控制 |
PBAC | 基于策略的权限控制 |
ACL:用户 —> 权限,直接规定资源可以被哪些主体进行访问操作。权限是围绕资源来设定的。
RBAC:用户 —> 角色 —> 权限,规定角色可以对哪些资源进行访问,最后再给用户主体分配角色。
ABAC:根据用户特征,对象特征,操作类型等属性确定访问权限。即哪些属性的主体可以对哪些属性的资源在哪些属性的情况下进行哪些操作。
PBAC:PBAC是一种将角色和属性与逻辑结合以创建灵活的动态控制策略的方法。

二、RBAC模型 (最常用的权限控制模型)

RBAC(Role-Based Access Control)模型,基本理念是将【角色】这个概念赋予用户,把用户和系统权限通过角色关联,这样配置灵活。
根据RBAC模型的权限设计思想,建立权限管理系统的核心对象模型。其中包含的基本元素主要有:用户(Users)、用户组(Group)、角色 (Role)、目标(Objects)、访问模式(Access Mode)、操作(Operator)。主要的关系有:分配角色权限PA(Permission Assignment)、分配用户角色UA(Users Assignmen)
RBAC模型又可以分为:RBAC0、RBAC1、RBAC2、RBAC3 四种。其中RBAC0是基础,也是最简单的,相当于底层逻辑,RBAC1、RBAC2、RBAC3都是以RBAC0为基础的升级。
RBAC0模型:
RBAC0 由用户(User),角色(Role),会话(Session),许可(Pemission)四部分组成,其中许可又包括 “操作” 和 “控制对象”。
RBAC1模型:
基于RBAC0模型,引入角色间的继承关系,即角色有了上下级的关系。
RBAC2模型:
是RBAC的约束模型,RBAC2在RBAC0基础上加入了约束的概念,主要引入了静态职责分离SSD(Static Separation of Duty)和动态职责分离DSD(Dynamic Separation of Duty)。
a、互斥角色:同一个用户在两个互斥角色中只能选择一个
b、基数约束:一个用户拥有的角色是有限的,一个角色拥有的许可也是有限的
c、先决条件约束:用户想要获得高级角色,首先必须拥有低级角色
d、运行时约束:允许一个用户具有两个角色的成员资格,但在运行中不可同时激活这两个角色。(动态职责分离DSD)
RBAC3模型:
RBAC3,它是RBAC1与RBAC2合集,所以RBAC3是既有角色分层又有约束的一种模型
优点:
1)简化了用户和权限的关系,构建起来更为简单;
2)易于扩展、易于维护;
3)分发和回收权限方便。