Figure 1: Pluggable extension handler pipeline.
research. After a thoroughly evaluation of the access
control requirements in INTEGRATE it was decided
to use XACML as authorisation solution. In this
paper the proposed solution therefore focuses on
XACML.
2.1 XACML
Attribute-Based Access Control (ABAC) presents an
access control model inherently capable of meeting
many of the “modern” access control demands (e.g.
data dependent access policies, environment
dependent policies, etc.). In ABAC, attributes that
are associated with a user, action or resource serve
as inputs to the decision of whether a given user may
access a given resource in a particular way.
The eXtensible Access Control Markup
Language (XACML) (OASIS, 2005) implements
ABAC. It is a XML based declarative access control
policy language defining both a policy, decision
request and decision response language. XACML
contains several profiles for supporting RBAC,
multiple resources, hierarchical resource, etc.
Although it offers a wide-range functional solution
for access control, it lacks support for the problem of
contextualisation.
2.2 Solution through Management
Tools
A straightforward solution for contextualisation in
XACML would be shifting the responsibilities to the
policy authoring tools. This basically means that for
each context instance separate policy files would
need to be generated, e.g. from templates describing
the default context policies. Although this approach
seems easy to implement at first sight, it suffers
from the inherent issues associated with all “auto-
generating” solutions (be it for configurations or
source code). Every change requires many policies
to be rewritten (regenerated) and possibly
redistributed. Furthermore, synchronisation becomes
a big issue when one wants to allow exceptions in
auto-generated policies (“manual” additions). For
this reasons, this solution is not the most favourable
for large scale environments such as INTEGRATE.
3 CONTEXTUAL ATTRIBUTES
3.1 Extending XACML Functionality
The main approach taken to enrich the XACML
functionality with contextual attributes is not to
make changes in the core XACML specification,
such that no modifications are needed to the
standard XACML access control decision
mechanism (meaning standard XACML Policy
Decision Points (PDP) can be used in
implementations). Instead, the XACML requests are
enhanced using a generic extension mechanism, in a
way that extensions to the XACML specification can
easily be added or be removed without needing to
touch the core of the policy language and XACML
compliant decision engines (see Figure 1). Extension
handlers are placed in a pipeline between the context
handler (strictly speaking the extensions are part of
the context handler) and the PDP. An extension
handler gets as input an XACML request from
another extension handler or the context handler;
subsequently transforms this request; and finally
feeds the transformed request to the next extension
or the PDP engine (last stage in the pipeline). This
mechanism has previously been successfully applied
for automatically translating attributes between
different security contexts and semantically
expanding them (Ciuciu et al. 2011).
3.2 Contextualisation Extension
The contextualisation extension handler proposed,
splits up an incoming XACML request (containing
possible multiple contexts and context instances in
the attributes) in multiple single-context requests.
More specifically, for each different context instance
that is included in the original XACML request, a
separate new context-specific XACML request is
generated (see Figure 2). These context-specific
requests are sent separately to the PDP engine for
evaluation. By splitting up the requests, the PDP
engine can provide an access decision for each
context instance using manageable context-specific
policies. The XACML responses containing the
context-specific access decisions are sent back to the
contextualisation extension handler where a global
ContextualisationofABACAttributesthroughaGenericXACMLFunctionalityExtensionMechanism
53