RE: [xacml] Minutes of 25 March Policy Model teleconference

From
Tim Moses <>
Date
2002-03-26T18:05:03+00:00
ID
Thread
RE: [xacml] Minutes of 25 March Policy Model teleconference
Title: RE: [xacml] Minutes of 25 March Policy Model teleconference

Colleagues - I had to drop out after Item 24.  Profound apologies.  I had an "obligation", and couldn't find a suitable element in which to include it.  OASIS precedent allows votes taken at a meeting that started with quorum to stand (I believe).

By the way, I am incorporating the resolution of these issues in a version 12.  I am interested to know what people feel about the timing for the release of a version 12.  Any thoughts?

All the best.  Tim.

-----------------------------------------

Tim Moses

Tel: 613.270.3183

-----Original Message-----

From: Anne Anderson [mailto:]

Sent: Tuesday, March 26, 2002 11:56 AM

To: XACML TC

Subject: [xacml] Minutes of 25 March Policy Model teleconference

Minutes of Policy Model Subcommittee Teleconference Meeting

25 March 2002

Scribe: Anne Anderson

Present: Carlisle, Simon, Anne, Ernesto, Tim, Pierangela, Polar,

Michiharu, Don

   ACTION ITEM: Polar agreed to attempt to write new resolutions

   for issues PM-3-03, PM-3-03A, and PM-2-05.

   ACTION: Carlisle and Tim look at the last few items in these

   minutes and report whether they participated in the vote.

1. Discussion of OASIS Rights Language Technical Committee

   Attendees discussed how the XACML TC should respond to and

   coordinate with the new OASIS "Rights Language" TC.  Several

   XACML participants see potential overlap.  Carlisle said he

   would talk to Carl Best and others about potential overlap,

   and whether we actually need to have two groups.  Carlisle

   plans to participate in the Rights Language TC in order to

   track its efforts and to ensure XACML coordination occurs.

   Tim pointed out that one currently has to enter into an

   agreement with ContentGuard in order to see their XrML

   specification, so it is difficult to assess any potential

   overlap.  Carlisle will also bring this issue up with Carl

   Best.

   Simon has viewed the XrML specification and, while not

   prepared to give a full review, made the following points: it

   is much more specialized than the XACML language, such as

   having specialized targets for media.  It does support

   delegation, but does not support composition of policies from

   different sources.

2. Polar: should we use "combiner" or "combinator"?  Decision was

   to postpone such issues until we are ready to make final

   revisions to the specification.

3. VOTED TO CLOSE: ISSUE: PM-1-01-A: Implementing global deny and

  Meta-Policies 

  Resolution: the syntax for <rule> allows for the <rule> to

  return an <effect> of "permit" or "deny".  It is up to the

  combiner in the <policyStatement> that uses a <rule> to

  determine the effect of a <rule> that returns "deny".

  Likewise, it is up to the combiner in the

  <policyCombinationStatement> that uses a <policyStatement> to

  determine the effect of a <policyStatement> that returns

  "deny".

  The following example combiners can be used to implement

  "global deny" semantics for a <rule>.  Since an "indeterminate"

  rule might have evaluated to "deny" if sufficient information

  had been supplied, these examples treat "indeterminate" results

  the same way as "deny" results.

  GLOBAL DENY RULE COMBINER:

    boolean atLeastOnePermit = false;

    for <rule> in <ruleSet> {

      effect = eval(<rule>);

      if (effect == "deny" || effect == "indeterminate") {

         return "deny";

      } else if (effect == "permit") {

         atLeastOnePermit = true;

      }

    }

    if (atLeastOnePermit) {

      return "permit";

    } else {

      return "not applicable";

    }

  GLOBAL DENY POLICY COMBINER:

    boolean atLeastOnePermit = false;

    for <policy> in <policySet> {

      effect = eval(<policy>);

      if (effect == "deny" || effect == "indeterminate") {

        return "deny";

      } else if (effect == "permit") {

        atLeastOnePermit = true;

      }

    }

    if (atLeastOnePermit) {

      return "permit";

    } else {

      return "not applicable";

    }

  Policy and policy combination writers who do not wish to

  support "global deny" semantics can specify different

  combiners.

  Policy combination writers should publish the combiner they use

  to policy writers so that consistent semantics are maintained:

  if a policy combination writer is implementing "global deny",

  then the policy writers should be aware that returning an

  effect of "deny" will by itself result in denial of access.

4. VOTED TO CLOSE: ISSUE PM-1-05: how NOT-APPLICABLE impacts a

  combinator expression

  Resolution: A <rule> will return NOT-APPLICABLE under the

  following conditions:

  <rule> Truth Table:

    Target   Condition  Effect

    ------   ---------  ------------

    match    match      [Effect]

    match    no-match   Inapplicable

    match    Indet.     Indet.

    no-match match      Inapplicable

    no-match no-match   Inapplicable

    no-match Indet.     Inapplicable

  It is up to the combiner in the <policyStatement> that uses a

  <rule> to determine the effect of a <rule> that returns

  "Inapplicable".  Likewise, it is up to the combiner in the

  <policyCombinationStatement> that uses a <policyStatement> to

  determine the effect of a <policyStatement> that returns

  "Inapplicable".

  The example "GLOBAL DENY" combiners proposed in PM-1-01A can be

  used to implement "remove inapplicable elements from the

  computation" semantics.

  The following example combiners can be used to implement

  "inapplicable same as deny" semantics.  Such semantics might be

  desired where all rules are intended to be applicable, so a

  result of inapplicable indicates some breakdown in the

  consistency of the system.

  INAPPLICABLE GLOBAL DENY RULE COMBINER:

    if (<ruleSet> == null) {

      return "deny";

    }

    for <rule> in <ruleSet> {

      effect = eval(<rule>);

      if (effect == "deny" ||

          effect == "indeterminate" ||

          effect == "inapplicable") {

         return "deny";

    }

    return "permit";

  INAPPLICABLE GLOBAL DENY POLICY COMBINER:

    if (<policySet> == null) {

      return "deny"

    }

    for <policy> in <policySet> {

      effect = eval(<policy>);

      if (effect == "deny" ||

          effect == "indeterminate" ||

          effect == "inapplicable") {

        return "deny";

    }

    return "permit";

5. VOTED TO CLOSE: ISSUE PM-1-07: how can the set of combinators

  be extended?

  Resolution: the combiner algorithm to be used by a given

  <policyStatement> or <policyCombinationStatement> is specified

  using a URI.

  XACML will specify a small set of mandatory-to-implement

  combiner algorithms.  Users are free to define other

  algorithms, although not all XACML-compliant PDPs will be able

  to apply them.  The algorithm associated with a combiner URI

  MAY be descriptive text or a formal language or pseudo-code.

6. VOTED TO CLOSE: ISSUE PM-2-01: Referencing Multiple Policies

  Resolution: Multiple policies may be referenced and combined

  using a <policyCombinationStatement>.  This has the following

  syntax:

  <policyCombinationStatement>

    <target/>

    <policySet Combiner="myURI">

      <policyDesignator>

        <policyRef> or <policyStatement> or

          <policyCombinationRef> or <policyCombinationStatement> or

          <saml:assertion>

        <policyMetadata>

      </policyDesignator>

      <policyDesignator>...</policyDesignator>

      <obligations />   OPTIONAL

    </policySet>

  </policyCombinationStatement>

  The <policyDesignator> element specifies a policy to include,

  using one of various ways of referring to a policy.  There can

  be multiple <policyDesignator> elements in a

  <policyCombinationStatement>.  The "combiner" specifies how the

  various policies are to be combined to produce a result.

7. ISSUES PM-3-03, PM-3-03A, PM-2-05: There was not agreement on

   what a "base policy" is, or on whether a PDP has one, or on

   whether a PDP (or some other entity) must "publish" a PDP's

   base policy.  One camp says every PDP must have a way of

   deciding which policies and rules it will evaluate in response

   to a given authorization decision request, and the "base

   policy" states how the PDP makes that decision.  The other

   camp says that a PDP may be dealing with millions of dynamic

   policies and rules, and there can not be a single "base

   policy" to deal with all of them.

   We did agree that a PDP must have an unambiguous way to decide

   which policies may be combined to produce a result.

   Possible new issue: adding syntax to ruleSet and policySet to

   specify that rules, policyStatements,

   policyCombinationStatements are to be retrieved dynamically

   based on the authorization decision request contents.

   ACTION ITEM: Polar agreed to attempt to write new resolutions

   for issues PM-3-03, PM-3-03A, and PM-2-05.

8. VOTED TO CLOSE:  ISSUE: PM-1-01: Negative Authorizations

  Resolution: XACML allows policy writers to specify positive

  (permit) or negative (deny) authorizations.  A negative

  authorization is specified using the effect element with "deny"

  in the rule, and a rule set combiner in the corresponding

  policy such as "meta-policy-1", meaning the global-deny

  semantics. Using the rule combiner (XACML extension point), the

  semantics of the negative authorization varies depending on the

  user-defined rule combiner. PM-1-01-A discusses the global-deny

  semantics.

9. VOTED TO CLOSE: ISSUE: PM-1-02: Post-Conditions

[NOTE: we need to re-vote on this, since discussion associated

  with later issues affects some of this resolution. I have

  submitted a revised resolution. -aha]

  Resolution: We use the term "obligation" to mean what we have

  previously been calling "post condition". The issue of the term

  is addressed in PM-1-03.

  The obligation is an annotation that MAY be specified in a

  policyStatement and/or policyCombinationStatement that should

  be returned in conjunction with an authorization decision

  meaning that the obligations(s) SHOULD be executed by the

  PEP. The obligation is specified using URI reference with

  optional arguments. The processing rules of the obligation is

  defined by ruleSet combiner or policySet combiner. XACML

  provides a couple of combiner examples that deals with

  obligations in the informative section. The actual meaning of

  each obligation differs from application. It also depends on

  the configuration of the PEP and/or PDP. If the PEP does not

  understand an obligation, the PEP should deny access. The PDP

  just collects obligations.

  (from F2F#4 minutes) The set of obligations returned by each

  level of evaluation includes only those obligations associated

  with the effect element being returned by the given level of

  evaluation.  For example, a policy set may include some

  policies that return Permit and other policies that return Deny

  for a given request evaluation. If the policy combiner returns

  a result of Permit, then only those obligations associated with

  the policies that returned Permit are returned to the next

  higher level of evaluation.  If the PDP's evaluation is viewed

  as a tree of policyCombinationStatements, policyStatements, and

  rules, each of which returns "Permit" or "Deny", then the set

  of obligations returned by the PDP will include only the

  obligations associated paths where the effect at each level of

  evaluation is the same as the effect being returned by the PDP.

10. VOTED TO CLOSE: ISSUE: PM-1-03: Post-Conditions as a term

  Resolution: At the March, 2002 Face-to-Face meeting, we agreed

  to use the term "obligation" to express an annotation

  associated with an access decision that is returned to a PEP.

  This term replaces our former use of "post-condition".

11. VOTED TO CLOSE: ISSUE: PM-2-03: Meaningful Actions

  Resolution: The XACML syntax shall not address the question of

  quich actions are valid for a particular resource

  classification.

12. VOTED TO CLOSE: ISSUE: PM-2-08: Outcome of policies and their

  combination

  Resolution: the combiner algorithm to be used by a given

  <policyStatement> or <policyCombinationStatement> is specified

  using a URI.  The algorithm associated with the URI MAY be

  descriptive text.

  XACML will specify a small set of mandatory-to-implement

  combiner algorithms.  Users are free to define other

  algorithms, although not all XACML-compliant PDPs will be able

  to apply them.

  The combiner algorithm specifies how the associated <ruleSet>

  or <policySet> is combined, and what the outcome will be.

13. VOTED TO CLOSE: ISSUE: PM-3-01: Combining Policy Elements

  Resolution: PolicyCombinationStatement allows policy writers to

  specify arbitrary algorithm to combine one or more

  PolicyStatement and/or one or more

  PolicyCombinationStatement. A policySetCombiner attribute in

  the PolicyCombinationStatement is used to identify the

  combination algorithm.  PolicyMetaData MAY be used to combine

  policies.

14. VOTED TO CLOSE: ISSUE: PM-4-10: preserve PAP identity

  Resolution: a <policyStatement> or <policyCombinationStatement>

  may be referenced as a saml assertion.  In this case, the PAP

  identity, signature (if present), and other information is

  available to the associated combiner algorithm.  Otherwise, the

  PAP identity is not preserved, and is not available to the

  associated combiner algorithm.

15. VOTED TO CLOSE: ISSUE: PM-5-11: should we use a SAML

  assertion as a container for an XACML applicable policy.

  Resolution: a SAML assertion MAY be used as a container for an

  XACML <policyStatement> or <policyCombinationStatement>.  The

  policy combiner MAY ignore the container elements, or MAY

  reference them in making its decision.

16. VOTED TO CLOSE: ISSUE: PM-5-17: Boolean Expression of rules

  Resolution: The <condition> element in a <rule> can be a

  boolean expression of predicates. <rule>s are combined in a

  <policyStatement> using a "combiner" algorithm, which specifies

  how the results of the <rule>s are combined.  Likewise,

  <policyStatement>s and other <policyCombinationStatment>s are

  combined in a <policyCombinationStatement> using a "combiner"

  algorithm, which specifies how the results of the

  <policyStatement>s and <policyCombinationStatement>s are

  combined.  Some combiner algorithms may be expressed using

  boolean expressions, but other combiner algorithms will use

  other logic.  A combiner algorithm MAY be expressed using

  descriptive text rather than a formal language or pseudo-code.

17. VOTED TO CLOSE: ISSUE: PM-8-01: Internal v.s. External post

  conditions

  Resolution: XACML does not specify which entity is responsible

  for fulfilling an obligation.  If the PDP is not the

  responsible entity, it is not responsible for ensuring that the

  obligation is fulfilled.

18. VOTED TO CLOSE: ISSUE: PM-8-02: Mandatory v.s. advisory post

  conditions

  Resolution: XACML does not specify whether obligations are

  mandatory or advisory.

19. VOTED TO CLOSE: ISSUE: PM-8-03: Inapplicable

  Resolution: No obligations are returned to the PEP when the

  authorization decision is determined as inapplicable or

  indeterminate.

20. VOTED TO CLOSE: ISSUE: PM-8-04: Base policy v.s. policy

  reference

  Resolution: Obligations may be specified in both

  policyStatements and policyCombinationStatements. The scope of

  the obligation is defined in ISSUE: PM-1-02 as "The set of

  obligations returned by each level of evaluation includes only

  those obligations associated with the effect element being

  returned by the given level of evaluation.  For example, a

  policy set may include some policies that return Permit and

  other policies that return Deny for a given request

  evaluation. If the policy combiner returns a result of Permit,

  then only those obligations associated with the policies that

  returned Permit are returned to the next higher level of

  evaluation.  If the PDP's evaluation is viewed as a tree of

  policyCombinationStatements, policyStatements, and rules, each

  of which returns "Permit" or "Deny", then the set of

  obligations returned by the PDP will include only the

  obligations associated paths where the effect at each level of

  evaluation is the same as the effect being returned by the

  PDP."

  It is up to the combiner to decide which elements to evaluate.

  Only those obligations resulting from evaluated elements are

  returned to the next higher level of evaluation.

21. ISSUE: PM-8-05: How to return post-condition via SAML.  Tim

  had not had a chance to read and respond to Michiharu's most

  recent e-mail on this subject.  We decided to postpone a vote.

22. VOTED TO CLOSE: ISSUE: PM-8-06: When to execute post

  condition

  Resolution: When and how PEP executes obligation depends on

  each application. XACML (as PDP) does not assume any specific

  semantics. While obligation implies that specified operation

  must be dealt with prior to the requested access, it does not

  necessarily mean that the specified operations must be executed

  synchronously. Taking the obligatory operation usage scenario

  like "customers can register themselves with their private

  information provided that such information is deleted in 90

  days--- obligation is delete-in-90days", it is impossible to

  execute "delete-in-90days" obligation prior to the requested

  access. It would be reasonable if such operation is queued in

  the application and guaranteed to be executed later.

23. VOTED TO CLOSE: ISSUE: PM-8-07: Extension point (line 1315 is

  typo, the issue number should be PM-8-07)

  Resolution: Extension point of obligation is 1. obligationId in

  policyStatement or policyCombinationStatement and 2. ruleSet

  combiner or policySet combiner.  This allows policy writers to

  specify arbitrary identifier of the user-defined obligation and

  to specify the semantics of how obligation is computed in

  response to the access request.

24. There was discussion about "internal" obligations intended

  for execution by the PDP or by an entity associated with the

  PAP that issued a given policyStatement or

  policyCombinationStatement.  Pierangela suggested that such

  "internal" obligations should not be passed up to the next

  higher level of evaluation.  Michiharu suggested that an

  argument to the obligation could specify which entity should

  fulfill and obligation.  Anne pointed out that obligations must

  be passed up because some of them may be dropped if the effect

  produced by a higher level of evaluation does not match the

  effect produced by the policy that resulted in the "internal"

  obligation.  Ernesto pointed out that our current method of

  handling obligations does not allow them to be used for

  debugging which rules were evaluated in reaching a decision;

  there was general agreement that this was OK - debugging can

  (and probably should) be handled by other mechanisms.

25. VOTED TO CLOSE: ISSUE: MI-1-01: Consistency

  Resolution: Any glossary concerns should be resolved as part of

  the resolution for the particular issue in the PM group.

26. VOTED TO CLOSE: ISSUE: MI-1-02: Definition of Policy vs. Rule

  Resolution: A "rule" is the smallest unit from which a "policy"

  is composed.  A "rule" uses predicates that refer to attributes

  and values.

  A "policy" is a combination of rules or other policies.  A

  combination of rules is called a <policyStatement>.  A

  combination of <policyStatement>s or other

  <policyCombinationStatement>s is called a

  <policyCombinationStatement>.  A policy is the smallest

  administrative unit in XACML, and is the smallest unit that can

  be signed.  A policy does not refer to attributes and values,

  but only to combinations of rules or other policies.

27. ISSUE: MI-1-03.  We realized that Carlisle and Tim were no

   longer on the call, so we no longer had a quorum.  We need to

   find out what was the last item on which they were present for

   a vote, since one or more previous items may not have actually

   had a quorum present.

   ACTION ITEM: Carlisle and Tim look at the last few items in

   these minutes and report whether they participated in the

   vote.

28. Polar suggested we shift to making all issues and resolutions

   based on the specification itself and how it should be

   reworded.  He will raise this issue on the mailing list.

-- 

Anne H. Anderson             Email: 

Sun Microsystems Laboratories

1 Network Drive,UBUR02-311     Tel: 781/442-0928

Burlington, MA 01803-0902 USA  Fax: 781/442-1692

----------------------------------------------------------------

To subscribe or unsubscribe from this elist use the subscription

manager: <http://lists.oasis-open.org/ob/adm.pl>