RBAC权限管理设计
RBAC权限管理设计
- 一、RBAC组成
- 1. RBAC
- 2. RBAC组成
- 3. RBAC支持的安全原则
- 4. RBAC的优缺点
- 二、RBAC权限分配
- 1. RBAC的功能模块
- 2. RBAC权限分配操作过程:
- 3. 后端如何判断用户权限
一、RBAC组成
1. RBAC
RBAC:基于角色的权限访问控制(Role-Based Access Control)
2. RBAC组成
3个基础组成部分,分别是:用户、角色和权限。
RBAC通过定义角色的权限,并对用户授予某个角色从而来控制用户的权限,实现了用户和权限的逻辑分离,极大地方便了权限的管理。
RBAC至少需要三张表:用户表–角色表–权限表(多对多的关系比较合理)
用户表:用来存储用户名和密码,进行登录校验
角色表:对用户角色进行分配,
权限表:存储所有需要进行权限分配的url请求路径
关系:
3. RBAC支持的安全原则
RBAC支持三个著名的安全原则:最小权限原则、责任分离原则和数据抽象原则
- 最小权限原则:RBAC可以将角色配置成其完成任务所需的最小权限集合
- 责任分离原则:可以通过调用相互独立互斥的角色来共同完成敏感的任务,例如要求一个计账员和财务管理员共同参与统一过账操作
- 数据抽象原则:可以通过权限的抽象来体现,例如财务操作用借款、存款等抽象权限,而不是使用典型的读、写、执行权限
4. RBAC的优缺点
(1)优点:
- 简化了用户和权限的关系
- 易扩展、易维护
(2)缺点:
- RBAC模型没有提供操作顺序的控制机制,这一缺陷使得RBAC模型很难适应哪些对操作次序有严格要求的系统
二、RBAC权限分配
1. RBAC的功能模块
一般在登录系统认证通过后,会先确定该用户的操作权限,判断用户的后续操作是否合法!
- 所有权限的本质是对数据库中表中数据增删改查的操作
- 而这些增删改查的操作是通过前端不同路由,通过get、post、put、delete方法操作数据库的
- 对权限的控制,最简单的方法就是判断当前用户是否可以对指定路由请求操作的权限
- 把角色和这个角色能够访问的 url 和 请求方式进行关联(因为正是的业务逻辑用户权限划分力度可能非常细致)
- 再简单的业务逻辑中一张表就是权限表
2. RBAC权限分配操作过程:
用户登录,通过用户表校验用户名和密码
登录成功,记录用户登录状态,同时查询(通过用户关联的权限表)记录当前用户的权限
访问认证,对每个url的请求事先进行登录状态和权限的验证(可以放在中间件的process_request中,注意设置相应的放行白名单)
3. 后端如何判断用户权限
- 用户发送求方法的url
- 后端首先查询是哪一个用户,然后查询当前用户的角色
- 最后判断这个角色是否可以访问url中的对应方法即可
- 如果这个角色有权限访问这个url就返回数据,不能访问就返回 401状态码
RBAC权限管理设计相关推荐
- RBAC权限管理设计思想
RBAC权限管理设计 一.概述 二.权限模型 三.RBAC模型 什么是RBAC模型 基本模型RBAC0 角色分层模型RBAC1 角色限制模型RBAC2 统一模型RBAC3 基于RBAC的延展--用户组 ...
- 大型门户网站的RBAC用户权限管理设计
这是我在网上找的一些设计比较好的RBAC权限管理 不知道,像新浪.搜狐.网易.百度.阿里巴巴.淘宝网的RBAC用户权限这一块,都是这种细颗粒的RBAC设计开发,还是把他们像用户组.角色组.权限组.操作 ...
- 系统权限管理设计 (转:http://blog.csdn.net/chexlong/article/details/37697555)
权限设计(转:http://blog.csdn.net/chexlong/article/details/37697555) 1. 前言: 权限管理往往是一个极其复杂的问题,但也可 ...
- 系统权限管理设计 (转)
权限设计(初稿) 1. 前言: 权限管理往往是一个极其复杂的问题,但也可简单表述为这样的逻辑表达式:判断"Who对What(Which)进行How的操作"的逻辑 ...
- nest-mysql:RBAC权限管理
文章问题导向 RBAC权限管理是什么?如何设计数据库?如何实现? 如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案 阅前必知 阅读此文,需要有一定的数据库知识 此文并非最佳实践,只能 ...
- Java Web RBAC权限管理
前言 权限管理是在项目中经常要使用到的模块,有着极其重要的功能.比较出名的权限框架,分别为 Shiro 和 Spring Security,两者各有优缺,这次我们不用任何权限框架来实现 RBAC 权限 ...
- Vue3 实现 RBAC 权限管理
Vue3 实现 RBAC 权限管理 RBAC的基本概念 RBAC本质上就是一个授权的过程通过 用户 -> 角色---->资源 为啥要用RBAC 一个系统中用户是非常多的,对于不同的用户,展 ...
- php中rbac三张表的关系,thinkPHP的RBAC权限管理
thinkPHP的RBAC权限管理 如何进行thinkPHP的rbac权限管理呢?下面是由百分网小编为大家整理的thinkPHP的RBAC权限管理,喜欢的可以收藏一下!了解更多详情资讯,请关注应届毕业 ...
- python通用权限管理框架图_通用权限管理设计篇_设计模式
摘要: 本文讲的是通用权限管理设计篇_设计模式, 博客地址:http://www.blogjava.net/amigoxie/ 一.引言 因为做过的一些系统的权限管理的功能虽然在逐步完 ...
最新文章
- 《走进SAP(第2版)》——第2章 企业软件的SAP之路2.1 企业资源计划(ERP)...
- 京东王笑松:7FRESH是“无界零售”理论的业务践行
- 继续咸鱼——2.18
- MySQL利用xtrabackup进行增量备份详细过程汇总
- ART:分享收集的关于博物馆的视频纪录片,建议喜欢艺术人们的收藏
- html中的文本格式化标签+多媒体标签+关于IE浏览器兼容的问题(干货!)
- 爬取上千个年度基金后,才知道这有多坑,千万别被人当韭菜给割了
- 写python脚本管理_Python 文件管理实例详解
- GDAL使用DEM数据计算地形指数
- Libnet核心数据结构
- python 直播源_直播源获取软件下载|直播源获取工具(斗鱼B站西瓜)下载-蛙扑下载站...
- 基于lvs实现的高并发负载的实战
- 大话西游免费版最新服务器是,2020年4月1日服务器数据互通公告
- 华三防火墙h3cf100配置双宽带_华三F100系列、华为USG6300系列防火墙 策略路由配置实例...
- 邻域均值 (python)
- 清华大学张亚勤对话朱民:颠覆认知的AI时代及产业机遇
- 世界上第一个微处理器真的是Intel 4004吗?其实这是个很复杂的故事…
- 阿里云服务器部署neo4j图数据库
- F4键无法在Excel里正常使用
- Day14 Date 包装类 Character