82、基于规则和 OWL 与 F-Logic 的角色供应框架

基于规则和 OWL 与 F-Logic 的角色供应框架

1. 引言

在访问控制领域,供应是为目标系统准备权限的持续过程,通常由规则驱动,目标系统会通过 RBAC、MAC 或 DAC 等访问策略机制来执行这些权限。同时,供应也是数字身份生命周期管理的重要组成部分,众多软件供应商已推出身份管理解决方案。OASIS 供应服务技术委员会定义了基于 XML 的 SPML 语言用于交换用户、资源和服务供应信息,但提供符合组织安全策略的供应请求仍是一大挑战。

一些供应框架引入 RBAC 以抽象用户 - 角色和角色 - 权限分配,但在元级别应用 RBAC 存在角色爆炸风险,增加管理成本。Al - Kathani 等人提出一种语言来定义用户属性表达式以动态分配用户角色,Ni 等人则提出基于监督学习的方法自动发现分配规则。然而,现有方法无法充分表达复杂的分配规则,也未将 RB - RBAC 作为供应元模型并研究将元模型事实转换为具体供应操作的算法。

本文开发了一个具有表达性和扩展性的供应框架,其贡献如下:
- 扩展 RBAC 模型,使其成为基于角色供应的元模型。
- 使用 Web 本体语言(OWL)将扩展后的 RBAC 元模型形式化为本体。
- 结合 OWL 和 F - Logic,提出复杂的供应规则定义和推理机制。
- 描述将供应元模型通过规则推断出的供应事实转换为具体 SPML 供应操作的机制。

2. RBAC 本体及扩展
2.1 本体

本体是描述和形式化领域概念、关系及其他区别的合适方法。Web 本体语言(OWL)是 W3C 标准的知识表示语言家族,基于描述逻辑(DL),因其广泛应用和接受度,得到许多软件项目和供应商的支持。DL 可对领域概念进行特征化和术语形式化,并能表达进一步的限制和规范,强调从显式知识库中推断隐式知识。

2.2 动机场景

为展示框架的可行性并说明扩展 RBAC 的必要性,引入金融领域的场景。一家虚构公司按成本中心进行结构划分,每个成本中心需定义年度预算和至少两名负责人,员工属于至少一个成本中心,员工产生的成本分配到所属成本中心,成本分配需至少一名负责人批准,负责人需“成本分配批准者”角色。首席财务官制定了以下政策:
1. 每个成本中心的所有分配成本总和不得超过分配预算的 110%。
2. 有三种成本分配批准者(CAA)角色:
- CAA 受限:批准成本 ≤ 10,000。
- CAA 中等:10,000 < 批准成本 ≤ 100,000。
- CAA 不受限:批准成本 > 100,000。
3. 根据成本中心可用预算,为负责人授予或撤销最合适的 CAA 角色,且不得违反上述规则。

显然,RB - RBAC 无法表达这些规则,因其无法指定基数、聚合和算术表达式,属性表达式仅针对单个类,不能使用相关类的属性。因此,需要一个能处理 RBAC 模型及其扩展并能表达复杂分配规则的框架。

2.3 RBAC 扩展

上述场景表明需要扩展 RBAC 模型,添加目标、人员和上下文类。以下是 RBAC 模型及其扩展元素的形式化规范:
| 类 | 描述 |
| — | — |
| 目标(Target) | 代表供应目的地或端点,如系统、应用程序、服务等。 |
| 用户(User) | 代表在目标上执行操作的主体,每个用户类有且仅有一个目标。 |
| 权限(Permission) | 代表在目标上执行安全相关操作的授权,每个权限类有且仅有一个供应目标。 |
| 角色(Role) | 代表用户的角色,有多个权限,可明确允许或禁止权限,通过 hasSubRoles 属性表示角色层次结构。 |
| 人员(Person) | 代表人类及其特征,可属于一个或多个上下文,可拥有一个或多个属于具体目标的用户账户。 |
| 上下文(Context) | 代表领域内对制定策略规则至关重要但因复杂无法存储为现有实体属性的信息,可形成层次结构。 |

以下是 RBAC 本体及扩展的关系图:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(Person):::process -->|hasContext| B(Context):::process
    A -->|hasUser| C(User):::process
    C -->|hasRole| D(Role):::process
    D -->|hasPermittedPermission| E(Permission):::process
    D -->|hasProhibitedPermission| E
    C -->|hasTarget| F(Target):::process
    E -->|hasTarget| F
3. 基于角色的供应规则框架

以形式化描述的 RBAC 本体为起点,提出的供应规则表达框架不仅具备 RB - RBAC 规则表达能力,还能明确指定类关系量词和基数、定义值列表的聚合以及确定规则条件中的算术表达式。该框架允许在任何元模型类上定义属性表达式并通过逻辑组合形成规则,克服了 RB - RBAC 仅允许在单个用户类上定义属性表达式的限制。

供应框架由以下部分组成:
1. OWL 部分 :使用 Protégé 对扩展后的 RBAC 本体进行建模和存储,并使用 OWL 推理器(如 Pellet)进行推理。
2. F - Logic 部分 :逻辑编程环境 FLORA - 2 提供 F - Logic 推理引擎,为框架添加仅靠 OWL 推理器无法实现的规则推理能力。
3. 控制器部分 :供应规则控制器监督整个推理过程,启动所需的知识表示转换,并从元模型推断 SPML 供应操作。

以下是供应规则框架的架构图:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(Protégé - OWL 4.x):::process -->|OWL API| B(Protégé - Reasoner Manager):::process
    B -->|OWL DL Reasoner (Pellet)| C(Provisioning Rule Controller):::process
    C -->|OWL / F - Logic Translator| D(FLORA - 2 Console):::process
    D -->|FLORA - 2: Query & Inference Engine| E(F - Logic Knowledge Base):::process
    A -->|OWL Knowledge Base| C
    C -->|Actual State| F(SPML Provisioning Service Provider(s)):::process
    F -->|Target State| G(SPML Operations):::process
3.1 OWL DL

使用 OWL DL 公理可自然地扩展现有基础本体以满足特定场景需求。可通过 OWL 类继承定义层次关系,通过引用属性指定类关系,还能对类施加约束,如指定域、范围、量词和基数。以下是动机场景中的条件在 OWL DL 中的表达:
| 条件 | DL 公理 |
| — | — |
| CI(成本中心是人员可所属的上下文) | CostCenter ⊑ Context |
| CII(成本中心可能有成本分配) | CostCenter ⊑ ∀hasCosts.xsd : decimal |
| CIII(成本中心必须有预算) | CostCenter ⊑ ∀hasBudget.xsd : decimal ⊓ ∃hasBudget.xsd : decimal |
| CIV(成本中心必须有多个负责人,且只有人员可以是有效负责人) | CostCenter ⊑ ∀hasResponsible.Person ⊓ ∃hasResponsible.Person ⊓ ≥2 hasResponsible |
| CV + CVI(成本中心负责人可将责任委托给他人,被委托者也成为负责人) | hasDelegate+ ⊑ hasDelegate;CostCenterResponsible ⊑ ∀hasDelegate.Person ⊓ Person ⊓ (∃isResponsible.CostCenter ⊔ ∃isDelegate.CostCenterResponsible) |

以下是成本中心相关本体扩展的可视化图:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(Person):::process -->|hasDelegate| B(Cost Center Responsible):::process
    B -->|isDelegate| A
    A -->|hasResponsible| C(Cost Center):::process
    C -->|isResponsible| B
    C -->|hasCost| D(Cost):::process
    C -->|hasBudget| E(Budget):::process
    C -->|is a subclass of| F(Context):::process
3.2 OWL DL 推理

用 OWL DL 描述的本体可由推理器进行计算。OWL DL 推理器的关键服务包括语法和一致性检查,可根据本体类定义验证类是否可能有实例,无法有实例的类被标记为不一致。此外,推理器还具备子类测试功能,可计算完整的类层次结构。在框架中使用 OWL DL 推理器 Pellet,推理过程会构建一个推断知识库。

3.3 供应规则控制器

为进一步处理 OWL DL 推理器的输出,引入供应规则控制器。其目的是监督整个推理过程,当知识库发生变化时,控制器会启动新的推理迭代。为支持未来扩展其他推理器,控制器利用 Protégé - OWL 推理包的推理器管理器。

3.4 F - Logic 部分

FLORA - 2 作为逻辑编程环境,为供应规则框架提供了额外的规则推理能力。它补充了仅靠 OWL 推理器无法实现的功能,使得框架能够处理更复杂的规则和逻辑。例如,在处理一些涉及复杂业务逻辑和动态规则的场景时,FLORA - 2 可以通过其 F - Logic 推理引擎进行高效的推理。

以下是 F - Logic 在框架中的主要作用:
1. 复杂规则处理 :能够处理包含复杂条件和逻辑关系的规则,如涉及多个类和属性之间的复杂交互。
2. 动态规则推理 :支持动态规则的推理,根据实时数据和变化的条件进行规则的评估和执行。
3. 与 OWL 协同工作 :与 OWL 部分相互配合,共同完成整个供应规则的推理过程。

3.5 F - Logic 规则示例

为了更好地理解 F - Logic 在框架中的应用,下面给出一个简单的 F - Logic 规则示例:

假设我们有一个规则,当某个成本中心的已分配成本超过预算的 110% 时,需要对该成本中心的负责人进行警告。以下是对应的 F - Logic 规则:

% 定义成本中心类
@class CostCenter[
    hasBudget: decimal,
    hasCosts: decimal
].

% 定义成本中心负责人类
@class CostCenterResponsible[
    responsibleFor: CostCenter
].

% 规则:当成本中心的已分配成本超过预算的 110% 时,发出警告
CostCenterResponsible[r] :- 
    CostCenter[c], 
    c.hasCosts > c.hasBudget * 1.1, 
    r.responsibleFor = c.

在这个规则中,首先定义了 CostCenter CostCenterResponsible 两个类及其属性。然后,规则通过条件判断 c.hasCosts > c.hasBudget * 1.1 来确定成本中心是否超预算,如果超预算,则将对应的负责人标记出来。

3.6 F - Logic 与 OWL 的协同

F - Logic 和 OWL 在供应规则框架中协同工作,各自发挥优势。OWL 主要用于本体的建模、存储和基本的推理,如类层次结构的计算和一致性检查。而 F - Logic 则专注于处理复杂的规则和动态逻辑。

两者的协同过程如下:
1. 数据交互 :OWL 推理器处理后的知识会传递给 F - Logic 推理引擎,F - Logic 可以基于这些知识进行进一步的规则推理。
2. 规则互补 :OWL 无法处理的复杂规则由 F - Logic 来完成,两者相互补充,共同实现整个供应规则的推理。
3. 结果反馈 :F - Logic 推理的结果可以反馈给 OWL 部分,用于更新本体和进一步的推理。

4. 转换为 SPML 操作

供应规则框架的最终目标是将从元模型推断出的供应事实转换为具体的 SPML 供应操作,以实现对目标系统的权限供应。以下是具体的转换机制和步骤:

4.1 转换机制

转换机制基于供应规则控制器,它会根据推理得到的供应事实,生成符合 SPML 规范的请求。具体来说,控制器会将元模型中的用户 - 角色分配、角色 - 权限分配等信息转换为 SPML 中的请求和响应格式。

4.2 转换步骤

转换过程可以分为以下几个步骤:
1. 事实提取 :从推断知识库中提取与供应相关的事实,如用户 - 角色分配、角色 - 权限分配等。
2. 格式映射 :将提取的事实映射到 SPML 的请求格式中,包括请求的类型(如创建、更新、删除等)和相关的参数。
3. 请求生成 :根据映射结果生成符合 SPML 规范的请求,并发送给 SPML 供应服务提供商。
4. 响应处理 :接收 SPML 供应服务提供商的响应,并根据响应结果更新知识库和系统状态。

以下是一个简单的转换步骤表格:
| 步骤 | 描述 |
| — | — |
| 事实提取 | 从推断知识库中提取用户 - 角色、角色 - 权限等供应相关事实 |
| 格式映射 | 将事实映射到 SPML 请求格式,确定请求类型和参数 |
| 请求生成 | 生成符合 SPML 规范的请求并发送 |
| 响应处理 | 接收响应,更新知识库和系统状态 |

5. 总结

本文提出的基于规则和 OWL 与 F - Logic 的角色供应框架,为解决现有供应框架中存在的问题提供了有效的解决方案。通过扩展 RBAC 模型并将其形式化为本体,结合 OWL 和 F - Logic 的优势,框架能够表达复杂的用户 - 角色分配规则,并实现有效的规则推理。同时,通过将推理得到的供应事实转换为 SPML 操作,框架可以为目标系统提供符合组织安全政策的权限供应。

以下是框架的主要优势总结:
1. 复杂规则表达 :能够表达复杂的用户 - 角色分配规则,克服了现有方法的局限性。
2. 规则推理能力 :具备强大的规则推理能力,包括 OWL DL 推理和 F - Logic 推理。
3. SPML 支持 :支持将供应事实转换为 SPML 操作,实现与目标系统的有效交互。
4. 扩展性 :框架具有良好的扩展性,可根据不同的场景和需求进行定制和扩展。

未来,该框架可以在更多的领域和场景中进行应用和验证,进一步完善其功能和性能。同时,可以探索与其他技术和标准的集成,以提高框架的通用性和适用性。

一种基于有效视角点方法的相机位姿估计MATLAB实现方案 该算法通过建立三维空间点二维图像点之间的几何对应关系,实现相机外部参数的精确求解。其核心原理在于将三维控制点表示为四个虚拟基点的加权组合,从而将非线性优化问题转化为线性方程组的求解过程。 具体实现步骤包含以下关键环节:首先对输入的三维世界坐标点进行归一化预处理,以提升数值计算的稳定性。随后构建包含四个虚拟基点的参考坐标系,并通过奇异值分解确定各三维点在该基坐标系下的齐次坐标表示。接下来建立二维图像点三维基坐标之间的投影方程,形成线性约束系统。通过求解该线性系统获得虚拟基点在相机坐标系下的初步坐标估计。 在获得基础解后,需执行高斯-牛顿迭代优化以进一步提高估计精度。该过程通过最小化重投影误差来优化相机旋转矩阵平移向量。最终输出包含完整的相机外参矩阵,其中旋转部分采用正交化处理确保满足旋转矩阵的约束条件。 该实现方案特别注重数值稳定性处理,包括适当的坐标缩放、矩阵条件数检测以及迭代收敛判断机制。算法能够有效处理噪声干扰下的位姿估计问题,为计算机视觉中的三维重建、目标跟踪等应用提供可靠的技术基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值