基于RBAC 的SAAS系统权限设计

SAAS系统下基于RBAC的权限设计(2) - 数据结构设计 在SAAS管理端,前端使用Vue3,后端采用Java相关技术栈,以下所展示的数据结构仅作为参考,具体在项目实践中还需根据实际情况进行优化使用。以下数据结构已对后期的Client Site权限分配做了扩展准备,针对SAAS客户端,可做功能以及Api功能的权限隔离。 阅读详情

为什么系统需要权限控制?

 

生活中有没有权限限制?

 

灾难片电影《2012》中富人和权贵有权登上诺亚方舟,穷苦老百姓只有等着灾难的来临;

 

屌丝身边为什么没有那些长得漂亮、身材好的姑娘存在?

 

因为有钱人和漂亮姑娘都是珍贵稀有的,稀有的人在一起玩耍。而普通人往往无权拥有他们所拥有的权限。

 

 

权限管理的本质

 

web程序通过 url 的切换查看不同的页面(功能),所以权限管理指的其实就是URL管理,对url控制就是对权限的控制。

 

因此,一个人有多少个权限取决于他可以访问多少个URL。

 

 

RBAC是什么?

 

RBAC(Role-Based Access Control),是基于角色的访问控制,是一种先进的权限管理的模型。RBAC把用户通过角色与权限进行关联。即让一个用户拥有若干角色,每一个角色拥有若干权限。

 

这样就构造成了“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。

 

图片

 

 

 

 

权限系统中的概念

 

用户

应用系统的具体操作者,用户可以自己拥有权限信息,可以归属于0~n个角色,可属于0~n个组。他的权限集是自身具有的权限、所属的各角色具有的权限、所属的各组具有的权限的合集。它与权限、角色、组之间的关系都是n对n的关系。

 

角色

为了对许多拥有相似权限的用户进行分类管理,定义了角色的概念,例如系统管理员、管理员、用户、访客等角色。角色具有上下级关系,可以形成树状视图,父级角色的权限是自身及它的所有子角色的权限的综合。父级角色的用户、父级角色的组同理可推。

 

组

为了更好地管理用户,对用户进行分组归类,简称为用户分组。组也具有上下级关系,可以形成树状视图。在实际情况中,我们知道,组也可以具有自己的角色信息、权限信息。这让我想到我们的QQ用户群,一个群可以有多个用户,一个用户也可以加入多个群。每个群具有自己的权限信息。例如查看群共享。QQ群也可以具有自己的角色信息,例如普通群、高级群等。

 

图片

 

权限

系统的所有权限信息表达了两层含义。即控制的对象、操作。向上引申可将权限划分为3个组成部分:

 

页面权限:用户可以看到那些页面;

 

操作权限:用户可以在页面内进行那些操作,增删改查等;

 

数据权限:用户可以看到那些数据或内容;

 

图片

 

 

权限模块设计

 

完整的权限管理做大可作为独立 系统进行开发,小做也必定做为SAAS平台的核心基础模板,在最初迭代初期就进入规划、设计环节。在进行权限模块设计时,产品可以从两个角度考虑:

 

1.权限控制管理

 

即对系统中各类涉及权限限制的元素进行使用、查看等操作的权限控制。

 

l最基本的权限管理是菜单管理,用户没有权限的功能模块在菜单节点上不显示。

 

如:普通业务人员登录系统后,是看不到【用户管理】菜单的。

 

l功能权限管理,B/S系统的功能体现为URL,所以功能权限管理主要是针对URL访问的管理。

 

如:经过授权,部门经理可以查看【用户管理】菜单,并查看部门用户信息,但权限设计要求,该部门经理没有添加用户的权限。所以在访问【添加用户】的功能(URL)时,应该有没有授权的提示信息。同时在【用户管理】页面上,【添加用户】的按钮应该灰色显示,不能点击。

 

l行级权限管理

 

如:论坛管理员,权限设计要求 A能管理论坛 【新闻版块】,不能管理论坛 【技术交流】此时的权限设计就应该根据论坛的相应ID来判断权限信息。

 

l列级权限管理

 

如:业务权限设计要求,除销售人员以外,其他用户不能看到客户的联系方式信息。

 

此时的权限设计要判断相应的字段(列)是否可以显示。

 

l组织机构/部门级数据权限管理

 

如:业务权限设计要求,销售一部的人员只能看到本部门的销售订单,销售二部的人员只能看到本部门的销售订单,但销售经理可以同时看到销售一部和销售二部的销售订单。此时的权限设计就要根据销售订单数据本身的部门属性来做判断

 

l范围型业务数据权限管理

 

如:大卖场销售人员在下销售订单时,要选择相应的产品所在仓库信息。业务权限设计要求,【国美】的销售人员在选择仓库的下拉列表中不能看到【广州仓库】,而【大中电器】的销售人员在选择仓库的下拉列表中不能看到【北京顺义仓库】

 

 

2.权限分配管理

 

针对权限管理内容通过系统授权功能分配给具体的用户,角色的过程。

 

l直接对用户授权,直接分配到用户的权限具有最优先级别。

 

l对用户所属岗位授权,用户所属岗位信息可以看作是一个分组,和角色的作用一样,但是每个用户只能关联一个岗位信息。

 

l对用户所属角色授权,用户所属角色信息可以看作是一个权限分组,每个用户可以关联多个角色。

 

l角色直接关联具体的功能权限(URL),也可以关联负权限,即此角色关联的权限不能使用负权限功能。负权限具有优先级别。

 

l分级授权,系统管理员可以将自己拥有的权限信息授权给其他用户。即可以设置分级管理员和超级管理员。

 

 

界面总体设计

 

想想一个简单的权限系统应该有什么功能呢?当然是:用户-角色-权限,下图所示过程:

 

图片

 

创建角色列表

 

图片

 

在角色列表快速创建一个角色:点击创建角色,支持创建角色时配置权限。

 

图片

 

创建用户列表

 

图片

 

在用户列表快速创建一个用户:支持用户关联角色的功能。用户权限管理常见设计包括:

 

l所属角色:当用户选择“修改”按钮时,弹出角色树形结构,操作人可以通过勾选或取消勾选来修改该用户所属的角色。

 

l所属组:当用户选择“修改”按钮时,弹出组的树形结构,操作人可以通过勾选或取消勾选来修改该用户所属的组。

 

l用户权限:通过对已具有的权限取消勾选,或为某权限添加勾选,来修改用户的权限信息,点击“保存”按钮保存修改信息。

 

l总权限:通过对已具有的权限取消勾选,或为某权限添加勾选,来修改用户的权限信息,点击“保存”按钮保存修改信息。

 

l用户管理:当选择了某用户时,点击右键,弹出菜单列表:修改、删除、取消,点击修改和删除按钮可以实现用户的删除和修改功能。

 

选择某个组织,例如 “广州分公司”,弹出菜单列表:添加子组织、删除组织、修改组织、添加用户、取消,点击添加用户按钮可以实现用户的添加功能。

 

l组织管理:选择某个组织,弹出菜单列表:添加子组织、删除组织、修改组织、添加用户、取消,点击添加子组织、删除组织、修改组织按钮可以实现组织的添加、删除和修改功能。

 

图片

 

上述案例是基于最简单的RBAC0模型创建,适用于大部分常规的权限管理系统。

 

角色权限管理

 

我们还可以在上面的内容基础上再加上角色等级。角色权限管理设计中,通常包括以下内容:

 

l包含用户:当用户选择“修改”按钮时,弹出用户列表,操作人可以通过勾选或取消勾选来修改该角色所包含的用户。

 

l包含组:当用户选择“修改”按钮时,弹出用户列表,操作人可以通过勾选或取消勾选来修改该角色所包含的组。

 

l角色权限:通过对已具有的权限取消勾选,或为某权限添加勾选,来修改角色的权限信息,点击“保存”按钮保存修改信息。

 

l管理角色:选中组1的时候,右键点击可弹出组的操作列表,包括添加、删除和修改按钮,从而完成在该组下添加子组,删除该组以及修改该组的功能。

 

具体界面呈现如下图:

 

图片

 

组权限管理

 

除此之外,还有组权限管理

 

l包含用户:当用户选择“修改”按钮时,弹出用户列表,操作人可以通过勾选或取消勾选来修改该组所包含的用户。

 

l所属角色:当用户选择“修改”按钮时,弹出角色树形结构,操作人可以通过勾选或取消勾选来修改该组所属的角色。

 

l组权限:通过对已具有的权限取消勾选,或为某权限添加勾选,来修改组的权限信息,点击“保存”按钮保存修改信息

 

l总权限:通过对已具有的权限取消勾选,或为某权限添加勾选,来修改组的权限信息,点击“保存”按钮保存修改信息

 

l组管理:选中组1的时候,右键点击可弹出组的操作列表,包括添加、删除和修改按钮,从而完成在该组下添加子组,删除该组以及修改该组的功能

 

操作日志管理

 

l查询操作日志:输入上图表单中的查询信息后,点击“查询”按钮,可查询出符合条件的信息。

 

l删除操作日志:输入上图表单中的查询信息后,点击“查询”按钮,可查询出符合条件的信息。而后点击“删除”按钮,可删除符合查询条件的操作日志。

 

- End -

SaaS系统数据权限设计:基于RBAC与部门树的精细化控制方案 在软件系统开发中,访问控制是保障数据安全的核心机制,其核心原理是通过预定义规则限制用户对资源的操作。RBAC(基于角色的访问控制)模型通过角色这一抽象层,将用户与权限解耦,有效管理功能权限,降低授权复杂度。然而,在企业级应用中,仅控制功能权限不足以保证数据安全,数据权限成为关键技术需求,它决定了用户能看到哪些具体数据行。数据权限的实现通常与组织架构深度耦合,通过动态生成数据过滤条件(如SQL WHERE子句)来实现纵向与横向的数据隔离。在SaaS多租户场景下,结合部门树形结构设计数据范围控制方案,能有效支撑 阅读详情

相关推荐

SaaS系统数据范围权限设计:从RBAC/ABAC到高性能实现

在构建多租户SaaS系统时,数据范围权限是保障数据安全与隔离的核心机制。其原理是在数据访问层嵌入精密的过滤逻辑,确保用户仅能操作其权限范围内的数据。这项技术的核心价值在于支撑规模化业务增长的同时,满足严格的合规性要求,是构建可信商业系统的基石。典型的应用场景包括企业内部的部门数据隔离、多租户SaaS平台中不同客户间的数据隔离,以及复杂的集团分级管控。本文聚焦于**数据范围权限**体系的设计与实现,深入探讨如何结合**RBAC(基于角色的访问控制)** 与**ABAC(基于属性的访问控制)** 模型,构建一套

weixin_29623317的博客 513

SaaS系统用户权限设计

1、系统需求平台管理员只能管理租户的账号和相关信息,不能操作租户的内部业务。各租户拥有自己的角色和权限,相互不能影响。不同租户的数据、服务在物理上共享,而在逻辑上完全隔离,对于每个租户来说这个系统好像只为自己服务。为了确保系统数据的安全性,使用户能放心地将商业数据放在系统上使用,SaaS系统的权限管理在系统设计中成为尤为重要的一环。2、RBAC权限模型访问控制是针对越权使用资源的防御措施,目的是为...

liudada8265的博客 871

大型SaaS系统数据范围权限设计:从RBAC到动态数据域的实战解析

在软件即服务(SaaS)和企业级应用中,权限控制是保障数据安全与业务逻辑的核心基础。其原理在于通过系统化的规则,精确管理用户对功能和数据的访问能力。传统的基于角色的访问控制(RBAC)主要解决“能做什么”的功能权限问题,而现代复杂业务场景则进一步要求解决“能操作哪些数据”的数据权限挑战,这对于实现多租户数据隔离与内部精细化管控具有关键的技术价值。为此,业界演进出了结合RBAC与动态数据域的混合模型,通过规则引擎动态计算数据可见范围,从而灵活适应销售团队、区域管理等多样化的应用场景。本文深入探讨了如何设计并实

weixin_33785971的博客 314

大型Saas系统的权限体系设计(二)

比较好的解决办法是把上下级关系建立在部门岗位基础上,由岗位形成上下级关系,而个人可以设定多个岗位,则人与人之间的上下级关系自然而然建立,同时又避免了因为上级岗位变动带来的不必要的大面积变更。设想下,一个成功的Saas系统,用户少则几万,多则千万,如果这么多的用户的权限管理都归于平台管理员一身,本身就是巨大的成本。提到2B的Saas系统的多层次权限体系设计的难题,即平台、平台的客户、客户的客户,乃至客户的客户的客户如何授权,这个可以通过“权限-角色-岗位”三级结构来实现。答案是肯定的,而且必须下放。

顽刀3j%es(3Qm$d1 2281

别再只懂RBAC了!手把手教你为SaaS多租户系统设计权限(附组织架构与角色组实战)

本文深入探讨了SaaS多租户系统的权限设计,从传统RBAC模型到组织架构与角色组实战应用。通过四层权限模型设计,包括租户级控制、组织级权限、角色组优化和动态权限策略,帮助开发者解决多租户环境下的权限管理难题,提升系统安全性和管理效率。

weixin_30521161的博客 380

【产品经理修炼之道】-SaaS系统的权限管理

RBAC模型(Role-Based Access Control)就是基于角色的访问控制。它基于“角色”这一核心理念,将用户权限的管理和分配与用户的具体身份解耦合,从而简化权限管理,以便维护和扩展。简单来说,就是我将系统权限赋予‘角色’,用户再继承角色来获取权限。一个用户可以有0到多个角色。一个角色可以分配给0到多个用户。一个角色可以有0到多个权限。一个权限可以分配给0到多个用户。当今的大部分B端系统的权限管理都会涉及到RBAC模型,只是功能的繁简程度不同而已。

xiaoli8748的专栏 1431

权限系统设计学习总结(4)—— SaaS 平台多租户模式下权限设计

一、RBAC模型 1.1、概念 权限设计最常见的就是基于 RBAC 模型。而 RBAC 模型又有 RBAC0、RBAC1、RBAC2、RBAC3 等几种常见的模式。RBAC(Role-Based Access Control) 基于角色的访问控制的设计思想。作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。RBAC 中有4个比较关键的元素:用户 – 角色 – 权限 – 资源。 1.2、 RBAC 支持

科技D人生 1万+

ChatGPT Windows桌面版:从安全下载到高效配置的全流程指南

WebView封装技术是将网页应用转化为独立桌面程序的核心方法,它通过嵌入浏览器内核实现跨平台功能复用。其原理在于利用Electron或Tauri等框架,将Web内容打包进原生应用外壳,同时注入系统级API调用能力。这项技术的工程价值在于显著提升了Web应用的系统集成度和用户体验,使其能够支持全局快捷键、独立进程和本地数据存储等原生特性。在AI助手深度集成工作流的应用场景中,这种封装模式解决了浏览器多标签页切换繁琐、会话管理不便等痛点。本文以ChatGPT桌面客户端为例,详细解析了基于开源项目的安全下载路径

weixin_30437847的博客 488

权限系统设计学习总结(2)——SAAS后台权限设计案例分析

分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程 saas平台由于其本身“按需购买”的特性,在设计规划权限时,需要考虑统一配置权限如何规避企业没有购买的应用,以及如有部分应用存在数据权限不同的问题。现在,本文简单总结一下当前saas模式下权限的几种设计方式。 作为一个B端平台型产品,系统的权限设计是其中一个非常重要的组成部...

科技D人生 7584

手把手教你用芯驰X9HP驱动MAX96755/MAX96752点亮智能座舱仪表屏(附完整寄存器配置表)

本文详细介绍了如何使用芯驰X9HP驱动MAX96755/MAX96752实现智能座舱仪表屏的完整开发流程,包括硬件架构解析、关键寄存器配置、Linux BSP集成及调试技巧。通过实战指南和完整寄存器配置表,帮助开发者快速掌握驱动开发核心技术,提升智能座舱系统的显示性能与稳定性。

weixin_30879169的博客 526

AI学习指南RAG篇(19)-API调用与集成

通过上述API调用示例,您可以方便地将RAGFlow与其他系统集成,实现数据集管理、文档处理、会话管理等功能。希望本文的介绍能帮助您更好地理解和使用RAGFlow的API。

俞兆鹏的博客 2547

SaaS平台权限架构

对于SaaS系统的权限,就是登录账号的功能权限和数据权限的合集。功能权限是账号在平台上能看到哪些页面,能操作页面里面的哪些功能或按钮。数据权限就是这个账号能在系统中看到哪些数据,能对哪些数据做功能级的操作。功能权限一般靠角色和功能集进行关联,即RBAC模型。数据权限一般靠靠租户的组织架构来实现数据的隔离。然后账号和角色关联,获得功能权限,和组织架构关联,获得可管理的数据。下面对相应内容做详细介绍。...

liudada8265的博客 739

FLUENT 软件中design modeler网格划分后,导出失败:系统显示“在网格文件导出过程中出现异常。请将数据发送给您的技术支持供应商。”...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1474

SAAS系统下基于RBAC的权限设计(1)

企业级SAAS系统,多租户设计概念及思路(1)

weixin_38744486的博客 595

apollo自动驾驶进阶学习之:如何实现施工路段限速绕行及其参数调试

首先需要理解Planning模块是基于Scenario、Stage、Task这样的层次来进行的,即场景->步骤->具体的决策方法。Apollo可以应对自动驾驶所面临的不同道路场景,都是通过Scenario统一注册与管理。Scenario通过一个有限状态机来判断选择当前行车场景,每个Scenario下又有多个Stage,指当前场景下需要执行的粗略步骤。.........

qq_41593516的博客 6598

2020年大连理工大学《计算机控制技术》期末试卷

2020年大连理工大学《计算机控制技术》期末试卷 2020年大连理工大学《计算机控制技术》期末试卷 2020年大连理工大学《计算机控制技术》期末试卷 2020年大连理工大学《计算机控制技术》期末试卷 ...

无名何许人的博客 650

基于RBAC的saas权限系统设计

先说RBAC,我相信大家对RBAC都已经很熟悉了,这里再简单的介绍一下 基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相

漫长学习路 1万+

cuRobo 入门教程(一)基于CUDA的机器人运动规划加速库

cuRobo是一款基于CUDA加速的机器人算法库,提供运动学计算、碰撞检测、轨迹优化等功能。该库采用并行优化技术,在GPU上实现高效运算,比现有方案快60倍。cuRobo支持多种机器人模型和环境表示,包含正向/逆向运动学、无碰撞轨迹生成、模型预测控制等核心算法,并可与IsaacSim等仿真平台集成。其特点包括:1) 支持多种碰撞检测方式(长方体/网格/深度图像);2) 提供批量环境处理和实时世界更新;3) 通过CUDA Graphs加速优化迭代;4) 在Jetson Orin等平台实现毫秒级运动规划。安装支

2506_90492529的博客 1931

教培SaaS后台权限系统从RBAC到ABAC的设计与实现踩坑全记录

对于列表数据,做批量权限判断,一次性传入所有数据项的属性,Drools批量返回每条数据的判断结果。ABAC的核心是属性。用户有属性(角色、所属校区、职位),资源有属性(数据所属校区、数据类型),环境有属性(当前时间、请求来源),操作有属性(查看、修改、删除)。权限判断的流程是:请求进来后,权限拦截器从请求中提取用户属性、资源属性、环境属性,传给Drools规则引擎,规则引擎执行匹配后返回允许或拒绝。选了Drools,原因一是支持复杂的规则组合,二是规则可以动态配置不需要改代码,三是性能可以接受。

b132465的博客 294

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

delphi7 增加管理员权限_SaaS后台权限管理设置经验分享

随着云计算的发展,越来越多企业产品业务向软件服务平台转型。其中系统的权限设计是十分关键和重要的部分,本文主要讲解SaaS系统权限设计。权限管理的作用平台管理员只能管理租户的账号和相关信息,不能操作租户的内部业务。各租户拥有自己的角色和权限,相互不能影响。不同租户的数据、服务在物理上共享,而在逻辑上完全隔离,对于每个租户来说这个系统好像只为自己服务。为了确保系统数据的安全性,使用户能放心地将商业数据...

weixin_39928686的博客 398

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

第3章-SaaS-HRM系统用户权限设计

学习目标: 理解RBAC模型的基本概念及设计思路 了解SAAS-HRM中权限控制的需求及表结构分析 完成组织机构的基本CRUD操作 完成用户管理的基本CRUD操作 完成角色管理的基本CRUD操作 1 RBAC模型 1.1 什么是RBAC RBAC(全称:Role-Based Access Control)基于角色的权限访问控制,作为传统访问控制(自主访问,强制访问)的有前景的代替受...

Lambda 1200

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

产品经理系列-saas多租户设计

(18)基于 RBAC 的 saas 权限系统设计 https://blog.youkuaiyun.com/liaodehong/article/details/51981151 (19)PaaS 平台——多租户的 RBAC 权限管理(一)基本概念 https://blog.youkuaiyun.com/guo_ang/article/details/77658199 (20)SaaS 系统用户权限设计 http://w...

天不拘兮地不羁 3859
上一篇: 电商APP首页设计,终于有人讲明白了!
下一篇: 产品经理技术脑:Bootstrap
陪学PEXUE
博客等级 码龄12年 81粉丝 135原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值