eXtensible Access Control Markup Language
XACML is a standardized, XML-based language for writing and evaluating access control policies that decide whether a request to perform an action should be permitted or denied. It lets organizations express authorization rules in a common format that different systems can share and enforce. It is an authorization mechanism and does not itself authenticate users.
XACML is an OASIS-standardized, XML-based policy language for representing, exchanging, and evaluating fine-grained authorization policies, first made available in 2003 with XACML 3.0 as a later core specification revision. It defines a syntax and framework for expressing access control rules and is commonly used to implement attribute-based access control (ABAC), where authorization decisions are based on attributes of the subject, resource, action, and environment. XACML also describes a reference architecture and evaluation model in which a Policy Decision Point (PDP) evaluates requests against policies and returns a decision; per the evidence, it addresses concerns such as how a PDP should handle multiple attribute values. XACML governs authorization (what a principal may do) and does not perform identification or authentication. Note that specific PDP/PEP/PIP deployment behavior depends on the implementing product and configuration, which is out of scope for the language standard itself.
Why it matters
XACML addresses a persistent problem in identity and access management: authorization logic tends to be scattered across applications, hardcoded into business logic, and inconsistently enforced. By providing an OASIS-standardized, XML-based language for expressing access control policies, XACML lets organizations externalize authorization decisions from individual applications and express rules in a common format that multiple systems can share and evaluate. This separation of policy from code is valuable for consistency, auditability, and the ability to change access rules without rewriting applications.
As the recognized standard language for implementing attribute-based access control (ABAC), XACML matters most where fine-grained, context-aware authorization is required, where a simple role check is insufficient and decisions must weigh attributes of the subject, resource, action, and environment. Because the language is standardized rather than vendor-proprietary, policies can in principle be exchanged and interpreted across conforming implementations, which supports interoperability goals in heterogeneous environments.
It is important to keep XACML's scope precise: it governs authorization, what a principal may do, and does not perform identification or authentication. Verifying who a user is remains a separate concern handled by other mechanisms. XACML's value lies in structuring the decision of whether a given request should be permitted or denied, not in establishing the identity that the request is attributed to.
Who it's relevant to
Inside XACML
Common questions
Answers to the questions practitioners most commonly ask about XACML.
