我有两个政策商店。一个是简单策略存储(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"+
任何人都可以指导我!
提前致谢
最诚挚的问候,
答案 0 :(得分:0)
错误是正常的。您的政策需要以下属性:
标记MustBePresent
设置为true
,表示如果缺少该属性(即没有值),则会返回Indeterminate
。
对您的请求的回复包含:
注意类别值是如何不同的。这意味着您实际上并没有在第一个片段中评估您向我们展示的政策,或者如果您正在评估,那么它还包含一个具有所需主题ID属性的部分。
要继续,最好显示您发送的请求。此外,请确保已部署正确的策略。
答案 1 :(得分:0)
我已将管理策略和访问策略放入两个不同的文件夹中解决了这个问题。我认为Balana无法阅读同一文件夹中的不同类型的政策。