当前位置: 首页 > 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 等通信知识…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

uniapp中使用aixos 报错

问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

es6+和css3新增的特性有哪些

一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...