评估XACML 3.0合并算法

时间:2019-01-08 00:03:04

标签: authorization access-control policy xacml abac

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

政策p1: -op:允许改写

  • 规则:如果全部匹配,则允许:group = staff,resource = file1

  • 规则:如果全部匹配,则允许:组=学生,资源= file2

  • 规则:如果匹配则拒绝:任何

政策p2:

  • op:拒绝覆盖

  • 规则:如果全部匹配,则拒绝:时间[MBP] =晚

  • 规则:如果全部匹配,则允许:时间[MBP] =天

政策p3:

  • op:拒绝覆盖

  • 策略:p1

  • 策略:p2

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

  • q1 = {(组,员工),(资源,文件1),(时间,日期)}

  • q2 = {(小组,学生),(资源,文件2),(时间,夜晚)}

  • q3 = {{group,staff),(resource,file1)}

2 个答案:

答案 0 :(得分:1)

仅使用P1的评估结果

  • q1 = {(组,人员),(资源,文件1),(时间,日期)}
    • 回复:许可。 P1中的第一个规则开始执行,合并算法使过程在那里停止。一天中的时间对决策没有影响。
  • q2 = {(小组,学生),(资源,文件2),(时间,夜晚)}
    • 回复:许可。 P1中的第二个规则开始执行,合并算法使过程在那里停止。同样,一天中的时间对决策没有影响。
  • q3 = {{group,staff),(resource,file1)}
    • 回复:许可。这与q1基本相同。

仅使用P2的评估结果

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

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

  • q1 = {(组,人员),(资源,文件1),(时间,日期)}
    • 响应:允许访问,因为允许工作人员在白天查看file1。
  • q2 = {(小组,学生),(资源,文件2),(时间,夜晚)}
    • 响应:无论学生尝试查看什么内容,访问均被拒绝。在这种情况下,由于P3中的总体组合算法(deny-overrides),夜间策略胜过其他所有策略。
  • q3 = {{group,staff),(resource,file1)}
    • 响应:允许访问,因为允许工作人员查看file1且未指定时间。

注释

不需要白天授予访问权限的策略。事实上,它甚至可以打开您不希望拥有的访问权限。例如,根据当前政策,只要白天,学生就可以编辑自己的考试成绩。

答案 1 :(得分:1)

除了涉及“规则目标”的两个属性缺少将MustBePresent设置为true的属性的两种情况外,其他答案都是详尽且基本正确的。

在此答案中仅解决这些情况。

策略p2-请求q3

  • 规则:如果全部匹配,则拒绝:时间[MBP] =晚上->由于缺少时间属性且MustBePresent = true且规则效果为“拒绝”,因此不确定{D}
  • 规则:如果全部匹配,则允许:时间[MBP] =天->由于类似原因,不确定{P}
  • op:denyOverrides->不确定{DP}

评估结果为不确定{DP}

policyset p3-请求q3:

  • 政策p1
    • 规则:如果全部匹配,则允许:group = staff,resource = file1->许可
    • op:permitOverrides->允许,而不考虑其他任何规则的结果
  • 策略p2->不确定{DP},如前例所述
  • op:denyOverrides->不确定{DP}

评估结果为不确定{DP}

参考

XACML 3.0规范包含您理解所必需的所有细节

  • 有关属性检索和MustBePresent标志的信息,请参见section 7.3.5

  • 有关合并算法,请参见Appendix C