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] | [Elist Home]


Subject: [xacml] XACML Implementers Guide


Before you guys all forget the problems you ran into while
implementing, I thought I would try to solicit material for an
XACML Implementers Guide.  The intent would be to alert XACML
implementers to subtleties in the specification that require
particular attention.

I did not do an implementation myself, so the attached list is
just a starter to jog your memories and try to elicit more (or
more accurate) material.

Once we get an initial pass over this list from the TC, I suggest
we post the list to xacml-comment to solicit a wider response.

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

Title: Potential topics for an XACML Implementor's Guide
Author: Anne Anderson
Version: 1.1, 03/01/16 (yy/mm/dd)

These are potential topics to go into an XACML Implementor's
Guide.  The intent is to alert implementors to subtleties of the
specification that need particular attention in order to avoid
problems.

- "Notional" Request context:
  o Request context can not be treated as static XML document
  o AttributeSelector evaluation can not depend on just XPath
    processing because even if the XPath expression does not
    return an attribute value, it will be necessary to invoke
    some sort of "attribute locator" to look for the referenced
    attribute in external databases.

  Suggestions:
  o Parse input Request.xml as a starting point for evaluation of
    AttributeDesignator (AD) and AttributeSelector (AS)
    references.
  o Define an "attribute retrieval" interface that takes as input
    an AD or AS and returns the matching attribute value, error,
    or "not found" result.  The implementation of this interface
    first looks for referenced AD or AS in the parsed
    Request.xml.  If attribute not found there, then
    implementation invokes an external attribute location API.
    This API should support plugins for different ways of
    locating attributes.  The plugins should be configurable for
    particular LDAP repository locations, etc.

- Functions

  o x500Name-equal: can this use a standard Java method?
  o rfc822Name-equal: local part is case-sensitive, domain-part
    is not case-sensitive

- Bags

  o A singleton bag is NOT the same as an instance of the
    datatype contained in the bag.  All the equality predicates,
    arithmetic functions, string conversion functions, numeric
    data-type conversion functions, Boolean functions, arithmetic
    comparison functions, date and time arithmetic functions,
    non-numeric comparison functions, and special match functions
    take only primitive data types as arguments.  They must
    return Indeterminate if a bag or singleton bag is used as
    input.

- Date and time arithmetic functions

  o Can these use implementations in "XQuery 1.0 and XPath 2.0
    Functions and Operators"?

- Combining algorithms

  o Note that the policy-combining version of each algorithm is
    different from the rule-combining version.
  o policy-combining version of Deny-overrides can NEVER return
    Indeterminate under any conditions.
  o First-Applicable: The "applicability" test is based solely on
    evaluation of the Target.  The first rule, policy, or
    policyset whose Target evaluates to "true" is evaluated, and
    that result is returned even if the evaluation of the
    condition for the rule(s) evaluates to "NotApplicable".  Thus
    it is perfectly possible to return a result of
    "NotApplicable" from a "First-Applicable" combining algorithm
    even if there were subsequent rules or policies that would
    have returned Permit or Deny.

- MatchId

  o A function used in a MatchId (used in Target) is not passed
    the arguments directly.  An iterator takes the first argument
    to the MatchId and iterates through each element of the bag
    returned from evaluating the second argument (the
    AttributeDesignator or AttributeSelector) and passes those
    two elements to the MatchId function.
  o The same function, when used in a Condition, is passed its
    arguments directly without any iterator intervening to handle
    bags.

- Hierarchical resources

  o Hierarchical resources in XACML are under-specified.  For
    example, ?
  o 

- Subject categories

  o When evaluating AttributeDesignators, all attributes of all
    Subjects that have the same SubjectCategory are lumped
    together as if they belonged to a single subject.

  o An AttributeSelector may distinguish between different
    subjects that have the same SubjectCategory by effectively
    asking for "Attribute A in the same subject that has a value
    of X for Attribute B".


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


Powered by eList eXpress LLC