Extended composition

The introduction of Indeterminate decisions, the composition of rules becomes more complex. Note that for the sake of compactness, we abbreviate Indeterminate to Ind in the different definitions below.

In general, an easy way to extend the composition operators is to consider a set based interpretation of the Indeterminate decision:

Decision Set based decision
Permit {Permit}
Deny {Deny}
NA {NA}
Ind(P) {Permit, NA}
Ind(D) {Deny, NA}
Ind(PD) {Permit, Deny}
Ind(PD) {Permit, Deny, NA}

Note that Ind(PD) is mapped with two different set-based decisions. In practice, this does not make a huge difference. In other words, the decision Permit indicates that only Permit is the right decision, while Ind(P) indicates that the decision could be either Permit or NA (but not Deny). When composing extended decisions, we can simply apply the operator to every possible combination across the two set based decisions.

For instance, in order to compute POV(Ind(P), Ind(D)), we consider it as POV({Permit, NA}, {Deny, NA}), and therefore we compute the different possibilites:

  1. POV(Permit, Deny) = Permit
  2. POV(Permit, NA) = Permit
  3. POV(NA, Deny) = Deny
  4. POV(NA, NA) = NA

We can conclude that POV(Ind(P), Ind(D)) = {Permit, Permit, Deny, NA} = Ind(PD).

Note that this only applies to POVand DOV. The operators tend to keep a simple interpretation. We provide the full definitions of the extended operators below, but as an exercise, try to calculate the following:

  • POV(Permit, Ind(P)) = ?
  • POV(Permit, Ind(D)) = ?
  • POV(Deny, Ind(P)) = ?
  • DOV(Deny, Ind(P)) = ?
  • DOV(Permit, Ind(P)) = ?

Permit-Overrides

XACML proposes an algorithmic definition of POV:

The permit overrides combining algorithm is intended for those cases where a permit decision should have priority over a deny decision. This algorithm has the following behaviour:

  1. If any decision is “Permit”, the result is “Permit”.
  2. Otherwise, if any decision is “Ind{DP}", the result is “Ind{DP}".
  3. Otherwise, if any decision is “Ind{P}” and another decision is “Ind{D} or Deny, the result is “Ind{DP}".
  4. Otherwise, if any decision is “Ind{P}", the result is “Ind{P}".
  5. Otherwise, if decision is “Deny”, the result is “Deny”.
  6. Otherwise, if any decision is “Ind{D}", the result is “Ind{D}".
  7. Otherwise, the result is “NotApplicable”.
POV Permit Deny NA Ind(P) Ind (D) Ind (PD)
Permit Permit Permit Permit Permit Permit Permit
Deny Permit Deny Deny Ind (PD) Deny Ind (PD)
NA Permit Deny NA Ind (P) Ind (D) Ind (PD)
Ind(P) Permit Ind (PD) Ind (P) Ind (P) Ind (PD) Ind (PD)
Ind (D) Permit Deny Ind (D) Ind (PD) Ind (D) Ind (PD)
Ind (PD) Permit Ind (PD) Ind (PD) Ind (PD) Ind (PD) Ind (PD)

Deny-Overrides

Accord to the XACML specification, DOV is analogous to POV, but favours Deny instead of Permit.

This algorithm has the following behaviour:

  1. If any decision is “Deny”, the result is “Deny”.
  2. Otherwise, if any decision is “Indeterminate{DP}", the result is “Indeterminate{DP}".
  3. Otherwise, if any decision is “Indeterminate{D}” and another decision is “Indeterminate{P} or Permit, the result is “Indeterminate{DP}".
  4. Otherwise, if any decision is “Indeterminate{D}", the result is “Indeterminate{D}".
  5. Otherwise, if any decision is “Permit”, the result is “Permit”.
  6. Otherwise, if any decision is “Indeterminate{P}", the result is “Indeterminate{P}".
  7. Otherwise, the result is “NotApplicable”.
DOV Permit Deny NA Ind(P) Ind(D) Ind(PD)
Permit Permit Deny Permit Permit Ind(PD) Ind(PD)
Deny Deny Deny Deny Deny Deny Deny
NA Permit Deny NA Ind(P) Ind(D) Ind(PD)
Ind(P) Permit Deny Ind(P) Ind(P) Ind(PD) Ind(PD)
Ind(D) Ind(PD) Deny Ind(D) Ind(PD) Ind(D) Ind(PD)
Ind(PD) Ind(PD) Deny Ind(PD) Ind(PD) Ind(PD) Ind(PD)

PUD

PUD is directly extended from its basic definition

PUD Permit Deny NA Ind(P) Ind(D) Ind(PD)
Permit Permit Deny Permit Permit Permit Permit
Deny Deny Deny Deny Deny Deny Deny
NA Permit Deny Permit Permit Permit Permit
Ind(P) Permit Deny Permit Permit Permit Permit
Ind(D) Permit Deny Permit Permit Permit Permit
Ind(PD) Permit Deny Permit Permit Permit Permit

DUP

PUD is directly extended from its basic definition

DUP Permit Deny NA Ind(P) Ind(D) Ind(PD)
Permit Permit Permit Permit Permit Permit Permit
Deny Permit Deny Deny Deny Deny Deny
NA Permit Deny Deny Deny Deny Deny
Ind(P) Permit Deny Deny Deny Deny Deny
Ind(D) Permit Deny Deny Deny Deny Deny
Ind(PD) Permit Deny Deny Deny Deny Deny

FA

The extended definition of First-Applicable is an interesting case. Morisset & Zannone (2014) argue that the definition given in XACML is not compatible with the intuition that Indeterminate(X) decisions correspond to either X or NA. We present below the definition from Morisset & Zannone (2014) rather than the XACML one.

FA Permit Deny NA Ind(P) Ind(D) Ind(PD)
Permit Permit Permit Permit Permit Permit Permit
Deny Deny Deny Deny Deny Deny Deny
NA Permit Deny NA Ind(P) Ind(D) Ind(PD)
Ind(P) Ind(P) Ind(P) Ind(P) Ind(P) Ind(P) Ind(P)
Ind(D) Ind(D) Ind(D) Ind(D) Ind(D) Ind(D) Ind(D)
Ind(PD) Ind(PD) Ind(PD) Ind(PD) Ind(PD) Ind(PD) Ind(PD)

Only-one-applicable (OOA)

Finally, the operator OOA returns an Indeterminate decisions more than one policy returns Permit or Deny.

OOA Permit Deny NA Ind(P) Ind(D) Ind(PD)
Permit Ind(PD) Ind(PD) Permit Ind(P) Ind(D) Ind(PD)
Deny Ind(PD) Ind(PD) Deny Ind(P) Ind(D) Ind(PD)
NA Permit Deny NA Ind(P) Ind(D) Ind(PD)
Ind(P) Ind(P) Ind(P) Ind(P) Ind(P) Ind(PD) Ind(PD)
Ind(D) Ind(D) Ind(D) Ind(D) Ind(PD) Ind(D) Ind(PD)
Ind(PD) Ind(PD) Ind(PD) Ind(PD) Ind(PD) Ind(PD) Ind(PD)

Example




References

Morisset, C., & Zannone, N. (2014). Reduction of access control decisions. In Proceedings of the 19th ACM symposium on Access control models and technologies (pp. 53-62). ACM.


Last modified December 6, 2019