1

在 XACML 中,我不确定义务是否会为规则决策添加更多信息或提供更多条件。例如,我希望响应允许访问患者电子健康记录,但我想增加拒绝访问患者电子健康记录中特定记录的义务。

4

1 回答 1

1

在 XACML 中,义务(和建议)旨在丰富 PEP 从 PDP 收到的响应。它们并不意味着传达授权逻辑。

例子

两因素身份验证

此示例围绕信任/身份验证提升展开。

  • 问:我可以使用基本身份验证将 5,000 美元从 A 转移到 B 吗?
  • 答:拒绝。将用户重新路由到双因素身份验证页面以提升身份验证
  • 问:我可以使用双因素 AuthN 将 5,000 美元从 A 转移到 B 吗?
  • A: 许可+义务向发件人发送电子邮件。

打破玻璃

  • Alice 可以查看病历#123 吗?
  • 拒绝+义务:如果这是紧急情况,则挥动“紧急标志”并再次请求访问。
  • Alice 可以查看病历#123 吗?这是紧急情况。
  • 允许 + 在医院内写下 Alice 看到记录 #123 并声称这是紧急情况的日志。

上述示例来自医疗保健中发生的打破玻璃的场景。

控制对事物层次结构(项目、记录)的访问

在您的示例中,您希望控制对项目和子项目的访问。例如,EHR 由 PII、PHI 和财务信息组成。医生可以查看与他们有关系的患者的 EHR 吗?是的,他们应该能够。但是您想掩盖或编辑财务信息,因为它与医生无关。

在这种情况下,我会编写不同的规则——每个子项一个。我希望授权逻辑可见。我想知道关于医生查看 PII、PHI 或财务数据的规则。

我可能会使用多重决策配置文件来就记录的不同部分提出问题。

当然,如果您只想系统地掩盖一个领域,那么您可以逃避义务。

最佳实践

当您编写义务和建议时,您应该尽量不要将授权逻辑隐藏在其中。使用它们来丰富授权流程。

于 2017-05-10T15:43:58.327 回答