RBAC,ABAC,REBAC访问权限控制模型

基于Zanzibar实现的ReBAC权限体系(1)- OpenFGA简介 OpenFGA 是一个面向开发人员的可扩展开源授权系统,允许为任何类型的应用程序实施授权,并随着复杂性的增加而平稳发展。受 Google 内部授权系统 Google 的 Zanzibar 的启发,OpenFGA 依赖于 Relationship-Based Access Control,它允许开发人员轻松实现 Role-Based Access Control,并提供额外的能力来实现 Attribute-Based Access Control。类型定义定义用户或其他对象可以与此类型相关的所有可能关系。 阅读详情

1. RBAC

(Role-Based Access Control,基于角色的访问控制)

原理:

通过为用户分配“角色”,再为角色分配权限,实现权限管理。用户不直接拥有权限,而是通过角色间接获得。

优点:

  • 结构清晰:易于理解和实现,适合组织结构明确的企业。
  • 管理简便:权限集中于角色,新增/删除用户只需调整角色分配。
  • 降低复杂度:避免为每个用户单独配置权限,减少管理开销。
  • 支持最小权限原则:可通过精细的角色划分实现权限最小化。

缺点:

  • 灵活性差:难以处理动态或上下文相关的权限需求(如“仅在工作时间访问”)。
  • 角色爆炸:当业务复杂时,角色数量可能急剧增加(如“财务经理-北京-季度报表”)。
  • 缺乏上下文感知:无法根据环境(时间、地点、设备等)动态调整权限。

适用场景:

企业内部系统、权限结构稳定、组织层级分明的场景。


2. ABAC

(Attribute-Based Access Control,基于属性的访问控制)

原理:

基于主体(用户)、客体(资源)、操作和环境的属性,通过策略规则动态判断是否允许访问。

优点:

  • 高度灵活:支持复杂的、上下文相关的访问控制(如“部门经理且在工作时间可审批报销”)。
  • 细粒度控制:可实现非常精细的权限策略。
  • 动态决策:能根据实时环境(时间、IP、设备安全等级)调整访问权限。
  • 可扩展性强:适合复杂、多变的业务需求。

缺点:

  • 复杂性高:策略编写和维护难度大,需要专门的策略语言(如XACML)。
  • 性能开销:每次访问都需要评估多个属性,可能影响系统性能。
  • 调试困难:当访问被拒绝时,难以快速定位是哪个属性或规则导致的。
  • 实施成本高:需要策略决策点(PDP)、策略执行点(PEP)等架构支持。

适用场景:

云环境、多租户系统、需要动态和细粒度权限控制的场景。


3. REBAC

(Relationship-Based Access Control,基于关系的访问控制)

注:有时也写作 ReBAC(Relationship-Based Access Control)

原理:

基于用户之间的关系(如“同事”、“下属”、“项目成员”)或用户与资源之间的关系(如“文件所有者”、“群组成员”)来决定访问权限。

优点:

  • 自然表达社交/组织关系:适合社交网络、协作平台等场景。
  • 高度动态:权限随关系变化自动调整(如退出群组则失去访问权)。
  • 可组合性强:可通过关系链实现间接权限(如“经理的经理”)。
  • 支持继承与传递:可定义关系的传递性(如“朋友的朋友”)。

缺点:

  • 关系管理复杂:大规模关系网络的维护和查询成本高。
  • 权限蔓延风险:关系链过长可能导致意外授权。
  • 性能挑战:关系路径查找(如最短路径、可达性)在大数据量下可能较慢。
  • 审计困难:权限来源可能不直观,难以追溯。

适用场景:

社交网络、协作工具(如Google Drive共享)、组织架构复杂的企业系统。

4.混合模型

在实际系统中,常采用 混合模型,以兼顾灵活性与管理效率。

RBAC + ABAC(角色+属性)

RBAC + ABAC 组合的核心思想:

  • RBAC 提供基础权限框架:用户通过角色获得“通常情况下的权限”。
  • ABAC 作为“策略过滤器”或“增强层”:在角色权限的基础上,根据上下文属性(时间、地点、设备、资源属性等)动态决定是否允许访问。

可以理解为:“你有这个角色,但还要看条件是否满足。”

优势说明
结构清晰 + 灵活控制RBAC 管“谁该有什么权限”,ABAC 管“什么时候能用”
减少角色爆炸不需要为“高金额审批经理”等创建新角色,用属性控制即可
动态适应业务变化新增资源只需打标签,策略自动生效,无需改角色
合规与审计友好所有决策可追溯:基于角色 + 哪些属性触发了拒绝/允许

案例 :

企业财务系统中的报销审批

  • RBAC 层面:

    • 角色:部门经理
    • 权限:可以审批本部门员工的报销单
  • ABAC 增强规则:

    • 只有当报销金额 ≤ 5000 元 时,部门经理才能审批。
    • 如果金额 > 5000 元,则需要 财务总监 角色 + 额外审批流程。
    • 审批操作必须在 工作日 9:00–18:00 内完成。
    • 用户必须从 公司内网 IP 或已注册设备 登录。

例如: 即使你是“部门经理”,但如果:

  • 报销单金额是 6000 元,你不能批;
  • 现在是晚上 20 点,你也无法提交审批。

REBAC + ABAC(关系+属性)

REBAC + ABAC 组合的核心思想:

  • REBAC 定义“谁能访问什么”基于关系链:如“我是项目成员 → 可访问项目文档”,“我是A的经理 → 可查看A的绩效”。
  • ABAC 作为“过滤器”或“条件判断层”:即使存在关系,也需满足某些属性条件(时间、设备、资源敏感度等)才能真正访问。

可以理解为:“你和资源有关系,但还要看条件是否允许。”

优势说明
表达复杂权限路径支持“间接关系”授权,如“经理的经理”、“群组成员的成员”
动态上下文控制在关系基础上叠加时间、设备、资源分类等条件,提升安全性,支持动态、临时、复杂的权限场景
减少硬编码权限不需要为每个场景预设权限,而是通过关系图 + 策略引擎动态计算
支持权限继承与限制例如“团队成员可编辑文档,但非工作时间不能编辑”

案例 :

协作平台(如 Google Drive / Notion)中的文件共享

  • REBAC 层面:

    • 文件 A 属于“项目组X”
    • 用户 B 是“项目组X”的成员 → 因此 B 可以查看文件 A
    • 用户 C 是 B 的直接上级 → C 可以“查看下属的所有工作文档”(通过组织关系链)
  • ABAC 增强规则:

    • 如果文件标记为 classification=sensitive(敏感),则:
      • 必须使用 公司注册设备 才能下载
      • 禁止在 非工作时间(22:00–6:00) 访问
      • 访问者必须具有 security_level>=3 的属性
    • 所有访问操作必须从 企业网络或VPN 内发起

例如: 即使你是项目成员或上级,但如果:

  • 你在晚上 23 点尝试打开一份“机密”文档;
  • 或你用个人手机登录; → 系统仍会拒绝访问。
  • 已经离职的成员是文档的拥有者,领导依然可以访问文档
权限控制四剑客深度剖析:ABAC、RBAC、PBAC、ReBAC 谁才是企业级系统的终极选择? 本文对比了四大主流权限控制模型:RBAC(基于角色)、ABAC(基于属性)、PBAC(基于策略)和ReBAC(基于关系)。RBAC适合岗位固定的企业系统,结构简单但灵活性差;ABAC支持动态策略,适用于合规要求高的场景;PBAC是ABAC的增强版,强调策略管理;ReBAC则通过实体关系授权,适合协作平台。文章指出,实际应用中常采用混合架构,建议根据业务需求选择:简单系统用RBAC,合规场景选ABAC/PBAC,协作系统用ReBAC。权限模型需结合业务特点,没有绝对最优方案。 阅读详情

相关推荐

三层权限模型设计:认证 + RBAC + ABAC 三级权限控制方案

本文介绍了一个适用于现代中大型系统的三层权限模型,旨在满足安全性、灵活性与可维护性需求。该模型包括: 认证层(Authentication):通过账号密码、OAuth2、JWT等技术确认用户身份,控制用户能否访问系统。 RBAC层(Role-Based Access Control):基于用户角色控制功能访问,管理模块、菜单、按钮及接口权限,前端通过角色控制显示,后端通过拦截器或注解实现。 ABAC层(Attribute-Based Access Control):通过用户属性、数据属性及环境属性实现数据级

qj19842011的专栏 1354

ReBAC:兼容DDD的下一代授权模型

表现力:由于所有授权都基于定义关系的元组这一简单概念,例如('user:alice', 'editor', 'document:budget') - 意味着用户 "alice "可以编辑名为 "document:budget "的资源(或者,换句话说,用户 "alice "和资源 "document:budget "之间存在 "editor "关系),因此具有无限的灵活性,尤其是关系名称为简单字符串时。这是一种新模型,其中参与者访问资源的授权是通过这些参与者和资源之间存在的关系来定义的。

极道Jdon的技术博客 704

从STM32转战小华HC32F448:手把手教你搞定串口复用与超时中断(附完整代码)

本文详细介绍了从STM32迁移到小华HC32F448的串口开发实战指南,重点解析了HC32F448的GPIO复用系统和超时中断机制。通过对比STM32的架构差异,提供了完整的串口配置代码和优化方案,帮助开发者快速掌握HC32F448的串口通信技术,适用于工业控制等应用场景。

weixin_30564901的博客 547

身份危机:安全领域的最大奖项

换句话说,在两年内,Azure AD 增加了大约 10 倍的用户(或多或少),并且拥有的付费组织数量是 Okta 在七年内赢得的数量的 20 倍。随着生态系统的发展,挫败感开始蔓延:集成很脆弱,管理 AD 成为 IT 管理员团队的全职工作,非 Microsoft 应用程序和设备很难纳入其中,并且与防火墙之外的对象进行交互网络之外的情况很艰难。随着 CIEM 和工作负载身份,新的、服务相对不足的类别正在出现,但该领域的许多上市公司已被私有化,并且唯一云原生上市公司一直在努力应对高管人员流动的浪潮。

2516

别再折腾SNAP了!ENVI 5.6.0 直接拖拽打开Sentinel-2 L2A数据的正确姿势

本文详细介绍了ENVI 5.6.0直接处理Sentinel-2 L2A数据的高效方法,无需通过SNAP进行繁琐的重采样预处理。通过直接拖拽XML文件,用户可以快速加载不同分辨率的波段数据,显著提升工作效率。文章还对比了直接打开与SNAP重采样流程的优劣,并提供了常见问题解决方案和高级应用技巧。

weixin_30296405的博客 633

STM32:TTL串口调试

TTL只需要两个线就可以完成两个设备之间的双向通信,一个发送电平的I/O称之为TX,与另一个设备的接收I/O口RX相互连接。两设备之间还需要连接地线(GND),这样两设备就有相同的0V参考电势。

superSmart_Dong的博客 5635

权限控制模型全解析:RBAC、ACL、ABAC 与现代混合方案

权限控制模型是确保信息系统安全的关键架构设计。本文系统梳理了常见的权限控制模型,包括 DAC、MAC、RBAC、ACL、ABAC 和 ReBAC,分析了它们的核心思想、优缺点及适用场景。DAC 适用于单机应用,MAC 适合高安全领域,RBAC 是企业后台系统的常见选择,ACL 适合文档和项目级协作,ABAC 提供动态细粒度控制,ReBAC 则适用于复杂关系系统。实际应用中,现代系统往往采用混合模型,如 RBAC+ACL 或 RBAC+ABAC,以平衡灵活性与管理成本。最佳实践建议根据项目规模和需求选择合适的

赵大仁的博客 1683

基于STM32、HAL库的TLV320AIC3204IRHBR音频接口芯片驱动程序设计

* 开启所有数字部分 */#define TLV320AIC3204_REG_LEFT_HEADPHONE_OUT_VOLUME 0x0C /* 左声道耳机输出音量 */#define TLV320AIC3204_REG_DIGITAL_AUDIO_PATH_CONTROL 0x05 /* 数字音频路径控制 */#define TLV320AIC3204_REG_ANALOG_HP_FILTER_CONTROL 0x34 /* 模拟耳机滤波器控制 *//* 最大音量 */

corlin6688的博客 520

权限管理策略对决:RBAC vs. ABAC vs. ReB

在这篇博客中,我们为您带来一些最常见的授权模型之间的对峙: 基于角色的访问控制(RBAC)、 基于属性的访问控制(ABAC)和 基于关系的访问控制(ReBAC)。有了 ABAC,就好比在杰伦储物柜中的每件物品上都添加了一个特定的标签,上面写着 "杰伦的财产"。让我们继续我们的俱乐部比喻--设想一个用户,我们叫他杰伦,在我们的俱乐部里有一个储物柜。现在,问题来了:这两者并不总是对立的--RBAC 和 ABAC 可以一起使用,RBAC 协议执行广泛的访问,而 ABAC 则管理更复杂的访问。

极道Jdon的技术博客 1003

ShowDoc item_id 未授权SQL注入漏洞复现

2024年6月,ShowDoc官方发布新版本修复了一个SQL注入漏洞。鉴于该漏洞无前置条件,易于利用,且默认情况下可暴破用户token获取系统后台权限,建议所有使用该系统的企业尽快升级修复,以确保系统安全。

0xSec 2357

Matlab之App Designer 一键自动生成带有表格的报告

本文采用案例讲解的方式介绍了采用Matlab中的App Designer开发可视化GUI分析界面后,实现一键自动导出带有表格报告的方法和步骤。可以实现从报告编制等繁琐的工作中解脱出来。

m0_59012156的博客 355

【领码探索】权限之刃——ReBAC与AI共舞的数字安全新纪元

在数字化浪潮下,传统访问控制模型在应对复杂多变的数据关系时日益捉襟见肘。ReBAC(基于关系的访问控制)作为一种新兴的权限管理范式,通过聚焦实体间的深层关系而非单一属性,为动态、精细化授权提供了强大支撑。本文将深入剖析ReBAC的核心机制、相较于RBAC/ABAC的革命性优势,并前瞻性地探讨其在社交网络、企业协作、IoT等多元场景的应用。更重要的是,我们将首次系统性地阐释AI如何赋能ReBAC,从策略自动生成到异常行为检测,再到智能审计,共同构建一个自适应、高弹性、强安全的未来权限管理体系。

领码SPARK - 以无代码之星火,燎原数字之未来! 1763

基于DSIFT多尺度图像融合的MATLAB代码

多尺度图像融合是一种常用的图像处理技术,它可以将具有不同尺度和空间频率特征的图像融合成一幅更具信息丰富度和视觉效果的图像。DSIFT算法是一种基于SIFT算法的改进版本,它在提取图像特征时采用了密集采样的方法,能够有效地提取图像的局部特征。多尺度图像融合基于DSIFT算法的思想,通过在不同尺度下提取图像的DSIFT特征,并将这些特征进行融合,得到最终的融合图像。然后,通过DSIFT算法提取了两幅图像的特征。通过运行上述代码,我们可以在MATLAB中实现基于DSIFT多尺度图像融合的算法,并观察到融合结果。

IELLQUI9的博客 180

API 设计中的 ReBAC:基于关系的访问控制授权模型详解

ReBAC(Relationship-Based Access Control,基于关系的访问控制)是一种依据「用户与资源之间的关联关系」来判定访问权限的授权模型,与依赖角色或属性的 RBAC、ABAC 相比,它能以「谁与什么存在何种关系」为粒度做细粒度授权,天然契合多租户、层级资源、社交化与协作类 API 场景。本文将以 [developer-roadmap](https://link.gitc

gitblog_00687的博客 211

Python经典编程习题100例:第25例:求各个阶乘的和

不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 本人初学Python,只为熟悉语法编写,大神请勿理会 点击下面链接 Python经典编程100例习题汇总 题目描述: 求1+2!+3!+…+20!的和。 解题思路: > 调用math模块中的factorial函数 代码: import math sum=0 for i in range(1,21): sum+=math.factorial(i) print(sum) ..

优快云 精品推荐 2735

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Warrant核心功能解析:从RBAC到ABAC的权限管理革命

Warrant是一款基于Google Zanzibar设计的**高度可扩展、集中式细粒度授权服务**,专门用于定义、存储、查询、检查和审计应用程序的授权模型与访问规则。作为关系型访问控制(ReBAC)引擎,它能够灵活支持RBAC(基于角色的访问控制)、ABAC(基于属性的访问控制)等多种权限管理范式,为现代应用提供强大的权限管理解决方案。 ## 🌟 Warrant的核心能力:多范式权限管理

gitblog_00991的博客 399

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

rbac权限管理设计_权限系统设计二: DAC、MAC、RBAC、ABAC模型

1基于角色的访问控制(RBAC: Role-Based Access Control)在DAC、MAC的基础上, RBAC出现了,RBAC是迄今为止最为普及的权限设计模型。RBAC模型中在用户、权限之间引入“角色(Role)”概念。RBAC把权限管理过程抽象为“判断逻辑表达式的值是否为True”的求解过程,而逻辑表达式为:Who是否可以对What进行How的访问操作(Operator)将权限问题转...

weixin_39927623的博客 323

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

适合AI系统的访问控制方法ReBAC:基于关系的访问控制

实现访问控制的方法有很多,传统的RBAC,ABAC等都可以实现,但以RAG为基础的系统,在处理大量文档时,需要在文档切片级进行权限控制,对实现的效率要求很高,RBAC及ABAC都不太合适,目前看国外很多厂商开始推出基于ReBAC的方法,是个更好的思路。在三年的生产使用中,其保持了小于10毫秒的第95百分位延迟和大于99.999%的可用性。传统的RBAC及ABAC的策略均采用关系数据库的方法,在处理策略时使用多表查询,效率较低,而ReBAC基于图的方法,使用图数据库,且策略修改非常方便,所以,效率非常高。

dotNET跨平台 840

基于关系的访问控制(ReBAC)研究与Go语言实现

ReBAC 以关系图为核心,能够自然地表达复杂的协作与共享场景,成为现代访问控制的重要方向。如何在大规模系统中高效存储和查询关系图;如何优化复杂关系推理的性能;如何在多租户与跨域环境下保证安全性与可扩展性。图数据库支持缓存与索引(减少重复搜索);策略语言(对关系进行逻辑组合)。未来,ReBAC 有望与 RBAC、ABAC 相结合,形成更通用的混合模型,满足云计算和 Web3 时代的访问控制需求。

m0_51964431的博客 915

用户系统的架构设计与实现策略(二)

构建现代应用系统的用户权限设计需要综合考虑RBAC、ABAC和ReBAC三种主流模型。RBAC(基于角色)适合组织架构清晰的场景,但存在权限粒度粗、角色爆炸等问题;ABAC(基于属性)通过动态属性判断提供精细控制,但复杂度高;ReBAC(基于关系)则擅长处理实体间的关联权限。实际应用中,多数系统会混合使用这三种模型:RBAC作为基础框架,ABAC处理动态权限,ReBAC管理数据关系。

zhangxin09的专栏 1203

权威指南:企业级文档权限管理架构深度解析——从 ACL 到 RBAC 及未来的演进

摘要 本文系统探讨了企业文档权限管理的技术演进与核心机制。从基础权限三要素(主体、客体、操作)出发,深入剖析了ACL与RBAC两大模型的原理及实现:NTFS通过安全描述符和ACE实现精细控制但面临管理复杂性;Linux ACL创新引入掩码机制;而RBAC通过角色抽象层解决了大规模权限管理难题。文章对比了不同模型在颗粒度、扩展性与管理成本间的权衡,揭示了现代企业权限体系从直接控制向间接管理的演进趋势,为零信任架构的实施提供了理论基础。

炼丹上岸 955

API 设计中的基于属性访问控制(ABAC):细粒度授权模型的原理、策略与落地实践

> 导读:本文以 developer-roadmap 仓库中 [ABAC 主题文档](https://link.gitcode.com/i/e417c0f0bcb83877c705d3182933ec4d) 为核心,系统讲解 Attribute Based Access Control(ABAC,基于属性访问控制)在 API 设计中的应用。你将理解 ABAC 的四大属性维度、与 RBAC 的差异、

gitblog_00385的博客 950

RBAC/ABAC 实战:企业权限模型设计与最小权限

某制造企业因权限管理失控,导致客户数据泄露。根源在于依赖“复制权限集”模式,未实现权限可视化与审计闭环。文中揭示权限管理四大核心问题,剖析RBAC模型在角色爆炸下的局限,并引入ABAC实现动态、上下文感知的细粒度控制。通过五张表构建最小可用RBAC模型,强调权限编码规范、四类权限分离与有效权限视图的重要性。最终提出“混合模型+审计闭环”实战路径,结合AWS IAM案例,给出可落地的策略设计与检查清单,为复杂系统提供安全可控的权限治理方案。

数据知道的博客 328

如何为你的项目选择最佳的权限管理框架:3种模型终极指南

在当今云原生时代,身份与访问管理(IAM)已成为每个应用安全架构的核心支柱。无论你是开发新手还是资深架构师,理解不同的权限管理框架对于构建安全、灵活的访问控制系统至关重要。本文将为你深入解析RBAC、ABAC和ReBAC三种主流框架,并通过实战场景帮助你做出明智的选择。 ## 🤔 权限管理到底有多重要? 想象一下,你正在开发一个协作办公平台,需要控制不同用户对文档的访问权限。普通员工只能查看

gitblog_00369的博客 903

Warrant进阶指南:从策略定义到实时权限检查

Warrant是一款基于Google Zanzibar设计的高度可扩展、集中式细粒度授权服务,专为定义、存储、查询、检查和审计应用程序授权模型及访问规则而构建。作为关系型访问控制(ReBAC)引擎,它能灵活支持RBAC、ABAC和ReBAC等多种授权范式,帮助开发者轻松实现复杂的权限管理逻辑。 ## 深入理解Warrant的核心架构 Warrant的核心优势在于其基于Google Zanzib

gitblog_01022的博客 1065
上一篇: VLC播放器(国内)下载
下一篇: linux离线安装elasticsearch8.19.3
619008336
博客等级 码龄5年 33粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值