stringtranslate.com

XACML

El lenguaje de marcado de control de acceso extensible ( XACML ) es un lenguaje de marcado estándar basado en XML para especificar políticas de control de acceso . El estándar, publicado por OASIS , define un lenguaje de políticas de control de acceso basado en atributos y de granularidad detallada , una arquitectura y un modelo de procesamiento que describe cómo evaluar las solicitudes de acceso de acuerdo con las reglas definidas en las políticas. [2]

XACML es principalmente un sistema de control de acceso basado en atributos . En XACML, los atributos (información sobre el sujeto que accede a un recurso, el recurso al que se accede y el entorno) actúan como entradas para la decisión de si se concede o no el acceso. [3] XACML también se puede utilizar para implementar el control de acceso basado en roles . [4]

En XACML, las decisiones de control de acceso que se deben tomar se expresan como reglas. Cada regla comprende una serie de condiciones que deciden si una solicitud dada se aprueba o no. Si una regla es aplicable a una solicitud pero las condiciones dentro de la regla no se pueden evaluar, el resultado es indeterminado. Las reglas se agrupan en políticas, y un conjunto de políticas contiene políticas y posiblemente otros conjuntos de políticas. Cada uno de estos también incluye un objetivo, una condición simple que determina si se debe evaluar para una solicitud dada. Se pueden utilizar algoritmos de combinación para combinar reglas y políticas con resultados potencialmente diferentes de varias maneras. XACML también admite obligaciones y expresiones de asesoramiento. Las obligaciones especifican acciones que se deben ejecutar durante el procesamiento de una solicitud, por ejemplo, para el registro. Las expresiones de asesoramiento son similares, pero se pueden ignorar. [3]

XACML divide la funcionalidad de control de acceso en varios componentes. Cada entorno operativo en el que se utiliza el control de acceso tiene un Punto de Aplicación de Políticas (PEP) que implementa la funcionalidad para solicitar autorización y conceder o denegar el acceso a los recursos. Estos hacen referencia a un Punto de Decisión de Políticas (PDP) central e independiente del entorno que, en realidad, toma la decisión sobre si se concede el acceso. El PDP hace referencia a las políticas almacenadas en el Punto de Recuperación de Políticas (PRP). Las políticas se gestionan a través de un Punto de Administración de Políticas (PAP). [3]

La versión 3.0 fue ratificada por OASIS en enero de 2013. [5]

Historia

La versión 1.0 fue ratificada por la organización de estándares OASIS en 2003. [ cita requerida ]

La versión 2.0 fue ratificada por la organización de estándares OASIS el 1 de febrero de 2005. [ cita requerida ]

La versión 3.0 fue ratificada por OASIS en enero de 2013.

Arquitectura

Terminología

Terminología no normativa (según RFC 2904, excepto PAP)

Fluir

Esta imagen muestra la arquitectura XACML y un flujo de autorización de muestra.
Esta imagen muestra la arquitectura XACML y un flujo de autorización de muestra.
  1. Un usuario envía una solicitud que es interceptada por el Punto de cumplimiento de políticas (PEP)
  2. El PEP convierte la solicitud en una solicitud de autorización XACML
  3. El PEP envía la solicitud de autorización al Punto de Decisión Política (PDP)
  4. El PDP evalúa la solicitud de autorización en relación con las políticas con las que está configurado. Las políticas se adquieren a través del Punto de recuperación de políticas (PRP) y se administran mediante el Punto de administración de políticas (PAP). Si es necesario, también recupera valores de atributos de los Puntos de información de políticas (PIP) subyacentes.
  5. El PDP llega a una decisión (Permitir/Denegar/No Aplicable/Indeterminado) y la devuelve al PEP

Elementos de política

Elementos estructurales

XACML está estructurado en 3 niveles de elementos:

Un conjunto de políticas puede contener cualquier cantidad de elementos de políticas y elementos de conjunto de políticas. Una política puede contener cualquier cantidad de elementos de reglas.

Atributos y categorías

Las políticas, los conjuntos de políticas, las reglas y las solicitudes utilizan sujetos, recursos, entornos y acciones.

Objetivos

XACML proporciona un objetivo, que es básicamente un conjunto de condiciones simplificadas para el sujeto, el recurso y la acción que se deben cumplir para que un conjunto de políticas, una política o una regla se apliquen a una solicitud determinada. Una vez que se determina que una política o un conjunto de políticas se aplican a una solicitud determinada, se evalúan sus reglas para determinar la decisión de acceso y la respuesta.

Además de ser una forma de comprobar la aplicabilidad, la información de destino también proporciona una forma de indexar políticas, lo que resulta útil si necesita almacenar muchas políticas y luego examinarlas rápidamente para encontrar cuáles son las que se aplican. Cuando llega una solicitud para acceder a ese servicio, el PDP sabrá dónde buscar políticas que puedan aplicarse a esta solicitud porque las políticas se indexan en función de sus restricciones de destino. Tenga en cuenta que un destino también puede especificar que se aplica a cualquier solicitud.

Un conjunto de políticas, una política y una regla pueden contener elementos objetivo.

Condiciones

Las condiciones solo existen en las reglas. Las condiciones son, en esencia, una forma avanzada de un objetivo que puede utilizar una gama más amplia de funciones y, lo que es más importante, se pueden utilizar para comparar dos o más atributos entre sí, por ejemplo, subject-id==doctor-id. Con las condiciones, es posible implementar la segregación de comprobaciones de funciones o el control de acceso basado en relaciones.

Obligaciones y consejos

En XACML, se puede utilizar un concepto denominado obligaciones. Una obligación es una directiva que va desde el punto de decisión de política (PDP) hasta el punto de aplicación de política (PEP) sobre lo que se debe llevar a cabo antes o después de que se apruebe un acceso. Si el PEP no puede cumplir con la directiva, el acceso aprobado puede o no realizarse. La ampliación de las obligaciones elimina una brecha entre los requisitos formales y la aplicación de políticas. Un ejemplo de una obligación podría ser el siguiente:

Regla de control de acceso: Permitir el acceso al recurso MedicalJournal con el atributo patientID=x Si el sujeto coincide con el médico designado del paciente y la acción se lee con obligación en Permiso: doLog_Inform(patientID, Asunto, hora) en Denegar: doLog_UnauthorizedLogin(patientID, Asunto, hora)

La obligación de XACML puede ser una forma eficaz de cumplir con requisitos formales (por ejemplo, no repudio) que pueden ser difíciles de implementar como reglas de control de acceso. Además, cualquier requisito formal será parte de la política de control de acceso como obligaciones y no como funciones separadas, lo que hace que las políticas sean coherentes y que la centralización del entorno de TI sea más fácil de lograr.

Las obligaciones se pueden utilizar para situaciones de "romper el cristal" o de elevación de la confianza ("no se pueden transferir $1,000 sin autenticación de dos factores; aquí está el enlace a la página 2FA").

Además de las obligaciones, XACML admite consejos que son idénticos a las obligaciones, con la diferencia de que una PEP no está obligada a hacer cumplir el consejo (de ahí su nombre).

Combinando algoritmos

¿Qué sucede en XACML si hay dos reglas (o políticas) que se contradicen entre sí? Imaginemos, por ejemplo, una primera regla que diga que los administradores pueden ver documentos y una segunda regla que diga que nadie puede trabajar antes de las 9 a. m . ¿Qué sucede si la solicitud se refiere a que Alice intenta ver un documento a las 8 a. m.? ¿Qué regla gana? Esto es lo que nos dicen los algoritmos de combinación. Ayudan a resolver conflictos.

XACML define una serie de algoritmos de combinación que se pueden identificar mediante un atributo RuleCombiningAlgId o PolicyCombiningAlgId de los elementos <Policy> o <PolicySet>, respectivamente. El algoritmo de combinación de reglas define un procedimiento para llegar a una decisión de acceso dados los resultados individuales de la evaluación de un conjunto de reglas. De manera similar, el algoritmo de combinación de políticas define un procedimiento para llegar a una decisión de acceso dados los resultados individuales de la evaluación de un conjunto de políticas.

Funciones

XACML define una larga lista de funciones (cerca de 300) para manipular y comparar atributos con otros atributos y valores:

Las funciones y sus identificadores se describen en detalle en el estándar. Las funciones son específicas de cada tipo, es decir, hay una función para la igualdad de cadenas y otra para la igualdad de números enteros.

Igualdad, desigualdad y otras funciones de correspondencia

Funciones aritméticas

Consulte la norma para obtener una definición formal de estas funciones.

Funciones de cadena

Consulte la norma para obtener una definición formal de estas funciones.

Funciones lógicas (y, o, no)

Funciones de conjunto y bolsa

Funciones de expresión regular

Funciones XPath

Funciones de orden superior

La lista de funciones de orden superior se muestra a continuación. Para obtener una definición formal, consulte el estándar XACML.

XACML 3.0

Esquema

http://docs.oasis-open.org/xacml/3.0/xacml-core-v3-schema-wd-17.xsd

Tipos de datos

Novedades en XACML 3.0

Nuevos perfiles

XACML 3.0 introduce la delegación administrativa, el perfil JSON de XACML (solicitud/respuesta), el perfil REST de XACML, el perfil de decisión múltiple de XACML y muchos más.

Delegación

La implementación de la delegación es nueva en XACML 3.0. El mecanismo de delegación se utiliza para respaldar la administración descentralizada de políticas de acceso. Permite que una autoridad (delegante) delegue toda o parte de su propia autoridad o la autoridad de otra persona a otro usuario (delegado) sin necesidad de modificar la política raíz.

Esto se debe a que, en este modelo de delegación, los derechos de delegación están separados de los derechos de acceso. En cambio, se los denomina políticas de control administrativo. El control de acceso y las políticas administrativas funcionan juntas como en el siguiente escenario:

Los numerosos servicios de una asociación de empresas están protegidos por un sistema de control de acceso. El sistema implementa las siguientes reglas centrales para proteger sus recursos y permitir la delegación:

Reglas de control de acceso: Permitir acceso Para recurso con atributo WebService si el sujeto es Empleado y la acción es lectura o escritura. Reglas de control administrativo: Permitir la delegación de la regla de control de acceso n.° 1 a sujetos con atributo Consultor. Condiciones: La delegación debe expirar en el plazo de 6 meses, El recurso no debe tener el atributo StrictlyInternal. 

(Los atributos se pueden obtener de una fuente externa, por ejemplo, un catálogo LDAP).

Cuando un consultor ingresa a la corporación, se puede emitir una delegación localmente por parte del supervisor del consultor, autorizándolo a acceder directamente a los sistemas.

El delegante (el supervisor en este escenario) solo puede tener derecho a delegar un conjunto limitado de derechos de acceso a los consultores.

Otras características

Otras nuevas características de XACML 3.0 se enumeran en http://www.webfarmr.eu/2010/07/enhancements-and-new-features-in-xacml-3-axiomatics/

El TC XACML también está publicando una lista de cambios aquí: http://wiki.oasis-open.org/xacml/DifferencesBetweenXACML2.0AndXACML3.0

Políticas de muestra

Autorización basada en fecha y hora en XACML

Esta regla implementa el paradigma de control de acceso "úsalo, piérdelo". Si un usuario no inicia sesión durante 30 días, pierde el acceso.

En pseudocódigo: denegar si currentDateTime > lastLogin + 30 días

<Rule RuleId="f6637b3f-3690-4cce-989c-2ce9c053d6fa" Effect="Deny" > <Description> Úselo o piérdalo: esta política niega el acceso si lastLogin es más de 30 días después de la fecha de hoy </Description> <Target/> <Condition> <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:any-of" > <Function FunctionId="urn:oasis:names:tc:xacml:1.0:function:dateTime-greater-than" /> <Apply FunctionId="urn:oasis:names:tc:xacml:3.0:function:dateTime-add-dayTimeDuration" > <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:dateTime-one-and-only" > <AttributeDesignatorCategoría="urn:oasis:nombres:tc:xacml:1.0:categoría-asunto:asunto-acceso"AtributoId="com.acme.user.lastLogin"Tipo de datos="http://www.w3.org/2001/XMLSchema#dateTime" MustBePresent="false" /> </Aplicar> <Valor del atributo Tipo de datos="http://www.w3.org/2001/XMLSchema#dayTimeDuration" > P30D </Valor del atributo > </Aplicar> < Designador del atributoCategoría="urn:oasis:nombres:tc:xacml:3.0:categoría-atributo:entorno"AttributeId="urn:oasis:names:tc:xacml:1.0:environment:fecha-hora-actual"Tipo de datos="http://www.w3.org/2001/XMLSchema#dateTime" MustBePresent="false" /> </Aplicar> </Condición > </Regla>

Autorización basada en tiempo en XACML

Esta regla otorga acceso si la hora actual es mayor que las 9 a. m. y menor que las 5 p. m.

<Rule RuleId="c01d7519-be21-4985-88d8-10941f44590a" Effect="Permit" > <Description> Permitir si la hora es entre 9 y 5 </Description> <Target> <AnyOf> <AllOf> <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:time-greater-than" > <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#time" > 09:00:00 </AttributeValue> <AttributeDesignatorCategoría="urn:oasis:nombres:tc:xacml:3.0:categoría-atributo:entorno"AttributeId="urn:oasis:nombres:tc:xacml:1.0:entorno:hora actual"MustBePresent="falso"TipoDatos="http://www.w3.org/2001/XMLSchema#tiempo" /> </Coincidencia> </Todos> </Cualquiera> <Cualquiera> <Cualquiera> <Todos> <Coincidencia MatchId="urn:oasis:names:tc:xacml:1.0:función:tiempo-menor-que" > <ValorDeAtributo TipoDatos="http://www.w3.org/2001/XMLSchema#tiempo" > 17:00:00 </ValorDeAtributo> <DesignadorDeAtributoCategoría="urn:oasis:nombres:tc:xacml:3.0:categoría-atributo:entorno"AttributeId="urn:oasis:nombres:tc:xacml:1.0:entorno:hora actual"MustBePresent="falso"Tipo de datos="http://www.w3.org/2001/XMLSchema#time" /> </Coincidencia> </Todos> </Cualquiera> </Objetivo> </Regla>

Ejemplos de solicitudes y respuestas

Solicitud XACML 3.0

<xacml-ctx:Request ReturnPolicyIdList="true" CombinedDecision="false" xmlns:xacml-ctx="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" >  <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" >  <xacml-ctx:Attribute AttributeId="actionId" IncludeInResult="true" >  <xacml-ctx:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string" > vista </xacml-ctx:AttributeValue>  </xacml-ctx:Attribute>  </xacml-ctx:Attributes>  <xacml-ctx:Attributes Categoría="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" >  <xacml-ctx:Attribute AttributeId="id-resource" IncludeInResult="true" >  <xacml-ctx:AttributeValue TipoDatos="http://www.w3.org/2001/XMLSchema#string" > doc#123 </xacml-ctx:AttributeValue>  </xacml-ctx:Attribute>  </xacml-ctx:Attributes>  <xacml-ctx:Attributes Categoría="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" >  <xacml-ctx:Attribute AttributeId="user.identifier" IncludeInResult="true" >  <xacml-ctx:AttributeValue Tipo de datos="http://www.w3.org/2001/XMLSchema#string" > Alice </xacml-ctx:Valor del atributo>  </xacml-ctx:Atributo>  </xacml-ctx:Atributos> </xacml-ctx:Solicitud>

Respuestas de XACML 3.0

Respuesta de muestra de XACML 3.0

<xacml-ctx:Respuesta xmlns:xacml-ctx="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" >  <xacml-ctx:Resultado>  <xacml-ctx:Decisión> No aplicable </xacml-ctx:Decisión>  <xacml-ctx:Estado>  <xacml-ctx:Código de estado Valor="urn:oasis:names:tc:xacml:1.0:status:ok" />  </xacml-ctx:Estado>  </xacml-ctx:Resultado> </xacml-ctx:Respuesta>

Ejemplo de respuesta con obligación en XACML 3.0

A continuación, se incluye un bloque de obligaciones. Las obligaciones son instrucciones que se pueden devolver junto con una decisión para enriquecer el flujo de decisiones. En este ejemplo, el PEP debe registrar que se concedió el acceso.

<xacml-ctx:Respuesta xmlns:xacml-ctx="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" >  <xacml-ctx:Resultado>  <xacml-ctx:Decisión> Permiso </xacml-ctx:Decisión>  <xacml-ctx:Estado>  <xacml-ctx:StatusCode Value="urn:oasis:names:tc:xacml:1.0:status:ok" />  </xacml-ctx:Estado>  <xacml-ctx:Obligaciones>  <xacml-ctx:Obligación ObligationId="logAccess" >  </xacml-ctx:Obligación>  </xacml-ctx:Obligaciones>  <xacml-ctx:PolicyIdentifierList>  <xacml-ctx:PolicyIdReference Versión="1.0" > http://www.axiomatics.com/identificador-unico-automatico/18a9eae9-c92b-4087-b2ac-c5a33d7ff477 </xacml-ctx:ReferenciaIdPolicía>  </xacml-ctx:ListaIdentificadorPolicía>  </xacml-ctx:Resultado> </xacml-ctx:Respuesta>

El perfil de decisión múltiple de XACML 3.0

De manera predeterminada, un PDP procesa una sola solicitud a la vez, por ejemplo, "¿Puede Alice ver el elemento n.° 1?". Luego, el PDP responde con una sola decisión. Sin embargo, a veces es necesario enviar varias solicitudes a la vez, por ejemplo, "¿Puede Alice ver/editar/eliminar los elementos n.° 1, n.° 2, n.° 3?". El perfil de decisiones múltiples de XACML permite este caso de uso. El PDP generalmente realizará el producto de todas las combinaciones, es decir, en el ejemplo mencionado anteriormente, se devolverán 1 x 3 x 3 = 9 decisiones en una sola respuesta.

Ejemplo de solicitud JSON para el perfil de decisiones múltiples

La forma de habilitar el MDP es enviar una matriz de objetos para cualquiera de las categorías en lugar de una matriz de un objeto (o simplemente un objeto). Por ejemplo, AccessSubject es un objeto, pero Resource es una matriz de objetos. Este último activará el proceso MDP en los PDP que admitan el perfil. Observe también el uso del atributo IncludeInResult que indica al PDP que devuelva el atributo XACML y su valor en la respuesta para que las decisiones se puedan correlacionar con los valores de los atributos relevantes.

{ "Solicitud" : { "ReturnPolicyIdList" : verdadero , "AccessSubject" : { "Atributo" : [{ "AttributeId" : "com.acme.user.username", "Valor" : "Alice" }] }, "Recurso" : [{ "Atributo" : [{ "AttributeId" : "com.acme.objectType", "Valor" : "registro" }, { "AttributeId" : "com.acme.record.recordId", "Valor" : "123", "IncludeInResult" : verdadero }] },{ "Atributo" : [{ "AttributeId" : "com.acme.objectType", "Valor" : "registro" }, { "AttributeId" : "com.acme.record.recordId", "Valor" : "124", "IncludeInResult" : verdadero }] },{ "Atributo" : [{ "AttributeId" : "com.acme.objectType", "Valor" : "registro" }, { "AttributeId" : "com.acme.record.recordId", "Valor" : "125", "IncludeInResult" : verdadero }] }], "Acción" : [{ "Atributo" : [{ "AttributeId" : "com.acme.action", "Valor" : "vista", "IncludeInResult" : verdadero }] },{ "Atributo" : [{ "AttributeId" : "com.acme.action", "Valor" : "editar", "IncludeInResult" : verdadero }] },{ "Atributo" : [{ "AttributeId" : "com.acme.action", "Valor" : "eliminar", "IncludeInResult" : verdadero }] }] }}

Respuesta JSON de muestra para el perfil de decisiones múltiples

{ "Respuesta" : [ { "Decisión" : "Denegar", "Estado" : { "Código de estado" : { "Valor" : "urn:oasis:names:tc:xacml:1.0:status:ok" } }, "AssociatedAdvice" : { "Id" : "com.acme.message", "Asignación de atributo" : [ { "AttributeId" : "com.acme.messageContent", "Value" : "Acceso denegado: autorización insuficiente.", "Category" : "urn:oasis:names:tc:xacml:3.0:attribute-category:environment", "DataType" : "http://www.w3.org/2001/XMLSchema#string" }, { "AttributeId" : "com.acme.user.clearance", "Valor" : "1", "Categoría" : "urn:oasis:names:tc:xacml:1.0:subject-category:access-subject", "DataType" : "http://www.w3.org/2001/XMLSchema#integer" }, { "AttributeId" : "com.acme.record.classification", "Valor" : "3", "Categoría" : "urn:oasis:names:tc:xacml:3.0:attribute-category:resource", "DataType" : "http://www.w3.org/2001/XMLSchema#integer" } ] }, "Categoría" : [ { "CategoryId" : "urn:oasis:names:tc:xacml:3.0:attribute-category:resource", "Atributo" : { "AttributeId" : "com.acme.record.recordId", "Valor" : "125", "DataType" : "http://www.w3.org/2001/XMLSchema#string" } }, { "CategoryId" : "urn:oasis:names:tc:xacml:3.0:attribute-category:action", "Attribute" : { "AttributeId" : "com.acme.action", "Value" : "view", "DataType" : "http://www.w3.org/2001/XMLSchema#string" } } ], "Lista de identificadores de políticas" : { "Referencia de identificador de política" : [ { "Id" : "311a93c0-6e4c-47a0-8e05-76feb39f25e0", "Versión" : "1" }, { "Id" : "c6b75be8-f3cb-4bda-9b63-812a1f7e5fae", "Versión" : "1" } ], "Referencia de Id. de conjunto de políticas" : [ { "Id" : "1016337f-f5f8-4ed4-bd4e-9a2be01fa211", "Versión" : "1" }, { "Id" : "http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54", "Versión" : "1.0" } ] } }, { "Decisión" : "Denegar", "Estado" : { "Código de estado" : { "Valor" : "urn:oasis:names:tc:xacml:1.0:status:ok" } }, "AssociatedAdvice" : { "Id" : "com.acme.message", "Asignación de atributo" : [ { "AttributeId" : "com.acme.messageContent", "Value" : "Acceso denegado: autorización insuficiente.", "Category" : "urn:oasis:names:tc:xacml:3.0:attribute-category:environment", "DataType" : "http://www.w3.org/2001/XMLSchema#string" }, { "AttributeId" : "com.acme.user.clearance", "Valor" : "1", "Categoría" : "urn:oasis:names:tc:xacml:1.0:subject-category:access-subject", "DataType" : "http://www.w3.org/2001/XMLSchema#integer" }, { "AttributeId" : "com.acme.record.classification", "Valor" : "2", "Categoría" : "urn:oasis:names:tc:xacml:3.0:attribute-category:resource", "DataType" : "http://www.w3.org/2001/XMLSchema#integer" } ] }, "Categoría" : [ { "CategoryId" : "urn:oasis:names:tc:xacml:3.0:attribute-category:resource", "Atributo" : { "AttributeId" : "com.acme.record.recordId", "Valor" : "124", "DataType" : "http://www.w3.org/2001/XMLSchema#string" } }, { "CategoryId" : "urn:oasis:names:tc:xacml:3.0:attribute-category:action", "Attribute" : { "AttributeId" : "com.acme.action", "Value" : "view", "DataType" : "http://www.w3.org/2001/XMLSchema#string" } } ], "Lista de identificadores de políticas" : { "Referencia de identificador de política" : [ { "Id" : "311a93c0-6e4c-47a0-8e05-76feb39f25e0", "Versión" : "1" }, { "Id" : "c6b75be8-f3cb-4bda-9b63-812a1f7e5fae", "Versión" : "1" } ], "Referencia de Id. de conjunto de políticas" : [ { "Id" : "1016337f-f5f8-4ed4-bd4e-9a2be01fa211", "Versión" : "1" }, { "Id" : "http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54", "Versión" : "1.0" } ] } }, { "Decisión" : "Denegar", "Estado" : { "Código de estado" : { "Valor" : "urn:oasis:names:tc:xacml:1.0:status:ok" } }, "Categoría" : [ { "CategoryId" : "urn:oasis:names:tc:xacml:3.0:attribute-category:resource", "Atributo" : { "AttributeId" : "com.acme.record.recordId", "Valor" : "123", "DataType" : "http://www.w3.org/2001/XMLSchema#string" } }, { "CategoryId" : "urn:oasis:names:tc:xacml:3.0:attribute-category:action", "Attribute" : { "AttributeId" : "com.acme.action", "Value" : "edit", "DataType" : "http://www.w3.org/2001/XMLSchema#string" } } ], "Lista de identificadores de políticas" : { "Referencia de identificador de política" : { "Id" : "c6b75be8-f3cb-4bda-9b63-812a1f7e5fae", "Versión" : "1" }, "Referencia de Id. de conjunto de políticas" : [ { "Id" : "1016337f-f5f8-4ed4-bd4e-9a2be01fa211", "Versión" : "1" }, { "Id" : "http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54", "Versión" : "1.0" } ] } }, { "Decisión" : "Denegar", "Estado" : { "Código de estado" : { "Valor" : "urn:oasis:names:tc:xacml:1.0:status:ok" } }, "Categoría" : [ { "CategoryId" : "urn:oasis:names:tc:xacml:3.0:attribute-category:resource", "Atributo" : { "AttributeId" : "com.acme.record.recordId", "Valor" : "123", "DataType" : "http://www.w3.org/2001/XMLSchema#string" } }, { "CategoryId" : "urn:oasis:names:tc:xacml:3.0:attribute-category:action", "Attribute" : { "AttributeId" : "com.acme.action", "Value" : "delete", "DataType" : "http://www.w3.org/2001/XMLSchema#string" } } ], "Lista de identificadores de políticas" : { "Referencia de identificador de política" : { "Id" : "c6b75be8-f3cb-4bda-9b63-812a1f7e5fae", "Versión" : "1" }, "Referencia de Id. de conjunto de políticas" : [ { "Id" : "1016337f-f5f8-4ed4-bd4e-9a2be01fa211", "Versión" : "1" }, { "Id" : "http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54", "Versión" : "1.0" } ] } }, { "Decisión" : "Denegar", "Estado" : { "Código de estado" : { "Valor" : "urn:oasis:names:tc:xacml:1.0:status:ok" } }, "AssociatedAdvice" : { "Id" : "com.acme.message", "Asignación de atributo" : [ { "AttributeId" : "com.acme.messageContent", "Value" : "Acceso denegado: autorización insuficiente.", "Category" : "urn:oasis:names:tc:xacml:3.0:attribute-category:environment", "DataType" : "http://www.w3.org/2001/XMLSchema#string" }, { "AttributeId" : "com.acme.user.clearance", "Valor" : "1", "Categoría" : "urn:oasis:names:tc:xacml:1.0:subject-category:access-subject", "DataType" : "http://www.w3.org/2001/XMLSchema#integer" }, { "AttributeId" : "com.acme.record.classification", "Valor" : "3", "Categoría" : "urn:oasis:names:tc:xacml:3.0:attribute-category:resource", "DataType" : "http://www.w3.org/2001/XMLSchema#integer" } ] }, "Categoría" : [ { "CategoryId" : "urn:oasis:names:tc:xacml:3.0:attribute-category:resource", "Atributo" : { "AttributeId" : "com.acme.record.recordId", "Valor" : "125", "DataType" : "http://www.w3.org/2001/XMLSchema#string" } }, { "CategoryId" : "urn:oasis:names:tc:xacml:3.0:attribute-category:action", "Attribute" : { "AttributeId" : "com.acme.action", "Value" : "delete", "DataType" : "http://www.w3.org/2001/XMLSchema#string" } } ], "Lista de identificadores de políticas" : { "Referencia de identificador de política" : [ { "Id" : "311a93c0-6e4c-47a0-8e05-76feb39f25e0", "Versión" : "1" }, { "Id" : "c6b75be8-f3cb-4bda-9b63-812a1f7e5fae", "Versión" : "1" } ], "Referencia de Id. de conjunto de políticas" : [ { "Id" : "1016337f-f5f8-4ed4-bd4e-9a2be01fa211", "Versión" : "1" }, { "Id" : "http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54", "Versión" : "1.0" } ] } }, { "Decisión" : "Denegar", "Estado" : { "Código de estado" : { "Valor" : "urn:oasis:names:tc:xacml:1.0:status:ok" } }, "AssociatedAdvice" : { "Id" : "com.acme.message", "Asignación de atributo" : [ { "AttributeId" : "com.acme.messageContent", "Value" : "Acceso denegado: autorización insuficiente.", "Category" : "urn:oasis:names:tc:xacml:3.0:attribute-category:environment", "DataType" : "http://www.w3.org/2001/XMLSchema#string" }, { "AttributeId" : "com.acme.user.clearance", "Valor" : "1", "Categoría" : "urn:oasis:names:tc:xacml:1.0:subject-category:access-subject", "DataType" : "http://www.w3.org/2001/XMLSchema#integer" }, { "AttributeId" : "com.acme.record.classification", "Valor" : "3", "Categoría" : "urn:oasis:names:tc:xacml:3.0:attribute-category:resource", "DataType" : "http://www.w3.org/2001/XMLSchema#integer" } ] }, "Categoría" : [ { "CategoryId" : "urn:oasis:names:tc:xacml:3.0:attribute-category:resource", "Atributo" : { "AttributeId" : "com.acme.record.recordId", "Valor" : "125", "DataType" : "http://www.w3.org/2001/XMLSchema#string" } }, { "CategoryId" : "urn:oasis:names:tc:xacml:3.0:attribute-category:action", "Attribute" : { "AttributeId" : "com.acme.action", "Value" : "edit", "DataType" : "http://www.w3.org/2001/XMLSchema#string" } } ], "Lista de identificadores de políticas" : { "Referencia de identificador de política" : [ { "Id" : "311a93c0-6e4c-47a0-8e05-76feb39f25e0", "Versión" : "1" }, { "Id" : "c6b75be8-f3cb-4bda-9b63-812a1f7e5fae", "Versión" : "1" } ], "Referencia de Id. de conjunto de políticas" : [ { "Id" : "1016337f-f5f8-4ed4-bd4e-9a2be01fa211", "Versión" : "1" }, { "Id" : "http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54", "Versión" : "1.0" } ] } }, { "Decisión" : "Denegar", "Estado" : { "Código de estado" : { "Valor" : "urn:oasis:names:tc:xacml:1.0:status:ok" } }, "AssociatedAdvice" : { "Id" : "com.acme.message", "Asignación de atributo" : [ { "AttributeId" : "com.acme.messageContent", "Value" : "Acceso denegado: autorización insuficiente.", "Category" : "urn:oasis:names:tc:xacml:3.0:attribute-category:environment", "DataType" : "http://www.w3.org/2001/XMLSchema#string" }, { "AttributeId" : "com.acme.user.clearance", "Valor" : "1", "Categoría" : "urn:oasis:names:tc:xacml:1.0:subject-category:access-subject", "DataType" : "http://www.w3.org/2001/XMLSchema#integer" }, { "AttributeId" : "com.acme.record.classification", "Valor" : "2", "Categoría" : "urn:oasis:names:tc:xacml:3.0:attribute-category:resource", "DataType" : "http://www.w3.org/2001/XMLSchema#integer" } ] }, "Categoría" : [ { "CategoryId" : "urn:oasis:names:tc:xacml:3.0:attribute-category:resource", "Atributo" : { "AttributeId" : "com.acme.record.recordId", "Valor" : "124", "DataType" : "http://www.w3.org/2001/XMLSchema#string" } }, { "CategoryId" : "urn:oasis:names:tc:xacml:3.0:attribute-category:action", "Attribute" : { "AttributeId" : "com.acme.action", "Value" : "delete", "DataType" : "http://www.w3.org/2001/XMLSchema#string" } }