评估 XACML 3.0 组合算法
Evaluate XACML 3.0 combining algorithms
我正在研究 XACML 3.0 访问控制,我发现了这个关于评估 XACML 3.0 组合算法的复杂问题。我可以解决一个简单的练习,但这对我来说很难,我需要一些帮助
政策 p1:
- 操作:允许覆盖
规则:如果全部匹配则允许:组=员工,资源=文件1
规则:如果全部匹配则允许:组=学生,资源=文件2
规则:如果匹配则拒绝:任何
政策 p2:
操作:拒绝覆盖
规则:如果全部匹配则拒绝:时间 [MBP] = 晚上
规则:如果全部匹配则允许:时间[MBP] = 天
政策 p3:
操作:拒绝覆盖
政策:p1
政策:p2
为每个策略评估以下请求 q1、q2 和 q3:
q1 = {(组,人员),(资源,文件 1),(时间,日期)}
q2 = {(group, student), (resource, file2), (time, night)}
q3 = {(组,员工),(资源,文件 1)}
仅使用 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 规范包含您理解所需的所有详细信息
属性检索和MustBePresent标志参考section 7.3.5
合并算法参考Appendix C
我正在研究 XACML 3.0 访问控制,我发现了这个关于评估 XACML 3.0 组合算法的复杂问题。我可以解决一个简单的练习,但这对我来说很难,我需要一些帮助
政策 p1: - 操作:允许覆盖
规则:如果全部匹配则允许:组=员工,资源=文件1
规则:如果全部匹配则允许:组=学生,资源=文件2
规则:如果匹配则拒绝:任何
政策 p2:
操作:拒绝覆盖
规则:如果全部匹配则拒绝:时间 [MBP] = 晚上
规则:如果全部匹配则允许:时间[MBP] = 天
政策 p3:
操作:拒绝覆盖
政策:p1
政策:p2
为每个策略评估以下请求 q1、q2 和 q3:
q1 = {(组,人员),(资源,文件 1),(时间,日期)}
q2 = {(group, student), (resource, file2), (time, night)}
q3 = {(组,员工),(资源,文件 1)}
仅使用 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 规范包含您理解所需的所有详细信息
属性检索和MustBePresent标志参考section 7.3.5
合并算法参考Appendix C