2011-11-01 14 views
9

Estoy considerando migrar mi aplicación cliente de usar un servicio de autorización XACML 2.0 a usar un servicio XACML 3.0 más nuevo.¿En qué se diferencia XACML 3.0 de XACML 2.0?

¿Qué cambios o problemas experimentaré al migrar mi aplicación de cliente de hacer solicitudes XACML 2.0 para realizar solicitudes XACML 3.0?

+0

que me hacen esto todo el tiempo, por lo que he publicado aquí como un FAQ en SO. – dthorpe

Respuesta

11

La mayor diferencia entre XACML 2.0 y XACML 3.0 para su aplicación cliente es que la estructura de los atributos en la solicitud de autenticación ha cambiado significativamente en XACML 3.0.

En XACML 2.0, los atributos se organizaron en sujeto, recursos, medio ambiente, o las categorías de acción usando las etiquetas de elemento XML:

<?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> 

En XACML 3.0, estas categorías se indican usando los atributos XML en lugar de etiquetas de elemento 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> 

El elemento <Subject> en XACML 2.0 se convierte <Attributes Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject"> en XACML 3,0, por ejemplo. Lo mismo para las categorías de recursos, medioambiente y acción.

Este cambio estructural simplifica el modelo de procesamiento para el manejo de solicitudes y facilita la ampliación del modelo con categorías específicas de aplicación o específicas de dominio sin que se produzca una validación de esquema.

Hay nuevos tipos de datos y funciones definidas en XACML 3.0 para su uso en definiciones de políticas. El tipo de datos AnyURI ahora es distinto del tipo de datos de cadena. Varios de los 2.0 algoritmos de combinación han quedado en desuso en favor de los nuevos 3.0 equivalentes que definen con mayor precisión cómo los estados indeterminados se propagan a través del árbol de decisión de política. Los antiguos algoritmos de combinación todavía se incluyen como artefactos "heredados".

Las solicitudes y políticas de XACML 2.0 se pueden convertir mecánicamente a formato XACML 3.0 sin pérdida de información. La conversión de una respuesta 3.0 a formato 2.0 es factible si se atiene a respuestas simples de permiso/denegación.

4

Por favor, compruebe el wiki OASIS XACML TC para una lista oficial de las diferencias:

"Differences between XACML 2.0 and XACML 3.0"

En pocas palabras ...

La diferencia clave entre XACML 2.0 y 3.0 XACML está en nuevas características tales como expresiones

  • de obligación: se puede tener partes dinámicas a sus declaraciones de obligación
  • la introducción de asesoramiento que efectivamente está generalizando las obligaciones a un alcance más amplio
  • la introducción de XACML v3.0 Administration and Delegation Profile Version 1.0. Hasta la fecha, Axiomatics y ViewDS (http://www.viewDs.com) son las únicas implementaciones completas de XACML 3.0 que incluyen delegación. Es una característica clave para las implementaciones en la nube y federadas. El modelo de delegación es el resultado de más de 5 años de R & D en el Instituto Sueco de Ciencias de la Computación (SICS).

Esta información se resume en la página XACML TC wiki en OASIS. El TC está respaldado por una organización líder como Oracle, IBM y Axiomatics. El editor de XACML 3.0 especificación es CTO de Axiomatics, Erik Rissanen.

Además, Kuppinger Cole pronunció un seminario web sobre el tema: "Policy Based Access Control with XACML 3.0".

Por último, resumí las nuevas características en "Enhancements and new features in #XACML 3.0".

+2

El wiki de Oasis tiene mucho si se trata de información acerca de las diferencias entre Xacml 2.0 y Xamcl 3.0, pero se trata de sintaxis y características de política. Las aplicaciones cliente son principalmente ajenas a ese nivel de detalle interno de PDP. Para la pregunta "¿Cómo afectará el cambio de 2.0 a 3.0 a mi código de cliente?", Debemos analizar los cambios en la solicitud y respuesta. – dthorpe

Cuestiones relacionadas