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

ReBAC是一种基于关系的访问控制模型,与传统的RBAC和ABAC模型相比具有更高的表现力、细粒度和灵活性。
它能够更准确地定义和管理用户的权限和角色,并且可以根据不同的业务领域进行定制。

在Agicap选择ReBAC的原因是为了提高安全性,并避免重复造轮子的情况发生。

特点:

  • ReBAC是一种新的授权管理范例,通过定义参与者和资源之间的关系来定义访问权限。
  • ReBAC具有灵活性、粒度细、领域驱动等特点,可以根据需要定义精确的授权。
  • ReBAC是一种集中化、安全的授权管理系统,可以快速有效地采取行动以应对漏洞和规则更改。

权限与角色定义:

  • 将“权限permissions”和“授权authorizations”视为同义词。
  • 在文献中,“permissions”通常用于指代更细粒度的权利,而“authorizations”则用于表征一组权利(更粗粒度)。
  • “角色”是permissions (细粒度)的分组(粗粒度)

因此,我们通常指的是定义和验证permissions权限的授权authorization 模型(有时使用角色的概念)。

ReBAC定义
ReBAC是基于关系的访问控制的缩写。这是一种新模型,其中参与者访问资源的授权是通过这些参与者和资源之间存在的关系来定义的

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

领域驱动:ReBAC 概念的简单性和低仪式感(一只手就能数完)使我们能以非常直接的方式表达我们领域中对授权管理有用的概念。授权模型和领域之间不存在阻抗失配。我们不再需要适应通用的、技术性的、"一刀切 "的安全术语,其他授权模型及其组、角色、ACL 等概念往往就是这种情况。

精细:与以前的 RBAC 模型(基于角色的访问控制)中的 "角色 "概念不同,ReBAC 的灵活性及其关系(如所需数量)允许定义非常精细和精确的授权。与角色不同的是,ReBAC 允许细粒度的授权。虽然这允许更精确的访问,但可能意味着应用程序需要执行更多的授权检查。这有问题吗?不会,实现方法就是为此目的而设计和优化的。

可组合性和通用性:使用 ReBAC 完全可以构建基于角色的系统(RBAC)(取决于想要创建的授权模型)。ReBAC 甚至是实现 RBAC 的最佳方式(稍后我们将了解原因)。

极其精确,表现力极强:其强大的语法允许对关系进行分层、反式处理,并可使用对关系的代数运算(如联合、交叉和差分)建立更复杂的模型。

集中化:目前所有的 ReBAC 实现都是集中式的(同时仍具有弹性和冗余性)。如果需要撤销授权、删除访问权限或在检测到漏洞时更改规则,这样就能快速有效地采取行动。这与修改分散在不同地点或代码中的授权管理系统形成鲜明对比。

安全:与所有现代安全系统一样,ReBAC 基于 "执行最小权限 "和 "默认拒绝 "原则。虽然可以表达相反的意思(不鼓励),但默认情况下不会授予任何访问权限或权利。

ReBAC从哪里来?
ReBAC的概念源于Carrie Gates博士在2006年发表的一篇研究论文,题为“ Web 2.0安全和隐私的访问控制要求”。随后,谷歌采用了这一概念,创建了名为“Zanzibar”的授权系统。Zanzibar 是Google 用于管理其所有产品(包括 YouTube、Google Docs、Google Drive、Google Cloud 等)访问权限的系统。

ReBAC之前是如何处理授权的?
在ReBAC之前,我们行业还有其他授权模式,例如:

  • RBAC(基于角色的访问控制) :这是基于角色、权限和用户的粗粒度访问控制基于角色的模型在概念上仍然很有趣,但RBAC实现更加有限,因为它们不允许授权中的细粒度精度。这通常会导致每个角色背后的代码中存在隐式权限,或者需要额外的数据库或系统来单独存储细粒度的授权。
  • ABAC(基于属性的访问控制):ABAC,也称为基于策略的访问控制,定义了一种访问控制范例,其中基于使用结合属性向用户授予访问权限(想想这些作为标签)。ABAC允许表达一组复杂的规则,以根据属性的存在或不存在来评估访问。虽然丰富,但它比ReBAC更复杂且更少领域驱动,这意味着它是一个更以通用术语为中心的规范模型,需要适应不同的业务领域。
  • NIH(非此处发明综合症):这是指人们喜欢重新发明轮子并手动处理本地关系数据库。一般来说,强烈建议不要重新发明安全措施,授权管理也不例外。

开源项目:https://github.com/openfga

OpenFGA 是一个高性能且灵活的授权/许可引擎,专为开发人员构建,并受到Google Zanzibar的启发。它将强大的基于关系的访问控制 (ReBAC)和基于属性的访问控制 (ABAC)概念与特定于领域的语言相结合,可以轻松地制定授权和许可解决方案,这些解决方案可以针对任何规模的任何用例进行扩展和发展。

OpenFGA最初由Auth0/Okta开发,并 于2022年9月14日捐赠给云原生计算基金会,目前处于毕业的Sandbox级别。

为什么集中授权很重要?
将您的授权逻辑和决策集中到单个服务中,该服务可以灵活地处理不同产品的用例,从而为您带来明显的优势:

  • 更快地交付:您将能够更快地交付功能和产品,因为系统应该可以轻松扩展以满足新的需求。
  • 简化授权策略审核:明确的授权规则更容易被内外部各方审核。
  • 简化访问控制审核:授权服务为所有开箱即用的操作(读取和写入)生成日志
  • 降低运营成本:拥有单一授权系统使管理更简单。
  • 切换团队更简单:开发人员可以使用相同的授权概念和 API,无论他们在哪个团队工作。

https://www.jdon.com/71283.html

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

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

相关文章

Flink 输出至 Redis

【1】引入第三方Bahir提供的Flink-redis相关依赖包 <!-- https://mvnrepository.com/artifact/org.apache.bahir/flink-connector-redis --> <dependency><groupId>org.apache.bahir</groupId><artifactId>flink-connector-redis_2.11</arti…

初中女教师退休年龄是多少岁

“时光荏苒&#xff0c;岁月如梭。作为老师的你&#xff0c;是否已经开始思考自己的退休生活&#xff1f;是悠然自得地享受晚年&#xff0c;还是继续在教育的道路上发光发热&#xff1f;而无论你的选择如何&#xff0c;了解退休年龄的规定都是你规划未来的重要一环。 女教师的退…

面向-对象的三大原则

面向-对象的三大原则 一、介绍二、面向-对象三、三大原则1.单一职责原则&#xff1a;2.开放-封闭原则3.依赖倒转原则 总结&#xff1a; 一、介绍 最近看了一篇关于面向对-象的原则的文章&#xff0c;感觉有所收获&#xff0c;然后我把这几个原则总结一下&#xff0c;希望能提升…

nginx+lua+redis实践

nginxluaredis实践 1.概述 nginx、lua访问redis的三种方式&#xff1a; HttpRedis模块。 指令少&#xff0c;功能单一&#xff0c;适合简单的缓存。只支持get 、select命令。 HttpRedis2Module模块。 功能强大&#xff0c;比较灵活。 lua-resty-redis库 OpenResty。api…

史上最详细的JAVA学生信息管理系统(MySQL实现)

一、项目介绍 为了巩固Java的学习写了一个基于MVC设计模式的学生管理系统。 简单介绍一下MVC设计模式&#xff1a; 1、M也就是Model 模型层&#xff08;也叫数据层&#xff09;主要是通过这个类来进行数据的操作。 2、V是Views 视图层&#xff0c;主要就是来显示页面信息。 3、…

开发辅助一(网关gateway+ThreadLocal封装用户信息+远程调用+读取配置文件+统一异常处理)

网关gateway模块 ①、配置文件&#xff0c;添加各个服务模块的路由路径 gateway:routes:-id: server-cart #微服务名称uri: lb://service-cart #负责均衡predicates:- Path/api/order/cart/**ThreadLocal ①、定义一个工具类 public class AuthContextUtil{private static…

新奇性搜索(Novelty Search,NS)

新奇性搜索&#xff08;Novelty Search&#xff0c;NS&#xff09;是一种基于进化算法的搜索优化方法&#xff0c;它通过追求新颖性来引导进化过程&#xff0c;而不是仅仅追求目标函数的优化。这种方法的灵感来自于自然进化中的创新和多样性。通过发现新的行为模式&#xff0c;…

【Redis】缓存预热

目录 常见缓存Redis客户端设计缓存key缓存预热 常见缓存 ● Redis&#xff08;分布式缓存&#xff09; ● memcached&#xff08;分布式&#xff09; ● Etcd&#xff08;云原生架构的一个分布式存储&#xff0c;存储配置&#xff0c;扩容能力&#xff09; ● ehcache&#xf…

Facebook自动回复脚本编写教程

在数字时代&#xff0c;社交媒体已经成为人们交流和建立联系的重要渠道&#xff0c;Facebook作为全球最大的社交媒体平台之一&#xff0c;拥有数十亿的用户&#xff0c;为企业和个人提供了无限的社交可能性。 然而&#xff0c;对于企业和个人来说&#xff0c;在Facebook上保持…

脱壳后多dex文件合并进apk反编译

我们遇到加固后的apk&#xff0c;在脱壳后有很多dex文件&#xff0c;有时候我们只反编译有关键代码的dex会存在一些上下文代码找不到的情况&#xff0c;这时候我们需要多dex一起反编译&#xff0c;并且需要同步看看资源文件怎么办&#xff1f;&#xff1a; 我们可以把多dex塞回…

华为eNSP入门实验,Vlan配置,路由配置,用户模式,链路聚合

文章目录 一、同一交换机下的PC通信二、不交换机下的PC通信三、配置静态路由通信四、路由器rip协议配置五、路由器ospf协议配置六、单臂路由七、通过三层交换机使不同的Vlan能连通八、设备consolo密码模式九、设备consolo用户密码模式&#xff08;AAA模式&#xff09;十、Telne…

Centos7中KeepAlivedNginx高可用

Centos7中KeepAlived&Nginx高可用 一.部署前规划 角色操作系统IPmasterCentos7.8192.168.56.101backupCentos7.8192.168.56.102 二.keepalived安装 在两台机器上执行安装 yum install -y keepalived三.master角色配置&#xff08;192.168.56.101&#xff09; /etc/kee…

虚拟机服务器中了lockbit2.0/3.0勒索病毒怎么处理,数据恢复应对步骤

网络技术的不断发展也为网络威胁带来了安全隐患&#xff0c;近期&#xff0c;对于许多大型企业来说&#xff0c;许多企业的虚拟机服务器系统遭到了lockbit2.0/3.0勒索病毒攻击&#xff0c;导致企业所有计算机系统瘫痪&#xff0c;无法正常工作&#xff0c;严重影响了企业的正常…

Python能做大项目(6)Poetry -- 项目管理的诗和远方之一

[Poetry] 是一个依赖管理和打包工具。Poetry 的作者解释开发 Poetry 的初衷时说&#xff1a; 通过前面的案例&#xff0c;我们已经提出了一些问题。但不止于此。 当您将依赖加入到 requirements.txt 时&#xff0c;没有人帮你确定它是否与既存的依赖能够和平共处&#xff0c;这…

电脑监控软件排行榜(电脑监控软件隐藏安装)

在当今数字化时代&#xff0c;电脑已经成为我们工作、学习和生活中不可或缺的工具。然而&#xff0c;随着电脑使用的普及&#xff0c;电脑监控软件也逐渐浮出水面。这类软件可以对电脑进行全方位的监控和管理&#xff0c;保护电脑安全、提高工作效率。 本文将为您介绍电脑监控…

Unity is running with Administrator privileges, which is not supported

Unity is running with Administrator privileges, which is not supported 如果还是弹出CMD窗口提示输入密码&#xff0c;但无法怎样都无法输入&#xff0c;请关闭窗口&#xff0c;然后右键快捷方式管理员运行一次。 ----------分割线---------- 为什么这样做&#xff1f; 很…

【译文】IEEE白皮书 6G 太赫兹技术的基本原理 2023版

第一章 简介 太赫兹波是介于微波和光波之间的光谱区域&#xff0c;频率从 0.1THz ~ 10THz 之间&#xff0c;波长在 3mm ~ 30μm 之间。提供大块连续的频带范围以满足对 Tbit/s 内极高数据传输速率的需求&#xff0c;使该区域成为下一代无线通信&#xff08;6G&#xff09;的重…

数字化时代的探索:学生为何对数据可视化趋之若鹜?

随着信息时代的迅猛发展&#xff0c;数据已经成为我们生活中不可或缺的一部分。而在这个数字化浪潮中&#xff0c;越来越多的学生开始关注数据可视化&#xff0c;这并非偶然。下面&#xff0c;我就从可视化从业者的角度出发&#xff0c;简单聊聊为什么越来越多的学生开始关注数…

在离线环境下也能展示地理空间数据?快来收下这份操作文档

《四维轻云-离线版》是一款操作简单、支持离线展示及编辑的地理空间数据离线管理平台。在《四维轻云-离线版》中&#xff0c;用户可以展示及编辑倾斜模型(.osgb)、激光点云(.las)、正射影像(dom)、数字高程模型(dem)、矢量数据(shp)、人工模型&#xff08;.obj、.dae、.fbx&…

Midjourney V6 引爆社交媒体,AI图像与照片的差别消失;LangChain的2023AI发展状况总结

&#x1f989; AI新闻 &#x1f680; Midjourney V6 引爆社交媒体&#xff0c;AI图像与照片的差别消失 摘要&#xff1a;Midjourney V6 第二次社区评价震惊网友&#xff0c;神图细节逼真&#xff0c;光影效果逆天&#xff0c;皮肤质感细腻&#xff0c;已超越昨日版本。V6即将…