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