RBAC理念

RBAC理念
最新回答
纯家小可爱

2021-11-06 10:38:09

RBAC(基于角色的权限访问控制)是一种通过角色关联权限、用户通过角色获得权限的访问控制理念,支持最小权限、责任分离和数据抽象原则,包含RBAC0、RBAC1、RBAC2、RBAC3四种模型。以下是详细介绍:

RBAC核心理念
  • 权限与角色关联:在RBAC中,权限不直接分配给用户,而是与角色相关联。用户通过成为适当角色的成员,间接获得这些角色所拥有的权限。例如,在一个企业系统中,“财务人员”角色拥有查看财务报表、进行财务操作等权限,当用户被分配到“财务人员”角色时,就自动获得了这些权限。
  • 简化权限管理:极大地简化了权限管理过程。在一个组织中,角色是为了完成各种工作而创建的,用户依据其责任和资格被指派相应的角色。当组织结构或业务需求发生变化时,只需调整角色的权限或用户的角色分配,而无需对每个用户的权限进行逐一修改。例如,当企业新增一项财务业务时,只需为“财务人员”角色添加相应的权限,所有属于该角色的用户都能自动获得新权限。
  • 角色灵活性:角色可以根据新的需求和系统的合并赋予新的权限,权限也可根据需要从角色中回收。例如,企业进行业务拓展,需要“财务人员”角色具备新的税务申报权限,只需将该权限添加到“财务人员”角色中即可;若某项权限不再需要,也可从角色中移除。角色与角色之间的关系也可以建立起来,以囊括更广泛的客观情况。
RBAC支持的安全原则
  • 最小权限原则:RBAC可以将角色配置成完成任务所需要的最小权限集。例如,一个只负责数据录入的角色,只需被赋予数据录入相关的权限,而不应拥有删除或修改重要数据的权限,从而确保用户只能访问其工作所需的资源,降低安全风险。
  • 责任分离原则:通过调用相互独立互斥的角色来共同完成敏感的任务。比如,要求一个计帐员和财务管理员共同参与同一过帐操作,这样可以避免单个用户拥有过多的权限,防止权力滥用和欺诈行为。
  • 数据抽象原则:通过权限的抽象来体现。例如,财务操作用借款、存款等抽象权限,而不用操作系统提供的典型的读、写、执行权限。这种抽象使得权限管理更加符合业务需求,提高了系统的安全性和可管理性。
RBAC模型中的关键要素
  • 访问权限三元组:在RBAC模型中,Who、What、How构成了访问权限三元组,即“Who对What(Which)进行How的操作”。

    Who:权限的拥用者或主体,如Principal、User、Group、Role、Actor等。

    What:权限针对的对象或资源,如Resource、Class。

    How:具体的权限,包括正向授权与负向授权,通过操作(Operator)表明对What的How操作,也就是Privilege + Resource。

  • 角色(Role):一定数量的权限的集合,是权限分配的单位与载体,目的是隔离User与Privilege的逻辑关系。
  • 用户组(Group):权限分配的单位与载体。权限可以不考虑分配给特定的用户,而是分配给组。组可以包括组(以实现权限的继承),也可以包含用户,组内用户继承组的权限。User与Group是多对多的关系,Group可以层次化,以满足不同层级权限控制的要求。
RBAC的四种模型
  • 基本模型RBAC0

    定义:由用户集合(U)、角色集合(R)、许可权集合(P)、会话集合(S)以及许可权与角色之间多对多的指派关系(PA P×R)、用户与角色之间多对多的指派关系(UA U×R)确定。用户通过会话映射到单个用户,角色通过会话映射到角色子集,会话拥有相应角色的许可权。

    要求:每个许可权和每个用户至少应该被分配给一个角色。两个角色被分配的许可权完全一样是可能的,但仍是两个完全独立的角色,用户也有类似情况。角色可以看作是一种语义结构,是访问控制策略形式化的基础。

    权限处理:把许可权处理为非解释符号,其精确含义只能由实现确定且与系统有关。许可权只能应用于数据和资源类客体,但不能应用于模型本身的组件。修改集合U、R、P和关系PA和UA的权限称为管理权限,假定只有安全管理员才能修改这些组件。

    会话管理:会话由单个用户控制,用户可以创建会话,并有选择地激活用户角色的某些子集。在一个会话中的角色的激活由用户决断,会话的终止也由用户初始化。RBAC0不允许由一个会话去创建另一个会话,会话只能由用户创建。

  • 角色分级模型RBAC1

    定义:在RBAC0的基础上,引入了角色等级或角色支配关系(RH R×R,可用≥符号表示)。用户通过会话映射到单个用户,角色通过会话映射到角色子集,该子集受角色等级关系的影响,会话拥有相应角色的许可权也受角色等级关系制约。

    特点:实现了角色的分层管理,高级角色可以继承低级角色的权限,使得权限分配更加符合组织的层次结构。例如,在一个企业中,“部门经理”角色可以继承“普通员工”角色的部分权限,同时拥有自己特有的管理权限。

  • 限制模型RBAC2

    定义:在RBAC0模型基础上增加限制因素形成,与RBAC1并不兼容。限制可以施加到RBAC0模型中的所有关系和组件上,用于确定各个组件的值是否可接受。

    常见限制类型

    互斥角色限制:各自权限可以互相制约的两个角色,一个用户在某一次活动中只能被分配其中的一个角色。例如,在审计活动中,一个用户不能同时被指派给会计角色和审计员角色。

    角色基数限制:限制一个角色的最大成员数。例如,一个单位的最高领导只能为1人,中层干部的数量也是有限的。

    先决角色限制:在为用户指派某个角色A时,要求该用户必须是角色B的一个成员,B角色成为角色A的先决角色。例如,一个数学副教授应该从数学讲师中提拔,讲师是任副教授的先决角色。

    会话限制:可以允许一个用户被指派给两个角色,但不允许在同一时间内把该用户在两个角色中都激活;还可以限制一个用户在同一时间内可以激活的会话的数量,以及对该用户所激活的会话中所分配许可权的数量。

  • 统一模型RBAC3

    定义:把RBAC1和RBAC2组合在一起,提供角色的分级和继承的能力。

    新问题:限制也可以应用于角色等级本身,可能会影响偏序关系。例如,附加的限制可能会限制一个给定角色的应有的下级角色的数量;两个或多个角色可能被限制成没有公共的上级角色或下级角色;在限制和角色的等级之间会产生敏感的相互影响。

RBAC模型图示