当前位置: 首页 > news >正文

NGAC访问控制系列三:低代码产品NGAC运用与算法运用

目录

一、基于NGAC的低代码模型权限管理方案

二、多策略访问控制系统限制内部访问的线性时间算法

1、概述

2、权限控制图遍历算法


一、基于NGAC的低代码模型权限管理方案

NGAC在低代码平台的权限决策模型:功能权限+数据权限

案例:对于七巧低代码开发平台,主策略组里有两个策略类:功能权限数据权限。功能权限策略类,定义用户可以按照RBAC操作。数据权限类,定义用户能访问哪些开发平台资源。

推进方案

1、针对七巧应用配置策略。可配置全局应用策略,也可以配置单独应用的策略。

2、开放策略类定义、策略定义给用户。

3、初期,用户能配置的用户属性、资源属性限制在小范围内,避免性能要求太高,影响系统运行。

4、后期,随着对NGAC的理解加深和用户业务场景深入,逐步增加可配置属性。

需要解决的问题(使用场景):

1、用户u1,是否允许在对象o1上执行操作op1

2、用户u1可以访问对象的集合是什么,能对每个对象执行什么操作

3、哪些用户可以访问到对象o1,这些用户能对对象o1执行什么操作

4、审计—访问控制可视化(权限控制图展示)

为解决上述问题,我们学习了ANSI推出的一个权限控制算法。

二、多策略访问控制系统限制内部访问的线性时间算法

1、概述

美国国家标准协会(ANSI)通过标准化一种交流过程控制方法,即下一代访问控制(NGAC)[2,3],已经解决了这一需求。NGAC源于并与策略机器(PM)[11]保持一致,这是美国国家标准与技术研究所(NIST)的一项研究工作,旨在开发一个基于通用属性的访问控制(ABAC)框架[13]。NGAC旨在实现在单个访问控制机制中同时实例化多个访问控制策略,从而实现统一的访问控制决策和用户访问功能的重新­视图。关于如何使用NGAC来执行DAC、MAC、RBAC和中国墙政策的例子可以从[10]获得。NGAC规范描述了使用集理论符号构成有效实现,但没有提供实现指导。这种方法为多种相互竞争的方法和实现留下了空间。虽然合适,但这就留下了一个重要的问题,即NGAC是否可伸缩。在这项工作中,我们发现现有的参考实现是低效的(使用三次算法),这表明NGAC可能是不可扩展的。主要的NGAC参考模型版本1.5 [20]只能扩展到一个包含几百个节点的测试模型,此时需要几分钟来可视化只有一个用户可用的对象集。回答NGAC的这个可伸缩性问题是至关重要的,因为NGAC是唯一一种可用的访问控制方法,可以同时为多个访问控制策略的实例化提供有效的决策和审查。

唯一可用的其他多策略访问控制方法是当前的市场领导者,即来自OASIS [22]的可扩展访问控制标记语言(XACML)标准[21]。其他相关的基于逻辑的策略ABAC模型(没有引用实现或不是多策略)包括ABACα [13]、HGABAC [26]和ABAC for Web服务[29]。XACML已经被经验证明缺乏可伸缩性在[27]3不同的XACML实现所有经验每­性能问题在访问控制决策的性能下降随着策略数量的增加(XACML中的每个策略包含一组目标对象的访问规则)。此外,所有这些基于逻辑的策略ABAC模型都被证明是np完备的,它们只需确定用户访问特定资源[7]所需的访问属性(映射到可满足性问题)。因此,这些方法不能满足我们所说的对一个同时提供有效决策和审查的多政策系统的需要。因此,在确保限制内部人员访问敏感数据,以避免内部人员泄露信息方面,它们对于大型企业系统来说是不可取的。

在这项工作中,我们通过为访问控制决策和用户访问权限的审查提供线性时间算法,证明了NGAC是可扩展的。为了提供高效的决策能力,我们从图论的观点设计了一种有效的访问控制确定算法。我们首先将NGAC集理论转换为图表示(这很简单,因为规范本身经常使用图来说明示例)。不幸的是,合成的图表上有不寻常的特性和约束(有五种不同类型的节点,每种节点都有自己的语义)。因此,主要的挑战是如何将标准的图算法应用到这种表示中。我们的解决方案通常是使用宽度第一搜索(BFS)和深度第一搜索(DFS)变量执行一种拓扑排序原始操作,允许我们级联信息从一种类型的节点到另一个和渗透信息通过图,直到最终的答案。多次搜索的摊摊成本可以显示是线性的,从而产生线性时间复杂度算法。此外,它与整个访问控制图不是线性关系,而仅仅是与特定用户相关的图的部分。这可以提供更大的加速,避免甚至需要遍历整个图。

2、权限控制图遍历算法

使用NGAC规范[3]集理论定义,我们可以形成如下的访问控制图。需要创建5种类型的节点:用户(u) 、对象(o)、用户属性(ua)、对象属性(oa)和策略类(pc)。所有边都是定向的。根据每个规范,所有对象节点都是对象属性节点,但可能存在一个不是对象的对象属性。对象属性节点可能具有到oa节点和pc节点的边。但是,没有一个对象属性节点可以指向对象节点。用户节点是具有边到ua节点的源。用户属性节点可能具有到ua、oa或pc节点的边2.策略类节点是接收节点。禁止进行循环和自循环。对象属性的用户属性的边缘被标记为a一个或多个允许的操作(操作)(例如读取或写)。所有其他边都未标记。所有节点必须有至少一个pc节点的路径(不使用任何亚→o边)。为了达到复杂度评估的目的,u、o、ua和oa节点的数量是无界的。然而,假设pc节点的数量和ops集的基数是较小的常数。

这些连接性限制导致了我们可以利用的几个特性。整个图是一个有向无环图(DAG),它可以分为两个DAG:一个用户DAG(带有u和ua节点)和一个对象DAG(带有o和oa节点)。u个节点集作为用户DAG的源,o个节点集作为对象DAG的源。ua到oa边缘的集合桥接两个dag,这座桥是唯一一个标记边缘的地方,有操作(ops)。我们将这些桥接边两侧的节点集称为边界节点。pc节点集作为两个dag的接收器。所得到的整体图是弱连通的。现在可以表示一个任意的访问控制图,如图1所示。集合内的箭头表示该类型的节点可以有到该类型的其他节点的边,不允许循环。这意味着在pc节点集合中的节点之间没有边(u节点的集合和o节点的集合也是如此)。从ua节点集到oa节点,节点的箭头表示桥的边(它们包含ops标签,并连接用户和对象的dag)。桥边是确定用户权限的焦点(请参见下面的定义1)。

对于用户,u1,执行操作,操作1,对某个物体,o1,必须存在一组具有标签op的ua到oa边

缘1这样每条边的尾巴都能从u处到达1每个边的头都可以从o到达1其中,从头节点集可达的pc节点集是从o可达的pc节点集的超集1. 此定义有三个数据收集组件:

1、确定“活动的”ua到oa桥的边缘。这是具有标签op的桥接边缘集1以及从你可以到达那里的尾

巴1并且头部可以从o连接到1.这些活动的边缘是使u1可能有特权的操作1在o上1.

2、确定从每个活动桥边的头部可到达的pc节点集。这些pc节点的联合是op的“覆盖”策略类的

集合1.

3、确定从o中可访问的pc节点集1.这些是“需要”要被覆盖的策略类。

点点关注,下期精彩继续。

道一云七巧-与你在技术领域共同成长

更多技术知识分享:https://bbs.qiqiao668.com/

相关文章:

NGAC访问控制系列三:低代码产品NGAC运用与算法运用

目录 一、基于NGAC的低代码模型权限管理方案 二、多策略访问控制系统限制内部访问的线性时间算法 1、概述 2、权限控制图遍历算法 一、基于NGAC的低代码模型权限管理方案 NGAC在低代码平台的权限决策模型:功能权限数据权限 案例:对于七巧低代码开发平台&…...

Unity3D 面试题收录

Unity3D 客户端面试题收录(持续更新~) 面试题收录 本文收录一些对于 Unity3D 客户端可能遇到的面试题(持续更新~),答案仅出于个人理解,如有偏差,希望指正。 Unity3D MonoBehaviour 生命周期…...

Jrebel热部署不生效解决

打开setting找到build底下的complier勾选 build project automatically 设置自动构建项目 打开setting找到Advanced Setting勾选Complier中的第一项 Jrebel panel中勾选需要热部署的项目模块 项目配置信息:Edit Configuration中进行编辑,配置如下图…...

软件测试学习笔记丨Selenium键盘鼠标事件ActionChains

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/22515 本文为霍格沃兹测试开发学社的学习经历分享,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ 说明:本篇博客基于sel…...

CI/CD(持续集成与持续交付)流水线

集成 Jenkins、GitLab Webhook、Nexus 和 RabbitMQ 可以形成一个全面的 CI/CD(持续集成与持续交付)流水线,结合消息队列可以创建事件驱动的工作流。以下是配置这四个工具以实现一个基本的 CI/CD 流程的详细步骤。 前置条件 Jenkins、GitLab、…...

分布式光伏发电有什么优劣势

分布式光伏发电是指在离电力消费地点较近的地方,通过安装光伏发电系统来发电。这种系统通常用于屋顶、地面或其他建筑物上,相比于集中式光伏发电系统,它有一些独特的优势和劣势: 优势: 地理适应性: 分布式…...

Spring Boot框架中的IO

1. 文件资源的访问与管理 在 Spring Boot 中,资源文件的访问与管理是常见的操作需求,比如加载配置文件、读取静态文件或从外部文件系统读取文件。Spring 提供了多种方式来处理资源文件访问,包括通过 ResourceLoader、Value 注解以及 Applica…...

DBeaver连接Hive教程

hive shell:通过hive shell来操作hive,但是至多只能存在一个hive shell,启动第二个会被阻塞,也就是说hive shell不支持并发操作。 基于JDBC等协议:启动hiveserver2,通过jdbc协议可以访问hive,hi…...

Vue-Router源码实现详解

1.Hash模式 hash就是url中#后面的部分hash改变时,页面不会从新加载,会触发hashchange事件,去监听hash改变,而且也会被记录到浏览器历史记录中vue-router的hash模式,主要是通过hashchange事件,根据hash值找…...

程序员节日的日期是10月24日‌程序员日

‌程序员节日的日期是10月24日。‌ 这一天被称为‌中国程序员日或‌1024程序员节,由‌博客园、‌CSDN等自发组织设立,旨在纪念程序员对科技世界的贡献。 程序员节日的由来和意义 1024程序员节的由来可以追溯到2010年,最初由网友提出设立一个…...

联邦学习中的数据异构性

在联邦学习(Federated Learning, FL)领域中, 异构数据(Heterogeneous Data) 是指不同客户端所持有的本地数据在特征分布、类别分布、数量等方面存在差异的数据。这种数据的异质性是联邦学习面临的一大挑战,…...

Python小程序 - 替换文件内容

1. 写入文件c:\a.txt 1)共写入10行 2)每行内容 0123456789 # 1 ls 0123456789 ln 10 with open("c:/a.txt", w,encodingUTF-8) as f:for i in range(ln):f.write(ls\n)######################################### 2 ln 10…...

k8s备份恢复(velero)

velero简介 velero官网: https://velero.io/ velero-github: https://github.com/vmware-tanzu/velero velero的特性 备份可以按集群资源的子集,按命名空间、资源类型标签选择器进行过滤,从而为备份和恢复的内容提供高度的灵活…...

LED户外屏:面对复杂环境的七大挑战

户外LED显示屏作为现代城市广告和信息传播的重要媒介,其应用范围越来越广泛。然而,与室内环境相比,户外环境的复杂多变对LED显示屏提出了更高的要求。本文将探讨户外LED显示屏在设计和应用过程中必须考虑的七个关键问题。 1. 高分辨率 户外LE…...

LabVIEW自动化流动返混实验系统

随着工业自动化的不断发展,连续流动反应器在化工、医药等领域中的应用日益广泛。传统的流动返混实验操作复杂,数据记录和处理不便,基于LabVIEW的全自动流动返混实验系统能自动测定多釜反应器、单釜反应器和管式反应器的停留时间分布&#xff…...

【性能优化】安卓性能优化之CPU优化

【性能优化】安卓性能优化之CPU优化 CPU优化及常用工具原理与文章参考常用ADB常用原理、监控手段原理监控手段多线程并发解决耗时UI相关 常见场景排查CPU占用过高常用系统/开源分析工具AndroidStudio ProfilerSystraceBtracePerfettoTraceView和 Profile ANR相关ANR原理及常见场…...

springboot二手图书交易系统-计算机设计毕业源码88413

目 录 摘要 1 绪论 1.1研究背景 1.2研究意义 1.3论文结构与章节安排 2 二手图书交易系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 二手…...

解决ElasticSearch启动成功却无法在浏览器访问问题

目录 前言: 问题复现 : 解决问题: 1、修改sysctl.conf文件 2、在sysctl.conf文件增加这段东西 3、 然后保存退出,输入以下命令使其生效 结语: 前言: 这篇文章是小白我今天突然启动es,发现e…...

稀土有色包芯线良好的导电性

稀土有色包芯线是一种结合了稀土元素和有色金属(如铜、铝、镁等)的特殊线材。以下是对稀土有色包芯线的详细介绍: 一、组成与结构 芯线:由稀土元素和有色金属组成的合金制成。稀土元素(如镧、铈、镁等)的添加量在一定范围内,以确保合金性能的…...

SIP 业务举例之 Call Forwarding Unconditional(无条件呼转)

目录 1. Call Forwarding Unconditional 简介 2. RFC5359 的 Call Forwarding Unconditional 信令流程 PS:Dialog 建立条件 Dialog 会话完全建立 3. Call Forwarding Unconditional 过程总结 博主wx:yuanlai45_csdn 博主qq:2777137742 想要 深入学习 5GC IMS 等通信知识…...

基于stm32的esp8266的WIFI控制风扇实验

实验案例WIFI控制风扇 项目需求 电脑通过esp8266模块远程遥控风扇。 项目框图 ​ 风扇模块封装 #include "sys.h" #include "fan.h"void fan_init(void) {GPIO_InitTypeDef gpio_initstruct;//打开时钟…...

java中的ScheduledExecutorService介绍和使用案例

ScheduledExecutorService 是 Java 并发包 java.util.concurrent 中的一个接口,它提供了一种机制,允许我们安排一个任务在给定的延迟后运行,或者定期地执行。 主要特点 单次调度:可以安排任务在一定的延迟后执行一次。周期性调度…...

4天涨粉14万!这个AI小众赛道粉丝涨疯了吧?保姆级教程免费教会你!

测一下你的搞钱灵敏度有多高,看下面两张截图,有没有发现什么异常值? 发现了吧? 第一张是10月17号截的,第二张是21号,4天时间粉丝从2.8万飙到16.6万,涨粉14万! 这个号我几天之前就发…...

RK3588 技术分享 | 在Android系统中使用NPU实现Yolov5分类检测

随着人工智能和大数据时代的到来,传统嵌入式处理器中的CPU和GPU逐渐无法满足日益增长的深度学习需求。为了应对这一挑战,在一些高端处理器中,NPU(神经网络处理单元)也被集成到了处理器里。NPU的出现不仅减轻了CPU和GPU…...

itext 转换word文档转pdf

itext 转换word文档转pdf <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version><scope>compile</scope></dependency> <dependency><groupId>org.a…...

WSL-默认root登录

WSL-默认root登录 使用管理员&#xff0c;打开powershell PS C:\WINDOWS\system32> wsl -l 适用于 Linux 的 Windows 子系统分发版: Ubuntu-22.04 (默认) PS C:\WINDOWS\system32> ubuntu2204.exe config --default-user root PS C:\WINDOWS\system32>修改之后&…...

ASIO网络调试助手之四:浅谈QTcpServer性能

网络上有些质疑Qt Network模块性能的声音,本文将从理论和压测两个方面对比ASIO tcp server和QTcpServer在Windows上的性能,最后给出结论。 一.理论 QTcpServer在Windows上的实现是基于select模型,源码位置:5.12.6\Src\qtbase\src\network\socket\qnativesocketengine_win…...

快手 日常实习一面面经

官网投递&#xff0c;三天约面 线上面试 &#xff08;60mins&#xff09;&#xff1a; 1. 自我介绍 2. 问实习 介绍自己做的业务上一段实习的公司框架和开源的 RPC 框架的区别负责的业务与核心业务的依赖关系场景题 -> 设计高并发下的负载均衡 3. 项目拷打 手写 双检锁…...

Cursor零基础小白教程系列 - 创建你的第一个Cursor 项目

最适合小白零基础的Cursor教程 网站lookai.top相同作者&#xff0c;最新文章会在网站更新&#xff0c;欢迎收藏书签 创建你的第一个Cursor 项目 实操视频 概述 开始使用Cursor进行编程的第一步是创建或导入一个项目。本指南将帮助您了解如何在Cursor中创建新项目、导入现有项…...

通用序列化和反序列化实现思路

本文简单的记录一下采用模板来实现序列化与反序列的思路&#xff0c; 同时采用C20标准的concept和requires来简化模板函数的选择。 首先了解一下自定义类支持序列化的两种方式&#xff1a; 一、序列化自定义类型&#xff08;侵入式&#xff09; struct Test {std::string na…...

深圳高端网站建设公司/搜索引擎优化的七个步骤

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全员-A证&#xff08;山东省-2021版&#xff09;考试资料是安全生产模拟考试一点通总题库中随机出的一套安全员-A证&#xff08;山东省-2021版&#xff09;&#xff0c;在公众号安全生产模拟考试一点通上点击安全员…...

网站移动字幕要怎么做/绍兴seo排名外包

Docker Hub目前Docker官方维护了一个公共仓库Docker Hub&#xff0c;其中已经包括了数量超过15000个镜像。大部分需求都可以通过在Docker Hub中直接下载镜像来使用。注册登录可以在https://hub.docker.com 免费注册一个Docker账号。在命令行执行docker login输入用户名及密码来…...

装修网站php源码/网站建设的公司

体验实验室简介阿里云开发者实验室&#xff0c;提供免费阿里云资源&#xff0c;丰富的云计算应用场景&#xff0c; Step by Step 完成云产品的体验阿里云体验实验室地址&#xff1a;https://developer.aliyun.com/adc/labs/教程介绍本教程将介绍如何搭建个人Leanote云笔记本。场…...

自己做网站怎么做/竞价培训

文件上传是很常见的实用功能。本文演示如何用Express实现文件上传功能。例程本例需要两个文件及一个目录test39.js&#xff1a;主程序&#xff1b;index.html&#xff1a;用于上传文件的前端页面&#xff1b;temp_folder&#xff1a;存放被上传的文件。test39.js&#xff1a;va…...

静态网站如何做自适应移动端/图片优化软件

72、EJB的角色和三个对象  一个完整的基于EJB的分布式计算结构由六个角色组成&#xff0c;这六个角色可以由不同的开发商提供&#xff0c;每个角色所作的工作必须遵循Sun公司提供的EJB规范&#xff0c;以保证彼此之间的兼容性。这六个角色分别是EJB组件开发者&#xff08;Ente…...

网站建设公司应该怎么转型/哪个公司做网站推广最好

-- Start 我们都知道数字可以进行加、减、乘、除等运算。那么&#xff0c;日期可不可以呢&#xff1f;答案是&#xff0c;日期只能进行加、减运算。 在开始操作日期之前&#xff0c;我们先了解一下 Oracle 支持哪些日期数据类型&#xff0c;如下所示&#xff1a; DATE TIM…...