- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我正在尝试 XACML3,我发现请求与条件匹配,我得到的响应为“许可”。但如果不适用,我会得到“不适用”而不是“拒绝”。我不确定这种行为是否正确。我确实知道我可以使用 deny-unless-permit
组合算法屏蔽“不适用”响应,但我不理解这种行为。
以下是我的政策
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" PolicyId="urn:oasis:names:tc:xacml:2.0:conformance-test:IIA1:policy"
RuleCombiningAlgId="urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:deny-overrides"
Version="1.0">
<Target>
<AnyOf>
<AllOf>
<Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">MyApp</AttributeValue>
<AttributeDesignator
AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id"
DataType="http://www.w3.org/2001/XMLSchema#string"
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource"
MustBePresent="true" />
</Match>
</AllOf>
</AnyOf>
</Target>
<Rule Effect="Permit"
RuleId="urn:oasis:names:tc:xacml:2.0:conformance-test:IIA1:rule">
<Target />
<Condition>
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-equal">
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-one-and-only">
<AttributeDesignator
AttributeId="urn:oasis:names:tc:xacml:2.0:conformance-test:age"
Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject"
DataType="http://www.w3.org/2001/XMLSchema#integer" MustBePresent="false" />
</Apply>
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-one-and-only">
<AttributeDesignator
AttributeId="urn:oasis:names:tc:xacml:2.0:conformance-test:age2"
Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject"
DataType="http://www.w3.org/2001/XMLSchema#integer" MustBePresent="false" />
</Apply>
</Apply>
</Condition>
</Rule>
</Policy>
这是我的请求,但我得到的答复是不适用
<?xml version="1.0" encoding="utf-8"?>
<Request ReturnPolicyIdList="false" CombinedDecision="false" xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Attributes Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject">
<Attribute IncludeInResult="false" AttributeId="urn:oasis:names:tc:xacml:2.0:conformance-test:age">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#integer">45</AttributeValue>
</Attribute>
<Attribute IncludeInResult="false" AttributeId="urn:oasis:names:tc:xacml:2.0:conformance-test:age2">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#integer">4</AttributeValue>
</Attribute>
</Attributes>
<Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource">
<Attribute IncludeInResult="false" AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">MyApp</AttributeValue>
</Attribute>
</Attributes>
</Request>
仅当年龄和年龄 2 匹配时,我才会收到“允许”的响应,否则响应不适用。不适用意味着未找到匹配规则,但目标确实与 resource-id
字符串成功匹配,那么为什么响应不适用?如有任何帮助,我们将不胜感激。
最佳答案
出现 NotApplicable 是正常 react 。事实上,这很可能是最常见的 react 。
XACML 在响应中定义了 4 个可能的决策:
首次编写政策时,很容易遇到“NotApplicable”,因为这本质上意味着您的请求与政策不匹配。想象一下,您的保单与银行账户有关,并且您发送了有关健康记录的请求。您会得到 NotApplicable。
有多种方法可以屏蔽 NotApplicable 并强制 PDP 返回 Permit 或 Deny。其中一种方法是使用以下组合算法之一:
如果您的政策包含 3 条规则,但没有一条适用,则该政策通常会返回 NotApplicable。使用之前的 2 种组合算法之一,您将获得允许或拒绝。
另一个选择是使用另一个规则作为包罗万象的规则,该规则将拒绝任何先前未处理的访问。在这种情况下,父级的组合算法需要首先适用。见下文。
在 XACML 中,您可以使用 2 个关键元素来定义授权策略的范围(广义上):
角色==“经理”,年龄>18
。年龄>年龄限制
。您不能在 Target 中执行后者。要使规则适用,目标和条件(如果有)都必须评估为 true。
关于java - XACML 响应不适用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48498090/
我是一名优秀的程序员,十分优秀!