常用的权限模型介绍

概述

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

常用的权限模型

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/819661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【自由看门狗配置及计算】

一、看门狗使用场景 看门狗是一个硬件计时电路,用来监测由软件故障导致的系统故障。 片上有两个看门狗定时器外设,自由看门狗定时器(FWDGT也叫独立看门狗)和窗口看门狗定时器(WWDGT)。 当嵌入式程序在运…

conda 创建、激活、退出、删除虚拟环境

一、conda 本地环境常用操作 #获取版本号 conda --version 或 conda -V #检查更新当前conda conda update conda #查看当前存在哪些虚拟环境 conda env list 或 conda info -e #查看--安装--更新--删除包 conda list: conda search package_name# 查询包 cond…

Centos 更换yum国内源的命令 -- yum更新速度太慢问题

【Linux】yum | 更新为国内源 | 删除源 | 删除repo | CentOS7_linux如何删除repo文件-CSDN博客

Linux程序调试优化(1)——内存占用详解及优化思路

文章目录 1.free查看总体的内存占用2./proc/$PID/status 查看某进程状态 linux开发最重要的两个参数,分别是内存以及CPU使用率,若内存出现严重不足,则在需要使用内存时,可能出现申请不到的情况,导致 OOM,L…

不出天府锋巢直播产业基地,即可激活电商直播产业、产教融合及人才培训服务

天府锋巢直播产业基地打造直播产业产教融合及人才培训服务新模式,携手政府、企业、高校,促进直播产业与创新人才双向奔赴,推进教学与实战深度融合,推动实习与就业无缝衔接。 各方资讯一应俱全 直播产业产教融合及人才培训服务全套…

ArrayList扩容

在Java中,ArrayList是一个动态数组,它允许在运行时改变其大小。当向ArrayList添加元素并且当前数组容量不足以容纳新元素时,ArrayList会自动扩容。 扩容原理 初始容量:当创建一个新的ArrayList时,可以指定一个初始容量…

DFS专题:力扣岛屿问题(持续更新)

DFS专题:力扣岛屿问题 开篇 每次做到DFS相关的题目都是直接跳过。蓝桥杯过后痛定思痛,好好学习一下DFS和BFS。先从DFS开始吧。 参考题解:nettee:岛屿类问题的通用解法、DFS 遍历框架 一、岛屿数量 题目链接: 200.岛屿数量 题…

x86_64/amd64和arm64区别

1.概况 x86_64(也称为AMD64或x64)和ARM64是两种不同的处理器架构,它们在设计理念、应用场景和性能特点上有所区别。 2.设计理念 x86_64架构起源于Intel的x86架构,它是对原始32位x86架构的扩展,增加了对64位计算的支…

Vue3学习05 一些API

Vue3-API 其它 API【shallowRef 与 shallowReactive 】shallowRefshallowReactive总结 【readonly 与 shallowReadonly】readonlyshallowReadonly 【toRaw 与 markRaw】toRawmarkRaw 【customRef】 Vue3新组件【Teleport】【Suspense】【全局API转移到应用对象】【其他】 其它 …

webuploader后端开发要点

百度fex团队的webuploader是一个很方便的web页面文件上传轮子,可以很方便地集成到前端html和js里,当然了,后端需要咱们自己开发实现。比较遗憾的是webuploader现在已经从百度的fex主页移除了,该项目可能已经不再维护了。 关于后端…

java小作业(9)----用函数实现斐波那契数列(第二遍)

代码&#xff1a; public class Main {public static void main(String[] args) {int n 20; // 你可以更改这个值来计算和输出前n个斐波那契数for (int i 0; i < n; i) {System.out.print(fibonacci(i) " ");}}public static int fibonacci(int n) {if (n <…

BackTrader 中文文档(一)

原文&#xff1a;www.backtrader.com/ 主页 欢迎来到 backtrader&#xff01; 原文&#xff1a;www.backtrader.com/ 一个功能丰富的 Python 框架&#xff0c;用于回测和交易 backtrader允许您专注于编写可重复使用的交易策略、指标和分析器&#xff0c;而不必花时间构建基础…

Android T多屏多显——应用双屏间拖拽移动功能(更新中)

功能以及显示效果简介 需求&#xff1a;在双屏显示中&#xff0c;把启动的应用从其中一个屏幕中移动到另一个屏幕中。 操作&#xff1a;通过双指按压应用使其移动&#xff0c;如果移动的距离过小&#xff0c;我们就不移动到另一屏幕&#xff0c;否则移动到另一屏。 功能分析…

振弦式渗压计的安装与防护:在水工建筑物中的关键应用

振弦式渗压计&#xff0c;作为一种高效的孔隙水压力或液体液位测量工具&#xff0c;广泛应用于水工建筑物、基岩内、测压管、钻孔、堤坝、管道和压力容器内。其安装和防护工作至关重要&#xff0c;直接关系到测量数据的准确性和仪器的使用寿命。本文将重点探讨振弦式渗压计在填…

RabbitMQ实战教程(1)

RabbitMQ 一、RabbitMQ介绍 1.1 现存问题 服务调用&#xff1a;两个服务调用时&#xff0c;我们可以通过传统的HTTP方式&#xff0c;让服务A直接去调用服务B的接口&#xff0c;但是这种方式是同步的方式&#xff0c;虽然可以采用SpringBoot提供的Async注解实现异步调用&…

Ue不消耗輸入

1、介紹 我們都知道ue裏面使用輸入時&#xff0c;都是在PlayerController裏面進行獲取&#xff0c; 使用官方的操作映射&#xff0c;軸映射&#xff0c;以及目前最新的增强型輸入 但是我們發現了一個問題 那就是輸入會被消耗 就是儅我鼠標按在一個按鈕上時 你另一個地方接受…

Elastic安装后 postman对elasticsearch进行测试

一、创建索引和mapping //id 字段自增id //good_sn 商品SKU //good_name 商品名称 //good_introduction 商品简介 //good_descript 商品详情 PUT http://IP:9200/shop { "mappings":{ "good":{ "properties":{ …

Qt显示对话框程序崩溃

问题描述 创建一个继承自QDialog的对话框DialogA&#xff0c;在主窗体显示之前进行显示&#xff0c;当执行DialogA的exec函数时&#xff0c;程序崩溃&#xff0c;提示&#xff1a;Critical error detected c0000374 问题排查 查看DialogA类中的内存创建是否存在异常&#xff0c…

UDF小白入门

UDF小白入门 创建一个函数(普通的Python函数)将成绩转换到考察等级 在PySpark中&#xff0c;使用UDF涉及有三个步骤&#xff1a; 前置&#xff1a;先创建一个spark dataframe from pyspark.sql import SparkSession from pyspark.sql.functions import *spark SparkSession.bu…

LabVIEW光学探测器板级检测系统

LabVIEW光学探测器板级检测系统 特种车辆乘员舱的灭火抑爆系统广泛采用光学探测技术来探测火情。光学探测器作为系统的关键部件&#xff0c;其探测灵敏度、响应速度和准确性直接关系到整个系统的运行效率和安全性。然而&#xff0c;光学探测器在长期使用过程中可能会因为灰尘污…