2013-05-22 47 views
0

我与XACML政策工作,我有以下资源:从任何URI更改的资源类型为字符串

<Resources> 
     <Resource> 
     <ResourceMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:anyURI-equal"> 
      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#anyURI">mail</AttributeValue> 
      <ResourceAttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" DataType="http://www.w3.org/2001/XMLSchema#anyURI"/> 
     </ResourceMatch> 
     </Resource> 
    </Resources> 

我想这个资源是一个字符串,而不是任何URI类型,以操纵任何种类的数据作为资源。否则,anyURI数据类型的可能值是什么?

回答

1

规范说,资源ID SHELL be anyURI。所以理论上你可以使用字符串数据类型。函数然后将是字符串相等的。

与此同时,在大多数情况下,您可以使用anyURI没有任何问题。例如,字符串“Alice”是anyURI。

或者,您可以引入另一个属性,只需命名它并使用,而不是资源ID。

0

除了迈克说,你总是可以创建具有完全相同的ID的新属性,类别(如果XACML 3.0),以及可选发行人,但改变的数据类型从任何URI字符串:

 <ResourceAttributeDesignator 
      AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" 
      DataType="http://www.w3.org/2001/XMLSchema#string"/> 

只要确保您的XACML请求和XACML策略使用相同的属性。

相关问题