通用权限管理模型

简介: 本文介绍了ACL和RBAC两种常见权限模型。ACL通过直接为用户或角色授权实现控制,简单直观;RBAC则基于角色分配权限,解耦用户与权限关系,更易管理。文中还详解RBAC的四类扩展模型(RBAC0-RBAC3),涵盖角色继承、职责分离等核心设计,帮助构建清晰的权限体系。

笔者的学习认知中,对于一个新框架往往都会先去学习一下底层模型(即表结构及关系),因此这里我们就来了解一下通用的权限管理有哪些,各自的模型关系大概是什么样子,好对我们接下来的学习有个全局认知。

除了本节讲解的ACL、RBAC,还有一些的DAC、MAC、ABAC,感兴趣的读者们可以自行了解一下。

ACL权限模型

ACL(Access Control List)访问控制列表,是很古老的一个权限控制模型。核心思路:将某个对象的某种权限授予某个用户或某种角色,他们之间的关系是多对多,即一个用户/角色可以具备某个对象的多种权限,某个对象的权限也可以被多个用户/角色所持有。

ACL使用非常简单,在搞明白原理之后,开发者可以不用任何权限框架就可以快速实现ACL权限模式。当然Spring Security也为ACL提供了相应的依赖:spring-security-acl,如果项目有使用可以直接添加此依赖。

RBAC权限模型

RBAC(Role-based access control)基于角色的访问控制,是一种较新且广为使用的权限控制机制,这种机制不是直接给用户赋予权限,而是将权限赋予角色。(看到这读者们是不是觉得跟ACL有相似之处呢)

RBAC将用户按角色进行归类,通过用户的角色来确定用户对某项资源是否具备操作权限。RBAC简化了用户与权限的管理,它将用户与角色关联、角色与权限关联、权限与资源关联,这种模式使得用户的授权管理变得非常简单和易于维护。RBAC权限模型有三个主要原则:

(1)最小权限:给角色配置的权限是其完成任务所需要的最小权限集合

(2)职责分离:通过相互独立互斥的角色来共同完成任务,即不能一个角色有重复功能,有这种场景就给一个用户赋予多个角色

(3)数据抽象:通过权限的抽象来体现

RBAC权限模型分类

RBAC权限模型分类

RBAC0

在RBAC0中,一个用户可以具备多个角色,一个角色可以具备多个权限。如下图

RBAC1

RBAC1是在RBAC0的技术基础之上建立的,主要是增加了角色的继承关系,让角色有了上下级。如下图

RBAC2

RBAC2也是在RBAC0的技术基础之上建立的,引入了静态职责分离和动态职责分离。

角色互斥:在实际项目中有一些角色是互斥的,如财务就不能自己报账自己审批,对于这个角色一般不能和其他角色见人。通过职责分离可以解决这一问题。

静态职责分离:在权限配置阶段就做限制。如同一个用户不能被授予互斥的角色,授予时做互斥判断。

动态职责分离:运行阶段进行限制。如一个用户即使有多个角色,代码也会实时判断其真正有效的角色是几个。

RBAC3

RBAC3是RBAC1和RBAC2的合体,如下图:

image.png


相关文章
|
3月前
|
存储 弹性计算 API
阿里云2核4G云服务器租用参考:收费标准、实例规格与活动价格说明
2026年阿里云服务器2核4G配置,凭借均衡的性能与适中的成本,成为个人开发者、中小企业的主流选择。2核CPU能高效应对基础并行运算,4G内存可稳定支撑动态网站、轻量应用及小型数据库运行,适配个人博客、企业官网、小程序后端、内部办公系统等多类场景。该配置主要覆盖轻量应用服务器与ECS云服务器两大品类,收费标准受实例类型、带宽规格、计费周期及用户身份影响显著,同时配套多类针对性优惠活动。以下结合最新全网信息,用通俗易懂的语言详细梳理核心内容,确保不添加营销词汇、贴合原文原意。
368 2
|
2月前
|
机器学习/深度学习 人工智能 算法
大模型微调PPO原理:让AI学会人类价值观的核心算法
PPO(近端策略优化)是大模型对齐人类价值观的核心强化学习算法。它通过截断重要性采样与KL约束,实现稳定、渐进的策略更新,在ChatGPT、Claude等系统中驱动RLHF训练。原理简洁、工程友好,已成为大模型对齐事实标准。
|
4月前
|
移动开发 UED
阿里云号码认证服务介绍、融合认证收费价格及号码认证使用场景说明
阿里云号码认证服务支持一键登录、短信/图形/融合认证,直连运营商实现无感验证,优化注册登录流程。提供多种套餐:短信认证100次3.99元/年,1万次480元/年;号码认证100万次2.9万元/年;融合认证更享优惠。适用于APP、H5等场景,提升用户体验。
|
3月前
|
数据采集 人工智能 运维
AI 智能体的开发费用
2026年AI智能体开发费用按能力与业务复杂度定价,非传统人天计费:入门级8–25万(RAG+基础工具),专业级30–80万(系统对接+推理优化),企业级100万+(多Agent协同)。成本大头为Agent架构师人力(60%)与数据治理(20%),含持续运维(年20%)。建议先做15万PoC验证核心工具调用成功率。
|
11月前
|
机器学习/深度学习 Python
拯救数据不平衡:imbalanced-learn库详解
当你的数据像翘翘板一样严重倾斜时,该如何挽救你的机器学习模型?本文详解imbalanced-learn库的四大绝招,帮你轻松应对数据不平衡问题,提升模型性能。
564 8
|
图形学 开发者
unity 从工具栏拖动生成物体
在 Unity 中实现从工具栏拖动生成物体的功能,基于编辑器扩展、事件系统和预制体实例化。通过自定义编辑器窗口、处理鼠标事件(按下、移动、释放)及使用 Instantiate 方法,可实现拖动并生成预制体物体。代码示例展示了如何检测鼠标事件并在指定位置实例化物体。
|
开发框架 安全 Java
.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力
本文深入探讨了.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力。.NET不仅支持跨平台开发,具备出色的安全性和稳定性,还能与多种技术无缝集成,为企业级应用提供全面支持。
512 3
|
人工智能 算法 测试技术
PAI 大语言模型评测平台现已支持裁判员模型评测
本文将为您介绍如何在 PAI 大语言模型评测平台,基于裁判员模型,评价开源模型或者微调后模型的性能。该功能限时免费,欢迎使用。
|
存储 数据安全/隐私保护 Android开发
Android与iOS的隐私保护机制对比####
本文深入探讨了Android与iOS两大移动操作系统在用户隐私保护方面的策略与技术实现,揭示了两者在设计理念、权限管理、数据加密等方面的差异及其对用户体验的影响。通过对比分析,旨在为用户提供更全面的隐私保护认知,同时为开发者提供跨平台隐私保护的参考。 ####
979 0

热门文章

最新文章