RBAC 权限模型


RBAC 权限模型

RBAC 模型(Role Based Access Control)基于角色的权限访问控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限。如下图

RBAC 支持公认的安全原则:最小特权原则、责任分离原则和数据抽象原则。 在 RBAC 之中,包含用户 users(USERS)角色 roles(ROLES)目标 objects(OBS)操作 operations(OPS)、**许可权 permissions(PRMS)**五个基本数据元素,此模型指明用户、角色、访问权限和会话之间的关系。

RBAC 又可以分为 RBAC0,RBAC1,RBAC2,RBAC3

  • RBAC0 基础模型:是 RBAC 的核心思想。
  • RBAC1 角色分层模型:是把 RBAC 的角色分层模型。
  • RBAC2 角色限制模型:增加了 RBAC 的约束模型。
  • RBAC3:其实是 RBAC2 + RBAC1 角色限制模型 + 角色分层模型 RBAC0【基础模型】是 RBAC 的核心,主要有四部分组成
  1. 用户(User)
  2. 角色(Role)
  3. 许可(Permission)
  4. 会话(Session)

RBAC1【角色分层模型】,基于 RBAC0 模型,引入角色间的继承关系,即角色上有了上下级的区别,角色间的继承关系可分为一般继承关系和受限继承关系 RBAC2【角色限制模型】,基于 RBAC0 模型的基础上,添加了责任分离关系,主要引入了 SSD(静态职责分离)和 DSD(动态职责分离)

  • 静态职责分离(Static SD)指定角色的互斥关系,用于用户指派阶段,避免同一用户拥有互斥的角色
  • 动态职责分离( Dynamic SD ):指定角色的互斥关系,用于角色激活阶段

SDD 主要应用在用户和角色之间(授权阶段),主要约束: 特点:

  1. 互斥角色,同一个用户不能授权互斥关系角色,如不能同时授权会计和出纳角色
  2. 基数约束,一个用户拥有角色是有限的,一个角色拥有的许可是有限的
  3. 先决条件约束,用户想得到高级权力,必须现拥有低级权力

DSD 会话和角色之间的约束,只要动态决定怎么计划角色,如:一个用户拥有 5 个角色,只激活 1 个 RBAC3【统一模型】,也就是最全面级的权限管理,它是基于 RBAC0 的基础上,将 RBAC1 和 RBAC2 进行整合了,最前面,也最复杂的:RBAC3=RBAC1+RBAC2(统一模型=角色分层模型+角色限制模型) RBAC 的扩展,即用户组 为了更好地管理用户,对用户进行分组归类,简称为用户分组。组也具有上下级关系,可以形成树状视图,用户组可以是组织架构中的实体单位。同时也可以是虚拟的,由用户自己添加、配置的一个角色的集合。角色又是权限的集合。 系统授权方式有两种:

  1. 正向授权(可访问资源)
  2. 负向授权(不可访问资源)

权限分类:

  1. 菜单权限
  2. 功能权限
  3. 行级权限
  4. 列级权限
  5. 组织机构/部门级数据权限
  6. 范围型业务数据权限