XACML

Overview[1]#

XACML stands for eXtensible Access Control Markup Language. XACML is a Policy Based Management System that defines a declarative Access Control policy language implemented in XML and a processing model describing how to evaluate authorization requests according to the rules defined in policies.

As a published standard specification, one of the goals of XACML is to promote common terminology and interoperability between authorization implementations by multiple vendors.

XACML is primarily an Attribute Based Access Control (ABAC) system, where attributes associated with an Entity or Resource Action or resource are inputs into the decision of whether a given Entity may access a given resource and perform a particular Resource Action.

Role Based Access Control (RBAC) can also be implemented in XACML as a specialization of ABAC.

The XACML model supports and encourages the separation of the authorization decision from the point of use. When authorization decisions are baked into client applications (or based on local machine users and Access Control Lists (ACLs)), it is very difficult to update the decision criteria when the governing policy changes. When the client is decoupled from the authorization decision, authorization policies can be updated on the fly and affect all clients immediately.

Core RBAC and XACML#

Core RBAC, includes the following five basic data elements:

Core RBAC requires support for multiple users per role, multiple roles per user, multiple permissions per role, and multiple roles per permission. Each of these requirements can be satisfied by XACML policies based on this Profile as follows. Note, however, that the actual assignment of roles to users is outside the scope of the XACML PDP.

XACML Versions#

For the latest information visit the OASIS eXtensible Access Control Markup Language (XACML) TC site and their Wiki.

XACML is dead [2]#

Here are the reasons why we predict XACML is dead: There might be more information for this subject on one of the following: