आपके क्लाइंट ऐप के लिए एक्सएसीएमएल 2.0 और एक्सएसीएमएल 3.0 के बीच सबसे बड़ा अंतर यह है कि ऑथेज अनुरोध में विशेषताओं की संरचना XACML 3.0 में महत्वपूर्ण रूप से बदल गई है।
<?xml version="1.0" encoding="UTF-8"?>
<Request xmlns="urn:oasis:names:tc:xacml:2.0:context:schema:os"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oasis:names:tc:xacml:2.0:context:schema:os access_control-xacml-2.0-context-schema-os.xsd">
<Subject>
<Attribute
AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id"
DataType="http://www.w3.org/2001/XMLSchema#string">
<AttributeValue>Julius Hibbert</AttributeValue>
</Attribute>
</Subject>
<Resource>
<Attribute
AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id"
DataType="http://www.w3.org/2001/XMLSchema#anyURI">
<AttributeValue>http://medico.com/record/patient/BartSimpson</AttributeValue>
</Attribute>
</Resource>
<Action>
<Attribute
AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id"
DataType="http://www.w3.org/2001/XMLSchema#string">
<AttributeValue>read</AttributeValue>
</Attribute>
</Action>
<Environment/>
</Request>
XACML 3.0, इन श्रेणियों XML का उपयोग दर्शाया गया है XML तत्व टैग के बजाय गुण:
XACML 2.0 में, गुण XML तत्व टैग का उपयोग विषय, संसाधन, पर्यावरण, या कार्रवाई श्रेणियों में संगठित गया:
<?xml version="1.0" encoding="utf-8"?>
<Request xsi:schemaLocation="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17 http://docs.oasis-open.org/xacml/3.0/xacml-core-v3-schema-wd-17.xsd" ReturnPolicyIdList="false" CombinedDecision="false" xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Attributes Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject">
<Attribute IncludeInResult="false" AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Julius Hibbert</AttributeValue>
</Attribute>
</Attributes>
<Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource">
<Attribute IncludeInResult="false" AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#anyURI">http://medico.com/record/patient/BartSimpson</AttributeValue>
</Attribute>
</Attributes>
<Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action">
<Attribute IncludeInResult="false" AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">read</AttributeValue>
</Attribute>
</Attributes>
<Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" />
</Request>
XACML 2.0 में <Subject>
तत्व उदाहरण के लिए, XACML 3.0 में <Attributes Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject">
हो जाता है। संसाधन, पर्यावरण, और कार्य श्रेणियों के लिए Ditto।
यह संरचनात्मक परिवर्तन अनुरोधों को संभालने के लिए प्रसंस्करण मॉडल को सरल बनाता है और स्कीमा सत्यापन के बिना चलाने के लिए कस्टम एप्लिकेशन-विशिष्ट या डोमेन-विशिष्ट श्रेणियों के साथ मॉडल को विस्तारित करना आसान बनाता है।
नीति परिभाषाओं में उपयोग के लिए XACML 3.0 में परिभाषित नए डेटा प्रकार और फ़ंक्शंस हैं। AnyURI डेटा प्रकार अब स्ट्रिंग डेटाटाइप से अलग है। 2.0 संयोजन एल्गोरिदम के कई नए 3.0 समकक्षों के पक्ष में बहिष्कृत किए गए हैं जो परिभाषित करते हैं कि कैसे अनिश्चित राज्य नीति निर्णय पेड़ के माध्यम से फैलते हैं। पुराने संयोजन एल्गोरिदम अभी भी "विरासत" कलाकृतियों के रूप में शामिल हैं।
XACML 2.0 अनुरोध और नीतियों को यांत्रिक रूप से XACML 3.0 प्रारूप में परिवर्तित किया जा सकता है, जिसमें जानकारी की कोई हानि नहीं होती है। 2.0 प्रतिक्रिया को वापस 2.0 प्रारूप में कनवर्ट करने योग्य है यदि आप सरल परमिट/प्रतिक्रियाओं को अस्वीकार करते हैं।
मैं यह सब समय पूछे जाते, तो मैं इसे यहाँ पोस्ट कर रहा हूँ इतने पर एक पूछे जाने वाले प्रश्न के रूप में। – dthorpe