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的全自动流动返混实验系统能自动测定多釜反应器、单釜反应器和管式反应器的停留时间分布ÿ…...
【性能优化】安卓性能优化之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 等通信知识…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...
边缘计算网关提升水产养殖尾水处理的远程运维效率
一、项目背景 随着水产养殖行业的快速发展,养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下,而且难以实现精准监控和管理。为了提升尾水处理的效果和效率,同时降低人力成本,某大型水产养殖企业决定…...
