Az XACML(eXtensible Access Control Markup Language) egy olyan kiterjeszthető nyelv, mellyel XML formátumban lehet a felhasználók erőforrásokhoz való hozzáférésének karbantartását szabványos formában leírni. Kifinomult elosztott jogosultság ellenőrzést hivatott végezni. Mellette még ismert az SAML(Security Assertion Markup Language).
Az XACML-modell egy sokszereplős elosztott biztonsági modell, amely rugalmas jogosultság ellenőrzést tesz lehetővé. A modellben szereplő szoftvermodul egyszerre több szerepet is betölthet, tehát fizikailag nem feltétlenül kell nagy számú elemnek szerepelnie.
A legelső verzió a 2.0 amelyet az OASIS adott ki 2005. február 1-jén.
Később már elérhetővé vált az XACML 3.0 vázlata, 2009. április 16-tól.[1]
Az XACML 3.0 2011 májusában elnyerte az Influential Standardization Efforts díjat az Európai Személyazonossági Konferencián (European Identity Conference) München-ben.[2]
Az XACML folyamat a következő ellenőrzési lépésekből áll:
A házirend-adminisztrációs pont (Policy Administration Point, PAP) tartja nyilván a házirendeket és elérhetővé teszi azokat a házirend döntési pont (Policy Decision Point, PDP) számára. Ezek a házirendek egy-egy adott erőforrásra vonatkoznak.
A hozzáférés kérő entitás a kéréseit minden esetben a házirend-végrehajtó pontnak (Policy Enforcement Point, PEP) küldi el.
A PEP a kérést a Kontextuskezelő felé továbbítja, amely ettől a ponttól kezdve gyakorlatilag közvetít a többi modul között az ellenőrzési folyamat során.
A Kontextuskezelő egy XACML kérést generál a PDP felé.
A PDP – ismervén, hogy a házirend milyen tulajdonságok alapján rendelkezik, – a megfelelő attribútumokra vonatkozó információkérést visszaküldi a Kontextuskezelőnek.
A Kontextuskezelő a PDP által kért attribútumokra vonatkozó kérést elküldi a házirend információs pontnak (Policy Information Point, PIP). A PIP tudja, hogy az egyes attribútumokat honnan és milyen módon lehet lekérdezni.
A PIP összegyűjti a megfelelő helyekről (erőforrások, környezet, személyek) a kért attribútumokat.
A PIP visszaküldi a kért attribútumokat a Kontextuskezelőnek.
Ha szükséges, a Kontextuskezelő az attribútumokkal együtt a megcélzott erőforrás tartalmának egy részét is begyűjtheti (tartalomalapú döntések esetén szükség lehet erre).
A Kontextuskezelő továbbítja a kért attribútumokat (és az esetleges tartalmat) a PDP-nek.
A PDP meghozza a döntést az ismert házirendek alapján, és a döntést visszaküldi a Kontextuskezelőnek.
A Kontextuskezelő a PEP felé továbbítja a döntést.
A PEP eleget tesz a kötelezettségeinek. Ezek olyan további szükséges tevékenységek, amelyeket a PDP a döntéssel együtt előír a PEP számára. A kötelezettségek jellemzően olyan formális követelményeknek tesznek eleget, amelyeket más módon nehéz megfogalmazni hozzáférési szabályok mentén.
Amennyiben a hozzáférés engedélyezett, úgy a PEP lehetővé teszi az erőforráshoz való hozzáférést, máskülönben tiltja azt.