有没有办法从 XACML 策略外部定义变量并从策略规则内部引用它们

Is there a way to define variables externally from XACML policy and refer them from inside the policy rules

我正在使用具有多个策略集和策略的 XACML。这些策略共享相同的变量,我希望能够在某种“全局”字典中定义它们。虽然这似乎是相当基本的要求,但我找不到任何关于此类选项的文档、示例或讨论。有什么办法吗?

谢谢。

XACML 提供 OOTB 的唯一特性是变量定义和变量引用的概念。但是它并不能完全满足您的需求。

首先,变量定义是全局定义的,但只能在规则内部使用。您不能在目标内部使用它们。变量定义由 XACML 表达式组成,即任何可以在条件中表达的内容(例如字符串、函数等)。

变量定义是在策略中定义的,它们的可见性在该策略范围内。这限制了它们的用处。

如果你想要一个跨策略变量/常量,你必须在 XACML 之外进行,定义你的策略,然后 post 处理它们以用你的值替换你的占位符。例如,如果您直接在 XML 上工作,您可以使用 XSLT 来完成。否则,这在很大程度上取决于您使用的 IDE。

来源:eXtensible Access Control Markup Language (XACML) Version 3.0 Plus Errata 01