0

我有两个保单商店。一种是简单策略存储 (SPS),另一种是管理策略存储 (APS)。针对访问策略的简单访问请求工作正常。但是,当我根据以下策略(APS)评估管理请求时......(我只展示了一个组件策略);

<Target>
<AnyOf>
<AllOf>
<Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">shibli</AttributeValue>
<AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:delegate" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"/>
</Match>
</AllOf>
</AnyOf>
</Target>

那么这将产生以下错误;

<Response xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17"><Result><Decision>Indeterminate</Decision><Status><StatusCode Value="urn:oasis:names:tc:xacml:1.0:status:missing-attribute"/><StatusMessage>Couldn't find AttributeDesignator attribute</StatusMessage><StatusDetail>
<MissingAttributeDetail AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id" DataType="http://www.w3.org/2001/XMLSchema#string" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" ></MissingAttributeDetail>
</StatusDetail></Status></Result></Response>.

更新: 这是我的要求;

"<Attributes Category=\"urn:oasis:names:tc:xacml:3.0:attribute-category:delegate\">\n"+
            "<Attribute AttributeId=\"urn:oasis:names:tc:xacml:1.0:subject:subject-id\" IncludeInResult=\"false\">\n"+
            "<AttributeValue DataType=\"http://www.w3.org/2001/XMLSchema#string\">"+issuer+"</AttributeValue>\n"+
            "</Attribute>\n"+
            "</Attributes>\n"+

任何人都可以指导我!

提前致谢

此致,

4

2 回答 2

0

我通过将管理策略和访问策略放入两个不同的文件夹来解决它。我认为 Balana 无法读取位于同一文件夹中的不同类型的策略。

于 2015-03-20T12:35:25.423 回答
0

错误是正常的。您的政策需要以下属性:

该标志MustBePresent设置为true意味着如果该属性缺失(即没有值),Indeterminate则将被返回。

对您的请求的回复包含:

请注意类别值的不同之处。这意味着您实际上并未评估您在第一个片段中向我们展示的策略,或者如果您是,那么它还包含一个具有必需主题 id 属性的部分。

要继续,最好显示您发送的请求。此外,请确保您部署了正确的策略。

于 2015-02-19T16:19:53.250 回答