常用的权限模型介绍

概述

权限模型是一种用于定义和管理系统资源访问权限的规则集合。它规定了谁可以访问系统资源,以及在何种条件下可以访问。

常用的权限模型

DAC(Discretionary Access Control):自主访问控制,是基于用户身份或组织属性进行访问控制的一种模型。相对灵活但缺乏对访问控制的统一管理。

MAC(Mandatory Access Control):强制访问控制,是基于系统级策略的访问控制模型,适用于需高度安全保护、严格审计和监管的场景。相对严格但实现复杂。

RBAC(Role-Based Access Control):基于角色的访问控制,是基于角色分配权限的一种模型,注重系统资源使用者间的关系和角色结构设计,通常用于较大规模的企业应用系统中。

ABAC(Attribute-Based Access Control):基于属性的访问控制,是根据条件来控制资源访问的模型,其中属性可以是用户属性、环境属性或资源属性等,适用于精细化权限管理的场景。

DAC

DAC (Discretionary Access Control) 是一种基于主体和对象之间的关系进行访问控制的模型。在 DAC 模型中,每个对象(比如文件或资源)都有一个所有者,所有权决定了谁可以访问该对象以及访问级别。每个主体(比如用户或进程)在访问对象时需要获得该对象的所有者授予的权限。

DAC 模型的实现通常涉及以下步骤:

对象创建:当创建一个对象时,需要指定它的所有者。
访问请求:当主体想要访问某个对象时,它会向对象的所有者发出访问请求。
访问授予:所有者再根据配置文件或其他规则来确定是否授权访问,并授予相应的权限。
访问执行:一旦获得了访问授权,主体就可以执行相应的操作,只能执行其被授权的操作。
由于 DAC 模型是由对象的所有者确定权限,因此 DAC 较为灵活和易于管理,但也很难维护对象间的精细访问控制。

MAC

MAC (Mandatory Access Control) 是一种安全机制,是一种基于系统强制规则的访问控制模型。相对于DAC(自主访问控制),它并不依赖于对象所有者对访问进行授权,而是由系统管理员在一个中央策略文件中配置规则,这些规则会被系统应用于整个系统。

MAC 模型的实现通常涉及以下步骤:

  1. 安全标签创建:每个对象和主体都被分配一个安全标签,这个安全标签用来描述对象或主体的属性,比如拥有哪些权限等。
  2. 策略文件指定:系统管理员需要制定一个策略文件来定义允许哪些主体访问哪些对象,并指定对这些对象的操作权限。
  3. 访问请求:当主体试图访问一个对象时,系统将检查该主体的安全标签和该对象的安全标签是否匹配,并根据策略文件来判断该主体是否被授权执行该操作。
  4. 访问执行:如果主体获得了访问授权,它就可以执行操作,否则系统会拒绝此次访问。

MAC 的优点在于它提供了一种高度可控且灵活的访问控制机制,能够保护所有对象和主体免受未经授权的访问和攻击。但缺点是较为复杂,需要系统管理员具备相应的技术知识和管理能力。

RBAC

RBAC(Role-Based Access Control)是一种基于角色的访问控制模型。它通过在系统中定义角色来控制用户对资源的访问权限。

实现 RBAC 通常需要以下步骤:

  1. 确定角色和权限:根据业务需求,确定需要哪些角色以及这些角色应该拥有哪些权限。

  2. 分配角色:将角色分配给用户或用户组,在系统中建立角色和用户(组)之间的关系。

  3. 授权访问:当一个用户被分配了一个角色后,系统需要检查该用户是否有权访问所请求的资源。如果用户有权限,则允许访问,否则拒绝访问。

  4. 管理角色和权限:需要管理和维护角色、权限和用户之间的关系。例如,添加或删除角色、更改角色的权限等。

  5. 审计日志:记录所有的安全事件和审计日志,以便追溯和故障排查。

简单说,就是通过角色去管理用户的权限。所有的权限是配置在角色上的。再给用户配置不同的角色,这样用户就可以继承配置的权限了。

ABAC

ABAC(Attribute-Based Access Control)是一种基于属性的访问控制模型,它允许系统管理员使用更加精细和灵活的方式来定义访问策略。相比于 RBAC,ABAC 可以引入更多的信息,如时间、地点、设备等属性,以决定一个用户是否有权访问某个资源。

实现 ABAC 通常需要以下步骤:

定义属性:根据业务需求,定义一组属性,这些属性可以描述用户、资源或者上下文信息。例如,身份证号、工作职责、批准级别等。

赋值属性:为每个实体(包括用户、资源和上下文)分配对应的属性值。例如,给用户 A 分配身份证号码为 123456 的属性值。

创建策略规则:根据业务需求,定义一组策略规则,这些规则会使用上述属性来判断用户是否有权访问资源。例如,如果用户的身份证号码等于某个特定值并且用户的职责是经理,则允许访问某个资源。

审计日志:记录所有的安全事件和审计日志,以便追溯和故障排查。

总结各自的常用场景

DAC:
DAC 是最常见的一种访问控制模型,它将对象的访问控制权限交给对象所有者。因此,这种模型在许多小型组织或个人设备上被广泛使用。例如,个人电脑、智能手机等。

MAC:
MAC 通常适用于需要高度严格控制资源和数据安全的系统。这种模型通常被用于军事、政府和金融领域的操作系统。另外,由于应用程序对于敏感数据的保护需求越来越高,所以 MAC 的应用也越来越广泛。

RBAC:
RBAC 最常用于需要管理大量用户和复杂的权限分配的系统环境,比如企业内部的 HR 系统、医院信息系统等。通过角色的概念,RBAC 可以有效地简化权限管理过程,减少管理负担。并且 RBAC 可以为不同公司部门中的员工提供定制策略,确保他们只获得实现其职能所必需的权限。

ABAC:
ABAC 可以根据诸如用户 ID、角色、时间、网络位置、设备类型和其他上下文元素等属性来进行访问控制。这种模型通常被用于高度动态、基于风险的环境中,例如云原生应用程序、物联网系统、大数据平台。

  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值