评估 XACML 3.0 组合算法

Evaluate XACML 3.0 combining algorithms

我正在研究 XACML 3.0 访问控制,我发现了这个关于评估 XACML 3.0 组合算法的复杂问题。我可以解决一个简单的练习,但这对我来说很难,我需要一些帮助

政策 p1: - 操作:允许覆盖

政策 p2:

政策 p3:

为每个策略评估以下请求 q1、q2 和 q3:

仅使用 P1 的评估结果

  • q1 = {(组,人员),(资源,文件 1),(时间,日期)}
    • 响应:允许。 P1 中的第一条规则开始运行,合并算法使流程停在那里。一天中的时间对决策没有影响。
  • q2 = {(group, student), (resource, file2), (time, night)}
    • 响应:允许。 P1 中的第二条规则开始生效,合并算法使流程停在那里。同样,一天中的时间对决策制定没有影响。
  • q3 = {(组,员工),(资源,文件 1)}
    • 响应:允许。这与q1基本相同。

仅使用 P2 的评估结果

  • q1 = {(组,人员),(资源,文件 1),(时间,日期)}
    • 响应:允许,因为白天允许所有访问。 P2 中的规则 1 不适用。规则 2 授予访问权限。
  • q2 = {(group, student), (resource, file2), (time, night)}
    • 响应:拒绝,因为夜间所有访问都被拒绝。 P2 中的规则 1 适用。组合算法使得处理在规则 1 之后停止。
  • q3 = {(组,员工),(资源,文件 1)}
    • 响应: 不适用。这两个规则仅在指定了一天中的时间时才会触发,而在此请求中并非如此。因此评估以 NotApplicable 结束。

使用 P3(P1 和 P2 的组合)的评估结果

  • q1 = {(组,人员),(资源,文件 1),(时间,日期)}
    • 响应:允许访问,因为允许工作人员在白天查看 file1。
  • q2 = {(group, student), (resource, file2), (time, night)}
    • 响应: 无论学生试图查看什么,访问都被拒绝。在这种情况下,由于 P3 中的过度组合算法(拒绝覆盖),夜间策略胜过所有其他策略。
  • q3 = {(组,员工),(资源,文件 1)}
    • 响应:允许访问,因为允许工作人员查看 file1 且未指定时间。

备注

不需要在白天授予访问权限的策略。事实上,它甚至可能会打开您不想拥有的访问权限。例如,根据现行政策,学生可以在白天编辑自己的考试成绩。

除了涉及规则目标的两个案例缺少 MustBePresent 设置为 true 的属性外,其他答案很详细且基本正确。

此答案中只会解决这些情况。

策略 p2 - 请求 q3

  • 规则:如果全部匹配则拒绝:时间 [MBP] = 夜晚 -> 不确定{D} 因为缺少时间属性且 MustBePresent = true 并且规则效果为拒绝
  • rule: permit if match all: time [MBP] = day -> Indeterminate{P} 因为类似的原因
  • op:denyOverrides -> 不确定{DP}

评估结果不确定{DP}

policyset p3 - 请求 q3:

  • 政策 p1
    • 规则:如果全部匹配则允许:组 = 员工,资源 = 文件 1 -> 允许
    • op:permitOverrides -> 无论任何其他规则的结果如何都允许
  • policy p2 -> Indeterminate{DP} 如前例所述
  • op:denyOverrides -> 不确定{DP}

评估结果不确定{DP}

参考资料

XACML 3.0 规范包含您理解所需的所有详细信息