Authorization 如何编写用户可以访问XACML中两个资源的策略?
我需要定义一个具有以下两个要求的策略: (1) 任何用户都可以访问(读、写等)资源Authorization 如何编写用户可以访问XACML中两个资源的策略?,authorization,access-control,xacml,abac,alfa,Authorization,Access Control,Xacml,Abac,Alfa,我需要定义一个具有以下两个要求的策略: (1) 任何用户都可以访问(读、写等)资源http://www.example.com/info1和http://www.example.com/info2 (2) 对任何资源的任何读取操作(读取)只能由属于组admin和manager的用户访问 此策略必须使用XACML编写 那么,我解决的是: <?xml version="1.0" encoding="UTF-8"?> <Policy xmlns
http://www.example.com/info1
和http://www.example.com/info2
(2) 对任何资源的任何读取操作(读取)只能由属于组admin
和manager
的用户访问
此策略必须使用XACML编写
那么,我解决的是:
<?xml version="1.0" encoding="UTF-8"?>
<Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" PolicyId="1" RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable" Version="1.0">
<Description>Policy 1</Description>
<Target />
<Rule Effect="Permit" RuleId="Rule #1" >
<Target>
<AnyOf>
<AllOf>
<Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-regexp-match">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">http://www.example.com/info1</AttributeValue>
<AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true" />
</Match>
</AllOf>
<AllOf>
<Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-regexp-match">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">http://www.example.com/info2</AttributeValue>
<AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true" />
</Match>
</AllOf>
</AnyOf>
</Target>
</Rule>
<!--Punto d.2-->
<Rule Effect="Permit" RuleId="Rule #2">
<Target>
<AnyOf>
<AllOf>
<Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">read</AttributeValue>
<AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true" />
</Match>
</AllOf>
</AnyOf>
</Target>
<Condition>
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of">
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">admin</AttributeValue>
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">manager</AttributeValue>
</Apply>
<AttributeDesignator AttributeId="group" Category="urn:oasis:names:tc:xacml:3.0:group" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true" />
</Apply>
</Condition>
</Rule>
</Policy>
政策1
)
我执行这两条规则的方式正确吗?O更准确地说,AnyOf
的用法对于规则规则#1
是正确的,是否可以省略该规则的条件
元素
我可以在Target>AnyOf>AlloOf
元素中只执行读取操作吗?的可能重复项