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: Issue#61:WS-XACML:How are the contents of XACMLAuthzAssertionsrepresented in the base XACML Policies


At the Face-to-Face, I said I would re-state on the list some options 
about how to keep an enterprise's internal authorization policy 
consistent with its XACMLAuthzAssertion Web Services policy.  Here they are.

----------------------------------------------------------------------
OPTION 0: Insert the entire enterprise policy in its full XACML Policy 
or PolicySet form into the XACMLAuthzAssertion Requirements element

This will always work.  I think Rich is interested in the cases where 
the enterprise does not want to expose its entire policy, or where the 
enterprise wants to be able to use the automatic policy intersection 
functionality that the other forms of an XACMLAuthzAssertion offer.

-----------------------------------------------------------------------
OPTION 1: Flag specific constraints in the internal policy, extract them 
into the XACMLAuthzAssertion

This is what Rich would like, if I'm not mistaken: a way to flag 
specific policy variable constraints that are in the enterprise's 
internal authorization Policy or PolicySet as ones that need to be 
extracted for inclusion in a Web Service's XACMLAuthzAssertion.

While it would be easy to implement such a flag, it would be very 
difficult to use the flag in ways that preserve the integrity of the 
enterprise policies.  The tool that controlled the setting of such flags 
would have to be more intelligent than all the XACML analysis research 
so far has been :-)

Extremely simple example:

   <Policy RuleCombiningAlg="permit-overrides">
     <Rule Effect="Permit">
       <Apply FunctionId="and">
          role == "manager"
          resource == "salary-table"
          <Apply FunctionId="or">
              dept == "Engineering"
              dept == "Sales"
          </Apply>
       </Apply>
     </Rule>
     <Rule Effect="Permit">
       <Apply FunctionId="Permit">
          role == "engineer"
          resource == "project-schedule"
       </Apply>
     </Rule>
   </Policy>

To automatically extract individual flagged constraints from this very 
simple policy, the policy extraction tool would have to know that a 
separate XACMLAuthzAssertion Requirements element MUST be created for 
each Rule even it no constraints in that Rule are flagged.  If any 
constraint in an inner "or" function is flagged, then the extraction 
tool must also create a separate Requirements element for each 
constraint inside the "or" function, even if not all of the constraints 
are flagged.  Remember that this is a VERY simple policy, and the 
complexity of analysis quickly becomes unmanageable for XACML policies 
in general.

If not all constraints are flagged, then the enterprise will need to 
evaluate each request against the enterprise's full internal policy at 
run-time, and deny those that fail to meet the full set of internal 
constraints.

Typically, the policy extraction tool will quickly end up creating at 
least one empty Requirements element because no constraints are flagged 
in a Rule, or because at least one constraint is not flagged in an "or" 
function.  In that case, all further analysis and extraction becomes 
irrelevant: the XACMLAuthzAssertion has become a "pass-through" 
permitting every Request.

-----------------------------------------------------------------------
OPTION 2: Write internal policies in a constrained form that is easy to 
convert to XACMLAuthzAssertion Requirements

If the enterprise is willing to limit its entire set of policies that 
might be used as part of XACMLAuthzAssertions to a very constrained 
form, then a tool could easily convert the policies to 
XACMLAuthzAssertions.  For example, this would work if the enterprise 
used only a single Policy whose individual Rules use only the "and" 
Boolean function and the comparison functions (no arithmetic, no string 
conversions, etc.).  Then individual constraints could be flagged and a 
tool could easily convert each Rule into a separate XACMLAuthzAssertion 
Requirements element, including only the flagged constraints.

Again, if not all constraints are flagged, then the enterprise will need 
to evaluate each request against the enterprise's full internal policy 
at run-time, and deny those that fail to meet the full set of internal 
constraints.

Once again, unless every Rule has at least one constraint flagged, the 
policy extraction tool will have to create an empty Requirements 
element, and once again, all further analysis and extraction becomes 
irrelevant: the XACMLAuthzAssertion has become a "pass-through" 
permitting every Request.

---------------------------------------------------------------------
OPTION 3: Create and maintain the XACMLAuthzAssertion Requirements 
independently from internal enterprise policies

This is the option that will make the best use of authorization 
assertions in Web Services, in my opinion.

3a. For Web Services that have simple authorization policies, express 
the entire policy using an XACMLAuthzAssertion and evaluate all requests 
and client policies against that.  In this case there is no separate 
internal policy, so no need to deal with inconsistency.

3b. For Web Services that have complex authorization policies, use the 
XACMLAuthzAssertion Requirements to filter out a useful fraction of 
unauthorized requests, then evaluate the requests that pass the 
assertion against the full internal policy at run-time.  This is not an 
automatic process.  Policy Administrators need to understand the overall 
enterprise policies well enough to know certain sets of constraints that 
are ALWAYS pre-conditions for access to the controlled Web Service.

Regards,
Anne
-- 
Anne H. Anderson             Email: Anne.Anderson@Sun.COM
Sun Microsystems Laboratories
1 Network Drive,UBUR02-311     Tel: 781/442-0928
Burlington, MA 01803-0902 USA  Fax: 781/442-1692


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