Articulo de referencia

XACML

{{cite web | url=https://lists.oasis-open.org/archives/xacml/200104/msg00000.html | title=OASIS TC call for participation: XACML | publisher=OASIS | date=16 April 2001 | access-...

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 declarativo, granular y basado en atributos , una arquitectura y un modelo de procesamiento que describe cómo evaluar las solicitudes de acceso según las reglas definidas en las políticas. [ 2 ]

XACML es principalmente un lenguaje de políticas de control de acceso basado en atributos , pero también define sintaxis para las solicitudes enviadas por el Punto de Aplicación de Políticas al Punto de Decisión de Políticas, también llamadas solicitudes de decisión de autorización . El proceso de respuesta sigue el flujo de solicitud mencionado anteriormente en sentido inverso. En XACML, los atributos (información sobre el sujeto que accede a un recurso, el recurso al que se dirige, la acción que se realizará sobre el recurso y el entorno) actúan como entradas que deciden 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 reglas especifican las condiciones bajo las cuales se aprueba (Permitir) o se rechaza (Denegar) una solicitud de acceso. Si una regla es aplicable a una solicitud, pero las condiciones que contiene no se evalúan, el resultado es Indeterminado. Las reglas se agrupan en políticas y se combinan según un algoritmo de combinación definido por la política principal (por ejemplo, denegar a menos que se permita, permitir a menos que se deniegue). Posteriormente, las políticas pueden agruparse en una política mayor (o conjunto de políticas en XACML 3.0) y combinarse según su algoritmo de combinación de forma similar.

Las políticas incluyen un Objetivo, que es una condición que determina si dicha Política debe evaluarse para una solicitud determinada. Las políticas y reglas también incluyen obligaciones y expresiones de asesoramiento. Las obligaciones especifican las acciones que deben ejecutarse durante el procesamiento de una solicitud (por ejemplo, para el registro). Las expresiones de asesoramiento son similares, pero pueden ignorarse. [ 3 ]

XACML separa 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 exigir autorización y otorgar o denegar el acceso a los recursos. Estos se refieren a un Punto de Decisión de Políticas (PDP) central e independiente del entorno, que es responsable de tomar la decisión final de acceso. El PDP se refiere 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 ]

XACML 4.0 ahora tiene una representación equivalente en JSON : JACAL [ 5 ] .

Historia

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

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

La versión 3.0 fue ratificada por OASIS en enero de 2013 y actualizada en julio de 2017 (Versión 3.0 más Errata 01). [ 7 ]

La versión 4.0 (Borrador de especificación del comité 01) fue publicada por OASIS en febrero de 2026. [ 8 ]

Arquitectura

Terminología

Terminología no normativa (siguiendo la RFC 2904 , excepto para PAP)

Fluir

Esta imagen muestra la arquitectura XACML y un ejemplo de flujo de autorización.
Esta imagen muestra la arquitectura XACML y un ejemplo de flujo de autorización.
  1. Un usuario envía una solicitud para acceder a un recurso; esta solicitud es interceptada por el Punto de Aplicación de Políticas (PEP).
  2. El PEP convierte la solicitud en una solicitud de autorización XACML.
  3. El PEP remite la solicitud de autorización al Punto de Decisión de Políticas (PDP).
  4. El PDP evalúa la solicitud de autorización en función de sus políticas configuradas. Estas políticas se obtienen a través de un Punto de Recuperación de Políticas (PRP) y son gestionadas por un Punto de Administración de Políticas (PAP). Si es necesario, el PDP también recupera los valores de los atributos de los Puntos de Información de Políticas (PIP) subyacentes.
  5. El PDP toma una decisión (Permitir, Denegar, No aplicable o Indeterminado) y la devuelve al PEP.
  6. El PEP impone la decisión de acceso en contra de la solicitud del usuario.

Elementos de política

Elementos estructurales

XACML está estructurado en los siguientes niveles de elementos:

  • PolicySet (reemplazado por/fusionado en Policy en XACML 4.0),
  • Política,
  • Regla.

Hasta XACML 3.0, un PolicySet puede contener cualquier número de elementos PolicySet y/o Policy, y una Policy puede contener cualquier número de elementos Rule.

En XACML 4.0, una Política puede contener cualquier número de elementos de Política y/o Regla. Ya no existe distinción entre Política y Conjunto de Políticas.

Atributos y categorías

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

  • Un elemento sujeto es la entidad que solicita acceso. Un sujeto tiene uno o más atributos.
  • El recurso es aquello a lo que el usuario solicita acceder, por ejemplo, datos, un servicio o un componente del sistema. Un recurso tiene uno o más atributos.
  • Un elemento de acción define el tipo de acceso solicitado al recurso. Las acciones tienen uno o más atributos.
  • Un elemento del entorno puede proporcionar, opcionalmente, información adicional que no sea específica del sujeto, recurso o acción, pero que aún se encuentre en el contexto de la solicitud de acceso, por ejemplo, la fecha y hora actuales.

Objetivos

XACML proporciona un objetivo, que básicamente es una condición sobre los atributos del sujeto, recurso, acción o entorno que debe cumplirse para que una política o regla se aplique a una solicitud determinada. Una vez que se determina que una política se aplica a una solicitud, se evalúan sus reglas para determinar la decisión de acceso y la respuesta.

Además de permitir verificar la aplicabilidad, la información de destino también facilita la indexación de políticas, lo cual resulta útil si se necesita almacenar muchas políticas y luego revisarlas rápidamente para encontrar las que se aplican. Cuando llega una solicitud de acceso a ese servicio, el PDP sabrá dónde buscar las políticas que podrían aplicarse a dicha solicitud, ya que las políticas están indexadas según sus restricciones de destino. Cabe destacar que un destino también puede especificar que se aplica a cualquier solicitud.

Las políticas y las reglas pueden contener elementos objetivo.

Condiciones

Las condiciones solo existen en las reglas. Las condiciones son esencialmente expresiones booleanas que pueden usar los operadores AND, OR, NOT y una amplia gama de funciones que se pueden usar para comparar dos o más atributos, por ejemplo, subject-id==doctor-id.

Hasta XACML 3.0, las condiciones son una forma más avanzada de objetivos, mientras que en XACML 4.0 son lo mismo. [ 8 ]

En determinadas circunstancias, es posible implementar controles de segregación de funciones o control de acceso basado en relaciones.

Obligaciones y consejos

Dentro de XACML, se puede utilizar un concepto llamado obligaciones. Una obligación es una directiva del punto de decisión de política (PDP) al punto de aplicación de política (PEP) sobre lo que debe realizarse 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 debe realizarse. La ampliación de las obligaciones elimina la brecha entre los requisitos formales y la aplicación de políticas. Un ejemplo de 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 se lee la acción con obligación en Permitir: doLog_Inform(patientID, Subject, time) En caso de denegación: doLog_UnauthorizedLogin(patientID, Subject, time)

La obligación que ofrece XACML puede ser una forma eficaz de cumplir con los requisitos formales ( como el no repudio ) que resultan difíciles de implementar como reglas de control de acceso. Además, cualquier requisito formal se integrará en la política de control de acceso como una obligación, y no como una función independiente, lo que facilita la coherencia de las políticas y la centralización del entorno de TI.

Las obligaciones pueden utilizarse para situaciones de emergencia o para aumentar la confianza ("no se pueden transferir 1000 dólares sin autenticación de dos factores; aquí tiene el enlace a la página de 2FA").

Además de las obligaciones, la XACML respalda las recomendaciones que son idénticas a las obligaciones, con la diferencia de que una PEP no está obligada a hacer cumplir dichas recomendaciones (de ahí su nombre).

Combinación de algoritmos

¿Qué ocurre en XACML si existen dos reglas (o políticas) contradictorias? Imaginemos, por ejemplo, una primera regla que permite a los gerentes ver documentos y una segunda que prohíbe trabajar antes de las 9:00 . ¿Qué sucede si Alice intenta ver un documento a las 8:00? ¿Qué regla prevalece? Esto es lo que nos enseñan los algoritmos de combinación: ayudan a resolver conflictos.

XACML define varios algoritmos de combinación que se pueden identificar mediante un atributo CombiningAlgId de la <Policy> (en XACML 4.0; o PolicyCombiningAlgId en los elementos <PolicySet> de XACML 3.0 y RuleCombiningAlgId en los elementos <Policy>, respectivamente). El algoritmo de combinación de una política P define un procedimiento para combinar los resultados de decisión individuales de las reglas y/o políticas en P en una decisión de acceso final para P.

Funciones

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

  • Igualdad, desigualdad y otras funciones de correspondencia
  • Funciones aritméticas
  • funciones de cadena
  • Funciones lógicas (y, o, no)
  • Funciones de conjunto y bolsa
  • Funciones agregadas
  • Funciones de orden superior
  • funciones de expresiones regulares
  • funciones XPath

Las funciones y sus identificadores se describen detalladamente en el estándar. Las funciones son específicas para cada tipo; es decir, existe una función para la igualdad de cadenas y otra diferente 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.

  • sumar (doble y entero)
  • restar (números dobles y enteros)
  • multiplicar (doble y entero)
  • dividir (números dobles y enteros)
  • módulo (doble y entero)
  • absoluto (doble y entero)
  • redondo
  • piso

funciones de cadena

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

  • concatenar cadenas
  • cadena-comienza-con
  • termina-de-cadena
  • cadena-contiene
  • cadena-subcadena

Funciones lógicas (y, o, no)

Funciones de conjunto y bolsa

funciones de expresiones regulares

funciones XPath

Funciones de orden superior

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

  • anyOf ( urn:oasis:names:tc:xacml:3.0:function:any-of )
    • parámetros: anyAtomicOrBag anyAtomicOrBag*
    • valor de retorno: booleano
    • Descripción: esta función recibe como parámetro una función booleana y dos o más valores de atributos o conjuntos. La función de orden superior aplica la función booleana a los parámetros restantes.
    • Ejemplo: anyOf(function[stringEqual], allowedRoles, stringOneAndOnly(role))devolverá verdadero si (a) rol es de valor único, (b) hay al menos un valor en el contenedor de atributos allowedRoles igual al valor dentro del contenedor de atributos de valor único role.
  • allOf ( urn:oasis:names:tc:xacml:3.0:function:all-of )
    • parámetros: anyAtomicOrBag anyAtomicOrBag*
    • valor de retorno: booleano
  • anyOfAny ( urn:oasis:names:tc:xacml:3.0:function:any-of-any )
    • parámetros: anyAtomicOrBag anyAtomicOrBag*
    • valor de retorno: booleano
  • allOfAny ( urn:oasis:names:tc:xacml:1.0:function:all-of-any )
    • parámetros: bag[anyAtomic] bag[anyAtomic]
    • valor de retorno: booleano
  • cualquieraDeTodos ( urn:oasis:names:tc:xacml:1.0:function:cualquier-de-todos )
    • parámetros: bag[anyAtomic] bag[anyAtomic]
    • valor de retorno: booleano
  • allOfAll ( urn:oasis:names:tc:xacml:1.0:function:all-of-all )
    • parámetros: bag[anyAtomic] bag[anyAtomic]
    • valor de retorno: booleano
  • mapa ( urn:oasis:names:tc:xacml:1.0:function:map )
    • parámetros: anyAtomicOrBag anyAtomicOrBag*
    • valor de retorno: bag[anyAtomic]

XACML 4.0

Especificación y esquema del núcleo

https://docs.oasis-open.org/xacml/acal/xacml/core/v4.0/csd01/ [ 8 ]

Perfiles

https://docs.oasis-open.org/xacml/acal/xacml/profiles/ [ 8 ]

Véase también la variante JSON (JACAL):

https://docs.oasis-open.org/xacml/acal/jacal/

Novedades en XACML 4.0

simplificaciones del modelo

  • PolicySet se fusionó con Policy sin distinción;
  • Objetivo y condición con la misma estructura;
  • Obligación ( Expresión ) y Aviso ( Expresión ) se fusionaron en Aviso ( Expresión ) ( isObligation = true|false );
  • AttributeValue se cambió a un valor más genérico;
  • Atributos booleanos ( CombinedDecision , ReturnPolicyIdList , MustBePresent , IncludeInResult , etc.) que ahora son opcionales con valores predeterminados;
  • El atributo DataType se hace opcional en varios casos donde es posible la inferencia de tipos /tipado implícito;
  • Se eliminó la función no utilizada CombinerParameter;
  • Las funcionalidades de XPath se eliminaron de la especificación principal y se trasladaron al nuevo perfil de XPath.

Nuevas características

  • Centro:
    • XACML ahora se basa en el mismo modelo agnóstico ACAL [ 9 ] que otras representaciones de ACAL como JACAL [ 5 ] y, por lo tanto, se facilita la traducción de políticas (o solicitudes) entre XACML y otras representaciones de ACAL como JACAL;
    • Objetivos más expresivos ;
    • Las reglas pueden contener definiciones de variables;
    • En lugar de URI, se pueden definir y utilizar identificadores cortos (alias) como identificadores de atributos, categorías, tipos de datos, funciones y algoritmos de combinación, en lugar de URI.
    • Variables globales reutilizables en diferentes políticas;
    • Nuevas funciones:
      • Funciones agregadas aplicables a las bolsas: min, max, suma, promedio;
      • Condicional ternario / Operador Elvis;
    • Tipo de contenido y codificación extensibles en Requests para admitir contenido que no sea XML .
  • Perfiles:
    • JSONPath Profile añade compatibilidad con AttributeSelectors basados ​​en JSONPath ( RFC 9535 ).
    • XPath Profile añade compatibilidad con XPath 3.0 y 3.1.

XACML 3.0

Esquema

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

Tipos de datos

  • http://www.w3.org/2001/XMLSchema#anyURI
  • http://www.w3.org/2001/XMLSchema#base64Binary
  • http://www.w3.org/2001/XMLSchema#boolean
  • http://www.w3.org/2001/XMLSchema#date
  • http://www.w3.org/2001/XMLSchema#dateTime
  • http://www.w3.org/2001/XMLSchema#dayTimeDuration
  • http://www.w3.org/2001/XMLSchema#double
  • http://www.w3.org/2001/XMLSchema#hexBinary
  • http://www.w3.org/2001/XMLSchema#integer
  • http://www.w3.org/2001/XMLSchema#string
  • http://www.w3.org/2001/XMLSchema#time
  • http://www.w3.org/2001/XMLSchema#yearMonthDuration
  • urn:oasis:names:tc:xacml:1.0:data-type:rfc822Name
  • urn:oasis:names:tc:xacml:1.0:data-type:x500Name
  • urn:oasis:names:tc:xacml:2.0:data-type:dnsName
  • urn:oasis:names:tc:xacml:2.0:data-type:ipAddress
  • urn:oasis:names:tc:xacml:3.0:data-type:xpathExpression

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 muchas otras novedades.

Delegación

La implementación de la delegación es una novedad en XACML 3.0. Este mecanismo se utiliza para admitir la administración descentralizada de políticas de acceso. Permite que una autoridad (delegante) delegue la totalidad o parte de su propia autoridad, o la 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. Estos últimos se denominan políticas de control administrativo. El control de acceso y las políticas administrativas funcionan conjuntamente, como se muestra en el siguiente escenario:

Un sistema de control de acceso protege los diversos servicios que ofrecen las empresas. El sistema implementa las siguientes reglas centrales para proteger sus recursos y permitir la delegación:

Reglas de control de acceso: Permitir el acceso Recurso con atributo WebService si el sujeto es Empleado y la acción es leer o escribir. 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 dentro 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 se incorpora a la corporación, su supervisor puede emitir localmente una delegación que le autorice a acceder directamente a los sistemas.

El delegador (el supervisor en este caso) puede tener derecho únicamente a delegar un conjunto limitado de derechos de acceso a los consultores.

Otras características

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

El Comité Técnico de XACML también publica aquí una lista de cambios: http://wiki.oasis-open.org/xacml/DifferencesBetweenXACML2.0AndXACML3.0

Perfil de decisión múltiple de XACML 3.0

Por defecto, un PDP procesa una única solicitud a la vez y responde con una única decisión. Sin embargo, en ocasiones es necesario enviar varias solicitudes simultáneamente. El perfil de decisión múltiple de XACML permite este caso de uso . El PDP normalmente devolverá el producto de todas las combinaciones en una única respuesta.

Orientación para desarrolladores

En 2013 y 2014, el Comité Técnico de XACML se centró en el diseño de nuevos perfiles para facilitar la integración de los desarrolladores. Estos incluyen:

  • El perfil REST de XACML escrito por Remon Sinnema de EMC
  • El perfil JSON de XACML escrito por David Brossard de Axiomatics
  • El perfil ALFA de XACML escrito por Pablo Giambiagi, Srijith Nair y David Brossard de Axiomatics

Los tres perfiles se presentaron en la Cloud Identity Summit 2014 en Monterey, California. Gracias a estos perfiles, integrar la autorización granular en las aplicaciones resulta mucho más sencillo.

En 2026, se lanza XACML 4.0 con importantes simplificaciones en el modelo de datos y procesamiento, mejor soporte para datos de entrada JSON (con perfil JSONPath) y se lanza el estándar JACAL [ 5 ] como un equivalente de sintaxis JSON de XACML 4.0 tanto para políticas como para solicitudes/respuestas de decisiones.

XACML 4.0 y la representación JSON de ACAL (JACAL)

JACAL [ 5 ] 1.0 está alineado con XACML 4.0 ya que comparte el mismo modelo agnóstico ACAL [ 9 ] .

El perfil ALFA de XACML 3.0

ALFA significa Lenguaje Abreviado para la Autorización. Es una sintaxis ligera que se utiliza para implementar políticas de control de acceso basadas en políticas. Para ver ejemplos, consulte el artículo principal .

El perfil JSON de XACML 3.0

El perfil JSON de XACML [ 10 ] simplifica la integración entre el PEP y el PDP.

XACML y otros estándares

XACML y Agente de Políticas Abiertas

XACML es casi exclusivamente un lenguaje de definición de políticas basado en XML , definido por una especificación abierta de OASIS . La especificación XACML no abarca el diseño ni la implementación de los Puntos de Decisión de Políticas (PDP), sino únicamente el lenguaje de políticas que estos utilizan. Muchos PDP, tanto propietarios como de código abierto, emplean XACML como su lenguaje de definición de políticas.

Open Policy Agent (OPA) es una implementación de código abierto de Policy Decision Point (PDP), capaz de interpretar el lenguaje de las políticas para tomar decisiones políticas. OPA es una implementación de PDP de propósito general que se puede utilizar en cualquier escenario donde se requiera una decisión política, al igual que las implementaciones de PDP que admiten la especificación XACML.

El lenguaje de definición de políticas de OPA es (Rego), que es un lenguaje incompleto de Turing basado en JSON basado en Datalog .

El proyecto xacml-with-opa muestra cómo admitir el perfil JSON de XACML 3.0 [ 10 ] con OPA.

Las políticas XACML pueden ser traducibles a Rego, pero no siempre, debido a ciertas limitaciones de Rego, tales como:

  • Sin soporte para XML/XPath ( problema OPA n.° 7361 );
  • No hay operador OR ( problema OPA n.° 7602 );
  • No se permite lógica AND/OR anidada en las reglas ( problema OPA n.° 3183 );
  • Uso limitado del operador NOT ( problema OPA n.° 3924 ).

XACML y SAML

Ejemplo de federación interempresarial donde dos empresas se federan mediante SAML y dos servicios de token de seguridad (STS), estableciendo un círculo de confianza. En esta imagen, SAML se utiliza para el intercambio de identidades/virtualización. XACML se utiliza en el servidor para determinar si se debe otorgar acceso a la funcionalidad de la aplicación (control de acceso funcional) y a los datos subyacentes (control de acceso a datos).
Ejemplo de federación interempresarial donde dos empresas se federan mediante SAML y dos servicios de token de seguridad (STS), estableciendo un círculo de confianza. En esta imagen, SAML se utiliza para el intercambio de identidades/virtualización. XACML se utiliza en el servidor para determinar si se debe otorgar acceso a la funcionalidad de la aplicación (control de acceso funcional) y a los datos subyacentes (control de acceso a datos).

SAML es un estándar de federación y SSO de identidad utilizado para la autenticación. SAML se utiliza como formato común de token de identidad entre diferentes aplicaciones. Tanto SAML como XACML están definidos por OASIS . SAML y XACML fueron diseñados para interoperar: SAML se utiliza para transmitir información de identidad/identidades virtuales y XACML para gestionar la lógica de control de acceso mediante políticas.

XACML y OAuth

OAuth 2.0 se considera un estándar de autorización. Sin embargo, difiere de XACML en su origen, su propósito y sus aplicaciones. OAuth se basa en:

  • Control de acceso delegado: Yo, el usuario, delego el acceso de otro usuario o servicio al recurso del que soy propietario. Por ejemplo, mediante OAuth, otorgo a Twitter (el servicio) la capacidad de publicar en mi muro de Facebook (el recurso).
  • Cómo gestionar el antipatrón de contraseñas . En un modelo tradicional, al integrar dos servicios, es necesario proporcionar al servicio B las credenciales de usuario del servicio A para que este pueda suplantar la identidad del usuario ante el servicio A. Esto conlleva numerosos riesgos. El uso de OAuth elimina estos problemas y permite al usuario controlar las acciones que el servicio B puede realizar en su nombre ante el servicio A.
  • Servicios/recursos basados ​​en HTTP
  • aprobación del propietario (usuario) gestor

XACML no gestiona la aprobación de usuarios, el acceso delegado ni la administración de contraseñas. XACML simplemente proporciona:

  • Una arquitectura de control de acceso con el concepto de Punto de Decisión de Política (PDP), como se mencionó anteriormente, y un Punto de Aplicación de Política (PEP).
  • un lenguaje de políticas con el que expresar una amplia gama de políticas de control de acceso, incluidas políticas que pueden utilizar consentimientos gestionados/definidos a través de OAuth.

XACML y OAuth se pueden combinar para ofrecer un enfoque más completo para la autorización.

Véase también

Referencias

  1. Best, Karl (16 de abril de 2001). "Convocatoria de participación del Comité Técnico de OASIS: XACML" . OASIS . Consultado el 31 de octubre de 2016 .
  2. "pure-xacml" . www.axiomatics.com . Consultado el 27 de abril de 2016 .
  3. 1 2 3 Ferraiolo, David; Chandramouli, Ramaswamy; Hu, Vincent; Kuhn, Rick (octubre de 2016). Una comparación de estándares de control de acceso basado en atributos (ABAC) para aplicaciones de servicios de datos (Informe). Instituto Nacional de Estándares y Tecnología . doi : 10.6028/NIST.SP.800-178 .
  4. Véase, por ejemplo, De la Rosa Algarín, Alberto; Ziminski, Timoteus B.; Demurjian 1, Steven A.; Kuykendall, Robert; Rivera Sánchez, Yaira K. (2013). Defining and Enforcing XACML Role-based Security Policies within an XML Security Framework . Proceedings of the 9th International Conference on Web Information Systems and Technologies. doi : 10.5220/0004366200160025 .{{cite conference}}: CS1 maint: nombres numéricos: lista de autores ( enlace )
  5. 1 2 3 4 "ACAL v1.0 JSON Representation Profile (JACAL) Versión 1.0" . docs.oasis-open.org . Editado por Steven Legg y Cyril Dangerville. 18 de febrero de 2026. Consultado el 1 de marzo de 2026 .
  6. 1 2 "OASIS eXtensible Access Control Markup Language (XACML) TC — Subcomité | OASIS" . www.oasis-open.org . Consultado el 30 de abril de 2026 .
  7. "Lenguaje de marcado de control de acceso extensible (XACML) Versión 3.0 más erratas 01" . docs.oasis-open.org . Editado por Richard C. Hill y Hal Lockhart. 12 de julio de 2017. Erratas aprobadas . Consultado el 1 de marzo de 2026 .
  8. 1 2 3 4 "Lenguaje de marcado de control de acceso extensible (XACML) Versión 4.0 (Representación XML de ACAL Versión 1.0)" . docs.oasis-open.org . Editado por Steven Legg y Cyril Dangerville. 18 de febrero de 2026. Consultado el 1 de marzo de 2026 .
  9. 1 2 "Lenguaje de autorización centrado en atributos (ACAL) Versión 1.0" . docs.oasis-open.org . Editado por Steven Legg y Cyril Dangerville. 18 de febrero de 2026. Consultado el 1 de marzo de 2026 .
  10. 1 2 "Perfil JSON de XACML 3.0 Versión 1.1" . docs.oasis-open.org . Consultado el 1 de marzo de 2026 .
  • Lenguaje de marcado de control de acceso extensible (eXtensible Access Control Markup Language) Archivado el 24/09/2006 en Wayback Machine.
  • Sitio web del comité OASIS XACML
  • Declaración de OASIS sobre problemas con dos patentes de software de IBM.