权限管理

权限管理模型

  • MAC(Mandatory Access Control):强制访问控制

    由系统管理员预先定义一组强制性规则,这些规则决定了用户对资源的访问权限,用户无法更改这些规则。此模型通常使用标签或级别来表示用户和资源的安全属性,并支持多级别的安全控制。 MAC 在军事、政府和情报机构等对安全性要求极高的领域中得到广泛应用

  • DAC(Discretionary Access Control):自主访问控制

    强调资源的所有者对其资源拥有自主权,可以自由决定其他用户对其资源的访问权限。资源的所有者通常是创建该资源的用户
    ACL(Access Control List):访问控制列表 属于DAC的一种,它允许用户根据需要来决定对资源进行何种访问

  • RBAC(Role-Based Access Control):基于角色的访问控制
  • ABAC(Attribute-Based Access Control):基于属性的访问控制

    ABAC 则是通过动态计算一个或一组属性是否满足某种条件来进行授权判断(可以编写简单的逻辑)。
    用户、资源和环境都有各自的属性。这些属性可以包括用户的身份、角色、部门、资源的类型、敏感级别、时间等。
    访问控制策略通过属性的匹配和条件评估来确定是否允许访问。例如,如果用户的角色属性是 "Manager" 且资源的敏感级别属性是 "High",则允许访问。

  • PBAC (Policy-Based Access Control): 根据预定义的策略来控制访问权限。

    策略可以包括多个规则和条件,灵活适应各种访问控制需求。

RBAC

RBAC的基本概念

  • S = Subject = A person or automated agent
  • R = Role = Job function or title which defines an authority level
  • P = Permissions = An approval of a mode of access to a resource
  • SE = Session = A mapping involving S, R and/or P
  • SA = Subject Assignment
  • PA = Permission Assignment
  • RH = Partially ordered Role Hierarchy. RH can also be written: ≥ (The notation: x ≥ y means that x inherits the permissions of y.)

RBAC的三条基本规则

  1. 角色分配: 只有被分配了角色后,主体才可以使用权限
  2. 橘色授权: 一个主体的活跃角色,只能是该主体被分配的角色. 结合规则一,可以确保用户只能使用被分配的角色

活跃角色,是指当前会话中可以使用的角色

  1. 授权: 主体只能使用被分配的角色的权限,并且角色需要是当前的活跃角色. 结合规则一、二, 可以确保用户只能使用被分配的角色的权限

还可以应用其他约束,并且可以在层次结构中组合角色,其中高级角色包含子角色拥有的权限。 还有一个基本的限制性规则,例如,不应该允许同一个人同时创建登录帐户和授权帐户创建。

RBAC的三个版本

  1. core RBAC
    drawing
  2. hierarchical RBAC, which adds support for inheritance between roles
    drawing
  3. constrained RBAC, which adds separation of duties
    • 静态职责分离
      drawing
    • 动态职责分离
      drawing

在hierarchical RBAC的基础上,增加了职责分离(SOD:separation of duties)

  • 静态职责分离:
  • 互斥角色:同一个用户在两个互斥角色中只能选择一个
  • 基数约束:一个用户拥有的角色是有限的,一个角色拥有的许可也是有限的
  • 先决条件约束:用户想要获得高级角色,首先必须拥有低级角色
  • 动态职责分离:
  • 会话和角色之间的约束,可以动态的约束用户拥有的角色,如一个用户可以拥有两个角色,但是运行时只能激活一个角色。

RBAC模型图示

rbac示意图

参考文档

results matching ""

    No results matching ""