如何对XACML的规则进行逻辑与

问题描述 投票:1回答:1

我的情况是我有一个包含多个规则的策略,并且所有规则都必须为真才能使该策略为真。例如:

Policy A
       - Rule 1
       - Rule 2
       - Rule 3

为了使Policy A适用,我需要所有三个规则都返回true,即使其中之一返回false,也应该检查我的策略集中的其他策略

我现在拥有的是

<!-- shortened for brevity -->
<Policy RuleCombiningAlgId="...:deny-overrides">
         <Rule id="1" Effect="Permit">
                ...
         </Rule>
         <Rule id="2" Effect="Permit">
                ...
         </Rule>
         <Rule id="3" Effect="Permit">
                ...
         </Rule>
</Policy>

[我认为我的问题是我的规则都没有一个返回“ Deny”,但我最初认为,如果不允许,则应拒绝。我想到了不要在我的所有规则上都放一个,但这会使它变得不雅。

如果相关,我正在使用Authzforce库。

access-control policy xacml abac authzforce
1个回答
0
投票

我最初以为如果不允许,应该拒绝

如果这是您想要的,那么您必须使用Deny-unless-permit组合算法(XACML规范的附录C.6),而不是Deny-overrides(附录C.2的附录C.2)。 XACML规范)。我建议您查看appendix C of XACML 3.0 specification,以帮助您为情况选择合适的算法。

© www.soinside.com 2019 - 2024. All rights reserved.