评估XACML 3.0组合算法



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

政策p1:-操作:许可证覆盖

  • 规则:如果全部匹配则允许:组=人员,资源=文件1

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

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

策略p2:

  • op:deny覆盖

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

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

策略p3:

  • op:deny覆盖

  • 策略:p1

  • 策略:p2

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

  • q1={(组,人员),(资源,文件1),(时间,天)}

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

  • q3={(组,人员),(资源,文件1)}

仅使用P1的评估结果

  • q1={(组,人员),(资源,文件1),(时间,天)}
    • 响应:许可。P1中的第一条规则开始生效,组合算法使过程到此为止。一天中的时间对决策没有影响
  • q2={(组,学生),(资源,文件2),(时间,晚上)}
    • 响应:许可。P1中的第二条规则开始生效,组合算法使过程到此为止。同样,一天中的时间对决策没有影响
  • q3={(组,人员),(资源,文件1)}
    • 响应:许可。这与q1基本相同

仅使用P2的评估结果

  • q1={(组,人员),(资源,文件1),(时间,天)}
    • 响应:允许,因为所有访问都允许在白天进行。P2中的规则1不适用。规则2授予访问权限
  • q2={(组,学生),(资源,文件2),(时间,晚上)}
    • 响应:拒绝,因为所有访问都在夜间被拒绝。P2中的规则1适用。组合算法使得处理在规则1之后停止
  • q3={(组,人员),(资源,文件1)}
    • 响应:不适用。这两个规则只有在指定了一天中的时间时才会触发,而本请求中的情况并非如此。因此,评估以"不适用"结束

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

  • q1={(组,人员),(资源,文件1),(时间,天)}
    • 响应:允许访问,因为员工可以在白天查看文件1
  • q2={(组,学生),(资源,文件2),(时间,晚上)}
    • 响应:无论学生试图查看什么,访问都被拒绝。在这种情况下,由于P3中的总体组合算法(拒绝覆盖),夜间策略胜过所有其他策略
  • q3={(组,人员),(资源,文件1)}
    • 响应:允许访问,因为允许员工查看文件1,并且没有指定时间

注释

允许在白天访问的政策是不必要的。事实上,它甚至可能打开你不想拥有的访问权限。例如,根据现行政策,只要是白天,学生就可以编辑自己的考试成绩。

另一个答案是详细的,基本上是正确的,除了两种情况涉及规则的目标缺少MustBePresent设置为true的属性。

只有这些情况才会在这里得到答复。

策略p2-请求q3

  • 规则:如果全部匹配则拒绝:时间[MBP]=night->Indeterminate{D},因为缺少时间属性并且MustBePresent=true,并且规则效果为Deny
  • rule:如果匹配则允许:time[MBP]=day->由于类似原因而不确定{P}
  • op:denyOverrides->不确定{DP}

评估结果为不确定{DP}

策略集p3-请求q3:

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

评估结果为不确定{DP}

参考文献

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

  • 有关属性检索和MustBePresent标志,请参阅第7.3.5节

  • 有关组合算法,请参阅附录C

最新更新