OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

xacml message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Decision required: Issue#70: Must Policy[Set]Id match value used in acorresponding Policy[Set]IdReference?


PROBLEM

The question is, when one policy references another, as in

    <PolicySet ...>
       <Target .../>
       ....
       <PolicyIdReference>xxxx</PolicyIdReference>
       ....
    </PolicySet>

    referenced policy:

   <Policy PolicyId="yyyy">
       ....
   </Policy>

whether "xxxx" must equal "yyyy".

This question may also apply to Policy[Set]IdRef values in 
CombinerParamters.

Please state what you want the spec to say, and why.

WHAT THE SPEC SAYS NOW

The XACML 2.0 Specification never flat-out states that the value used in 
   a Policy[Set]IdReference must match the value of the Policy[Set]Id 
used in the referenced policy, and if so, does not state the algorithm 
for doing the id matching.  It says

     "The <Policy[Set]IdReference> element SHALL be used to reference a
      <Policy[Set]> element by id"

but does state explicitly that the "id" must match the Policy[Set]Id 
value in the referenced policy.  The non-normative examples, in 
describing Policy[Set]Id, say

     "Policy[Set] identifier.  This parameter allows the policy [set] to
      be referenced by a policy set"

but again does not explicitly say the values must match and is also 
non-normative.

WHAT IMPLEMENTATIONS AND DEPLOYMENTS DO NOW

Seth says "There are many examples of people taking advantage of the 
*current* behavior, which does not require that these identifiers match 
up. It may  have been someone's intent that identifiers match, but that 
has never been encoded in the specification. We should be very careful 
about changing the current behavior."

OPTIONS

This needs to be clarified in XACML 3.0 and in XACML 2.0 Errata.

A. If the TC decides that the values MUST match, then we need to state 
that explicitly and specify the matching function (probably 
anyURI-equal) to use.

B. If the TC decides that they do not need to match (or even MUST NOT 
match, as one old e-mail suggested), then we need to make some bigger 
changes in our specs.  The places I can think of are:

- XACML 2.0 Core: If a PolicySet uses references even to internal 
Policy[Set]s, there is no way to know which ones match the reference. 
We need to state that the Policy[Set]IdReference value does NOT [MUST 
NOT?] correspond to the Policy[Set]Id in the referenced policy, and that 
the PDP must know via some additional undefined mechanism which policies 
satisfy which references.

- XACML 2.0 Core: Policy[Set]CombinerParameters include a 
Policy[Set]IdRef that MUST be associated with a policy in the same 
PolicySet.  We need to state that the IdRef value does NOT [MUST NOT?] 
correspond to the Policy[Set]Id in the referenced policy, and that the 
PDP must know via some additional undefined mechanism which policies 
satisfy which references.

- XACML 3.0 Core: We might want to add an optional 
"ReferenceMatchValues" element to Policy[Set] to contain the 
Policy[Set]IdRef and Policy[Set]IdReference values it matches.  This 
could be a many-to-many match, so we can't just stick in an XML 
attribute, and maybe we need to have separate lists for Policy[Set]IdRef 
and for Policy[Set]IdReference.  Alternatively, we could add an optional 
element to Policy[Set]IdRef and Policy[Set]IdReference to contain the 
Policy[Set]Id values that it is intended to match, for cases where the 
implementation does not want to provide an additional 
implementation-specific mechanism.

- SAML Profile 2.0: If an XACMLPolicyQuery requests policies according 
to Policy[Set]IdReferences, currently all the referenced policies are 
returned directly.  We need to state that the PDP must know via some 
additional undefined mechanism which policies satisfy which references.

- SAML Profile, Version 2: I would add an encapsulating element around 
each returned Policy[Set] that contains the Policy[Set]IdReference 
value(s) it satisfies.  This would go into SAML Profile V2 WD4.

- SAML Profile, Version 2: If an XACMLAuthzDecisionQuery passes in a set 
of policies, it must also supply copies of all policies referenced, 
either from the first set or from other referenced policies.  In WD3 
these are passed with no indication of which reference each policy 
satisfies, so in WD4, I would add an encapsulating element around each 
referenced policy that contains the Policy[Set]IdReference value(s) it 
satisfies.  This would go into SAML Profile V2 WD 4.

- WS-XACML: If a Requirements element in an XACMLAssertionAbstractType 
instance includes a policy, then it must also supply copies of all 
policies referenced, either from the original Requirements policy, or 
from another referenced policy.  The WD9 does not include this, but the 
TC has decided it should.   For WD10, I would encapsulate each policy 
copy in an element that specifies the value of the reference to which 
the encapsulated policy corresponds.

- Are there others?

Regards,
Anne
-- 
Anne H. Anderson               Anne.Anderson@sun.com
Sun Microsystems Labs          1-781-442-0928
Burlington, MA USA



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]