XACML 义务是解释或要求更多条件
XACML Obligations are explanation or ask for more condition
在 XACML 中,我不确定义务是否会添加更多信息或为规则决策提供更多条件。例如,我希望响应允许访问患者电子健康记录,但我想添加义务以拒绝访问患者电子健康记录中的特定记录。
在 XACML 中,义务(和建议)旨在丰富 PEP 从 PDP 收到的响应。它们并不意味着传达授权逻辑。
例子
双重身份验证
此示例围绕信任/身份验证提升展开。
- 问:我可以使用基本身份验证从 A 向 B 转账 5,000 美元吗?
- 答:拒绝。将用户重新路由到双因素身份验证页面以提升身份验证
- 问:我可以使用双因素 AuthN 将 5,000 美元从 A 转移到 B 吗?
- A:允许+义务向发件人发送电子邮件。
打破玻璃
- Alice 可以查看病历 #123 吗?
- 拒绝 + 义务:如果这是紧急情况,请挥动 'emergency flag' 并再次请求访问。
- Alice 可以查看病历 #123 吗?这是紧急情况。
- 允许 + 在医院内部记录爱丽丝看到记录 #123 并声称这是紧急情况的事实。
上述示例来自医疗保健中发生的打破玻璃的场景。
控制对事物层次结构(项目、记录)的访问
在您的示例中,您想要控制对项目和子项目的访问。例如,EHR 由 PII、PHI 和财务信息组成。医生可以查看与他们有关系的患者的 EHR 吗?是的,他们应该能够。但是您想掩盖或编辑财务信息,因为它与医生无关。
在那种情况下,我会编写不同的规则 - 每个子项一个。我希望授权逻辑可见。我想知道关于医生查看 PII、PHI 或财务信息的规则。
我可能会使用 Multiple Decision Profile 来针对记录的不同部分提出问题。
当然,如果您只想系统地屏蔽一个字段,那么您可以逃避义务。
最佳实践
写义务和建议的时候,尽量不要把授权逻辑藏在里面。使用它们来丰富授权流程。
在 XACML 中,我不确定义务是否会添加更多信息或为规则决策提供更多条件。例如,我希望响应允许访问患者电子健康记录,但我想添加义务以拒绝访问患者电子健康记录中的特定记录。
在 XACML 中,义务(和建议)旨在丰富 PEP 从 PDP 收到的响应。它们并不意味着传达授权逻辑。
例子
双重身份验证
此示例围绕信任/身份验证提升展开。
- 问:我可以使用基本身份验证从 A 向 B 转账 5,000 美元吗?
- 答:拒绝。将用户重新路由到双因素身份验证页面以提升身份验证
- 问:我可以使用双因素 AuthN 将 5,000 美元从 A 转移到 B 吗?
- A:允许+义务向发件人发送电子邮件。
打破玻璃
- Alice 可以查看病历 #123 吗?
- 拒绝 + 义务:如果这是紧急情况,请挥动 'emergency flag' 并再次请求访问。
- Alice 可以查看病历 #123 吗?这是紧急情况。
- 允许 + 在医院内部记录爱丽丝看到记录 #123 并声称这是紧急情况的事实。
上述示例来自医疗保健中发生的打破玻璃的场景。
控制对事物层次结构(项目、记录)的访问
在您的示例中,您想要控制对项目和子项目的访问。例如,EHR 由 PII、PHI 和财务信息组成。医生可以查看与他们有关系的患者的 EHR 吗?是的,他们应该能够。但是您想掩盖或编辑财务信息,因为它与医生无关。
在那种情况下,我会编写不同的规则 - 每个子项一个。我希望授权逻辑可见。我想知道关于医生查看 PII、PHI 或财务信息的规则。
我可能会使用 Multiple Decision Profile 来针对记录的不同部分提出问题。
当然,如果您只想系统地屏蔽一个字段,那么您可以逃避义务。
最佳实践
写义务和建议的时候,尽量不要把授权逻辑藏在里面。使用它们来丰富授权流程。