XACML
# XACML

XACML (eXtensible Access Control Markup Language) est une spécification qui définit un langage pour le contrôle d'accès, la circulation des règles et l'administration de la politique de sécurité des systèmes d'information. XACML est souvent utilisé pour assurer la fonction d'autorisation dans les architectures SOA.

Le standard XACML est maintenu par OASIS.

## Architecture

### Définition

XACML définit les composants suivants:

* Policy Enforcement Point (PEP): le point d'application de la décision. Le PEP protège l'application ciblée.
* Policy Decision Point (PDP): le point de décision de la politique. Le PDP est le moteur de l'architecture. C'est l'endroit où les politiques sont évaluées et comparées contre les requêtes d'autorisation.
* Policy Information Point (PIP): le point d'information est le point où le PDP peut se connecter à des sources externes d'attributs comme LDAP ou une base de données. L'idée est que lors de l'évaluation d'une requête contre une politique, le PDP a besoin d'informations (attributs) supplémentaires pour obtenir une décision. Si par exemple,
   * la règle d'accès est seuls les managers peuvent lire le document
   * la requête est Alice peut-elle lire le document #123?
   * Le PDP demande alors au PIP: quel est le rôle d'Alice? et le PIP répond alors manager.
* Policy Retrieval Point (PRP): le point de stockage des politiques. En somme, le PRP n'est qu'une base de données ou un endroit dans un dossier où sont stockées les politiques.
* Policy Administration Point (PAP): le point d'administration des politiques est l'endroit où les politiques de contrôle d'accès sont éditées.

### Versions

La version 1.0 a été ratifiée par l'organisme de standardisation OASIS en 2003.

La version 2.0 a été ratifiée par l'organisme de standardisation OASIS en 2005.

La version 3.0 a été ratifiée par l'organisme de standardisation OASIS en 2013

