权限管理系统设计——入门(一)

news/2024/5/19 16:10:35/文章来源:https://blog.csdn.net/qq_39659876/article/details/128622638

权限管理系统设计——入门(一)
后续更新中…

概念

1、身份认证:用户是否是合法。
2、限制资源访问:根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。
3、用途广:出现在任何后台管理系统中。

基本概念

权限管理主要最核心的功能是认证和授权。

  • 认证功能即登录和拦截功能,登录成功登录态的设定,登录失败的处理方式例如IP锁定,失败超过次数锁定等方式。
  • 授权功能即对认证通过的用户,进行角色和权限授予,同时开启资源保护,未具备访问该资源权限的用户将无法访问。

什么是资源

  • 资源就是用户访问的功能和数据,是一个宽泛概念。
  • 资源可以包括菜单、接口、页面、数据等。

权限设计

权限模型分类

RBAC 权限模型

全称为 Role-Based Access Control,基于角色的访问控制。

  • 对用户、角色、资源三者进行模型化,并建立关联关系。通过该关系,可以控制用户根据自己拥有的角色来访问允许访问的资源

ABAC 权限模型

全称为 Attribute-Based Access Control,基于属性的访问控制。ABAC 访问控制利用了一组称为 “属性 “的特征。

  • 用户属性:包括如用户的姓名、角色、组织、ID 和安全许可等内容。
  • 环境属性:包括如访问时间、数据的位置和当前组织的威胁等级。
  • 资源属性:包括如创建日期、资源所有者、文件名和数据敏感性。

主要是根据业务需求定制不同的访问控制策略。比如“指定财务部门的人员可以在工作日上班时间并且在办公网络访问系统”这一场景,校验的逻辑为:

  • 若属于财务部门的人员使用办公网络但不在办公时间访问则增加进一步的鉴权验证。
  • 若属于财务部门的人员不在办公时间访问且非使用办公网络则拒绝访问。

RBAC 和 ABAC 对比

RBAC 与 ABAC 之间的主要区别在于授予访问权限的方式。 RBAC 按照角色授予访问权限,ABAC 根据用户特征、对象特征、操作类型等属性确定访问权限。

RBAC 优缺点

优点

  • RBAC 模型构建起来更加简单,对于中小型组织,维护角色和授权关系的工作量不大。

缺点

  • 对于大型组织,基于 RBCA 的控制模型需要维护大量的角色和授权关系,且无法做到对资源细粒度地授权。
ABAC 优缺点

优点

  • 对于大型组织,相比 RBAC 而言,ABAC 更加灵活。
  • 新增资源时,ABAC 仅需要维护较少的资源,ABAC 可扩展性更强、更方便。
  • ABAC 有更加细粒度控制和根据上下文动态执行,RBAC 只能基于静态的参数进行判断。

缺点

  • 模型构建相对比较复杂。

RBAC权限模型

基本的设计模型

用户、角色、资源关联,这种模型是最基本的模型,复杂的模型都是由此拓展而来。
在这里插入图片描述

带分组的设计模型

如果角色和资源过多,分配权限比较麻烦,可以将用户分组、角色分组,与权限进行关联。当分配的时候可以将用户、角色、组、权限进行关联。
在这里插入图片描述

带组织架构的设计模型在这里插入图片描述

基于组织架构绑定用户与角色的关系,角色与资源的关系,从而实现用户对资源访问的限制。

  • 围绕组织架构,创建角色与用户,并形成用户与角色的绑定关系。
  • 定义资源的管理层级,以及相应的操作类型,并形成页面到数据的链路。
  • 基于角色主体,绑定对应资源和可操作类型,构建角色的权限集合。

参考

  • http://www.hyhblog.cn/2018/04/25/user_login_auth_terms/
  • https://my.oschina.net/bochs/blog/2248956
  • https://juejin.cn/post/6844904096613285901#heading-16
  • https://juejin.cn/post/7038380197426511908
  • https://juejin.cn/post/6850037267554287629
  • http://www.hyhblog.cn/2018/04/25/user_login_auth_terms/
  • https://juejin.cn/post/6844903841431814158
  • https://juejin.cn/post/6844903810603696141

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

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

相关文章

MySQL中varchar(M)存储字符串过长

最近写项目&#xff0c;数据库报了一个错&#xff0c;错误原因是MySQL中存储的字符串过长最近在学MySQL的基础&#xff0c;刚好学到了关于varchar类型要存储的字符串是 “<p>12121212121212</p>\n<p><img src\"https://zzjzzjzzjbucket.oss-cn-hangz…

【markdown】markdown语法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

【iobit 软件】家族系列 - 正版激活码

装机必备iobit系列软件 - 激活码获取看最后 第一款、Advanced SystemCare 16 您需要的人工智能驱动的PC优化器&#xff0c;以释放磁盘空间&#xff0c;加速PC并保护在线隐私。 功能特点&#xff1a; 1. 系统清理与优化&#xff1a;通过清除系统垃圾文件、注册表信息、无用文…

【halcon】模板匹配参数之金字塔级数

背景 今天&#xff0c;在使用模板匹配的时候&#xff0c;突然程序卡死&#xff0c;CPU直接飙到100%。最后排查发现是模板匹配其中一个参数 NumLevels 导致的&#xff1a; NumLevels: The number of pyramid levels used during the search is determined with numLevels. If n…

appium的安装详解

安装appium 爬虫手机APP需要实现自动化&#xff0c;所以要使用appnium来实现点击&#xff0c;输入&#xff0c;滑动等操作。由于appnium的安装较为繁琐&#xff0c;所以特意整理一篇文章来展示安装的详细过程过程中。 安装appnium共有3个步骤 安装 Android SDK安装 JDK安装 …

总结篇 字符串设备(一)

简介 1、字符设备是Linux驱动中最基本的一类设备驱动&#xff0c;字符设备就是一个个字节&#xff0c;按照字节流进行读写操作的设备。&#xff08;例&#xff1a;按键&#xff0c;电池等&#xff0c;IIC,SPI&#xff0c;LCD&#xff09;。这些设备的驱动就叫字符设备驱动。 在…

【蓝桥杯嵌入式】拓展板之数码管显示

文章目录硬件电路连接方式函数实现文章福利硬件电路 通过上述原理图&#xff0c;可知拓展板上的数码管是一个共阴数码管&#xff0c;也就是说某段数码管接上高电平时&#xff0c;就会点亮。   上述原理图还给出一个提示&#xff0c;即&#xff1a;三个数码管分别与三个74HC59…

【JAVA程序设计】【C00110】基于SSM(非maven)的车辆维修管理系统

基于SSM&#xff08;非maven&#xff09;的车辆维修管理系统项目简介项目获取开发环境项目技术运行截图项目简介 基于ssm框架非maven开发的车辆维修管理系统共分为三个角色&#xff1a;管理员、用户 管理员角色包含以下功能&#xff1a; 查看用户、添加用户、查看车辆信息、故…

MyBatisPlus 批量添加

文章目录现状优化效果现状 一般来说&#xff0c;批量插入可以使用 MyBatisPlus 中 ServiceImpl 自带的方法 saveBatch 打开 sql 日志&#xff0c;application.yml 添加配置&#xff0c;mapper-locations 配置 mapper 路径 mybatis-plus:configuration:log-impl: org.apache.i…

windows安装tomcat

这里写自定义目录标题tomcat官网下载安装包并解压环境变量配置启动tomcat访问http://localhost:8080/修复启动出现乱码问题tomcat官网下载安装包并解压 环境变量配置 系统环境变量新增&#xff1a; 变量名&#xff1a;CATALINA_HOME 变量值&#xff1a;tomcat的安装目录 编辑…

三八节买什么数码好物?三八女神节实用不吃灰的数码好物推荐

三八节快到了&#xff0c;在这个小节日里&#xff0c;有哪些实用性强的数码好物值得入手呢&#xff1f;针对这个问题&#xff0c;我来给大家推荐几款实用性超强的数码好物&#xff0c;一起来看看吧。 一、蓝牙耳机 推荐产品&#xff1a;南卡小音舱 参考价&#xff1a;239 南…

【强化学习】强化学习数学基础:蒙特卡洛方法

强化学习数学方法&#xff1a;蒙特卡洛方法举个例子举个例子1&#xff1a;投掷硬币The simplest MC-based RL algorithm举个例子2&#xff1a;Episode lengthUse data more efficientlyMC without exploring starts总结内容来源将value iteration和policy iteration方法称为mod…

LiveGBS国标GB/T28181国标视频流媒体平台-功能报警订阅配置报警预案告警截图及录像

LiveGBS国标GB/T28181国标视频流媒体平台-功能报警订阅配置报警预案告警截图及录像1、报警信息1.1、报警查询1.2、配置开启报警订阅1.2.1、国标设备编辑1.2.2、选择开启报警订阅1.3、配置摄像头报警1.3.1、配置摄像头报警通道ID1.3.2、配置摄像头开启侦测1.3.3、尝试触发摄像头…

《QDebug 2023年2月》

一、Qt Widgets 问题交流 二、Qt Quick 问题交流 三、其他 1.使用 QDir::toNativeSeparators() 转换路径中的 "/" 分割符为 "\" 在网上抄代码的时候&#xff0c;总会遇到这样的代码&#xff1a; file_path.replace("/", "\\"); …

图论初入门

目录 一、前言 二、图的概念 三、例题及相关概念 1、全球变暖&#xff08;2018年省赛&#xff0c;lanqiao0J题号178&#xff09; 2、欧拉路径 3、小例题 4、例题&#xff08;洛谷P7771&#xff09; 一、前言 本文主要讲了树与图的基本概念&#xff0c;图的存储、DFS遍历…

FPGA纯verilog实现图像视频旋转 串口指令控制旋转角度 提供工程源码和技术支持

目录1、前言2、理论基础3、设计思路和框架图像输入和采集图像旋转处理图像缓存图像输出4、vivado工程详解5、上板调试验证6、福利&#xff1a;工程代码的获取1、前言 图像旋转是一种常用的图像处理技术&#xff0c;其基本原理就是指图像以某一点为中心旋转一定的角度&#xff…

彻底搞清楚内存泄漏的原因,如何避免内存泄漏,如何定位内存泄漏

作为C/C开发人员&#xff0c;内存泄漏是最容易遇到的问题之一&#xff0c;这是由C/C语言的特性引起的。C/C语言与其他语言不同&#xff0c;需要开发者去申请和释放内存&#xff0c;即需要开发者去管理内存&#xff0c;如果内存使用不当&#xff0c;就容易造成段错误(segment fa…

IO详解(文件,流对象,一些练习)

目录 文件 文件概念 文件的路径 路径有俩种表示风格 文件类型 如何区分文本文件还是二进制文件? java对文件的操作 File类中的一些方法 流对象 流对象的简单概念 java标准库的流对象 1.字节流,(操作二进制数据的) 2.字符流 (操作文本数据的) 流对象最核心的四个…

springboot工程搭建的几种方式

一、通过idea工具搭建&#xff0c;如下&#xff1a; 新建Project和Module&#xff0c;选择Spring initializr&#xff0c;点击Next&#xff0c;进入到如下页面填写 填写完后点击Next 到如下页面&#xff0c;根据你的具体所需&#xff0c;选择要使用的技术依赖 点击Next 点击FIn…

学习机器学习应该看哪些书籍?

机器学习是一种人工智能技术&#xff0c;它通过利用计算机算法和数学模型&#xff0c;使计算机系统能够自动从数据中学习&#xff0c;从而不断改进其性能。它是一种数据驱动的方法&#xff0c;可以让计算机从经验中学习&#xff0c;而无需明确地编程。具体来说&#xff0c;机器…