XACML - eXtensible Access Control Markup Language

E' da un pò di tempo che volevo postare, le slide per una presentazione di uno studio che ho fatto sul linguaggio XACML, un linguaggio per gestire gli accessi a risorse condivise e per creare policy che regolino tali accessi.
L'idea è molto interessante, ma prevede un framework che implementi le regole descritte. E' uno standard OASIS e ha gia implentazioni in .NET e Java.
In poche parole, permette di definire delle regole per controllare l'accesso a delle risorse in ambienti distribuiti e descrive gli algoritmi con cui queste regole devono essere applicate; tutto ciò scrivendo semplicemente dei file in formato XML.
Questo un esempio di Policy, che permette qualsiasi tipo di azione per soggetti appartenenti al dominio peppedontet.it:

<?xml version="1.0" encoding="UTF-8"?>

<Policy xmlns="urn:oasis:names:tc:xacml:2.0:policy:schema:os"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oasis:names:tc:xacml:2.0:policy:schema:os http://docs.oasis-
open.org/xacml/access_control-xacml-2.0-policy-schema-os.xsd"

PolicyId="urn:oasis:names:tc:example:SimplePolicy1"
RuleCombiningAlgId="identifier:rule-combining-algorithm:deny-overrides"
>
<Description>
PeppeDotNet access control policy
</Description>
<Target/>
<Rule RuleId= "urn:oasis:names:tc:xacml:2.0:example:SimpleRule1" Effect="Permit">
<Description>
Ogni soggetto con un'e-mail del dominio peppedotnet.it
puo' effettuare ogni tipo di azioni su qualsiasi risorsa.
</Description>
<Target>
<Subjects>
<Subject>
<SubjectMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:rfc822Name-match">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">
peppedotnet.it
</AttributeValue>
<SubjectAttributeDesignator
AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id"
DataType="urn:oasis:names:tc:xacml:1.0:data-type:rfc822Name"
/>
</SubjectMatch>
</Subject>
</Subjects>
</Target>
</Rule>
</Policy>

Come potete vedere, risulta facile sia leggere che scrivere regole di questo tipo. La cosa fantastica, come tutte le tecnologie figlie dell'XML, è che il linguaggio di policy è estensibile !
Vi lascio quindiper vostro uso e consumo ;)