ABAC
El control de acceso basado en atributos, o ABAC, es un modelo de autorización en el que la decisión de acceso se calcula en el momento de la petición a partir de atributos del usuario, del recurso, de la acción y del contexto, en vez de leerse de un rol fijo. La política es una regla, y la respuesta puede ser distinta para la misma persona de una petición a la siguiente.
La diferencia mecánica con el control de acceso basado en roles está en dónde vive la condición. Un rol concede un conjunto fijo de permisos a quien lo tenga; una política de atributos dice que un usuario de este departamento, desde un dispositivo gestionado y en horario laboral, puede leer un documento clasificado a este nivel. La ubicación, el estado del dispositivo, la clasificación del dato y la hora del día pasan a ser entradas de la autorización en lugar de resolverse creando otro rol.
Resuelve la explosión de roles y compra un problema distinto: nadie puede decir a qué llega un usuario concreto sin evaluar la política. Revisar los accesos deja de ser mirar una lista y pasa a ser preguntar por unas reglas, y para eso la herramienta que hay en la mayoría de los parques es más pobre que la que existe para la pertenencia a grupos.
Donde esto aparece en la práctica es en los lenguajes de política de cloud y en los proxies de acceso modernos, que son de atributos los llame así alguien o no: una condición dentro de una sentencia de política es una regla de atributos. El hallazgo que más veces escribimos no es que el modelo esté mal, sino que se añadió una regla permisiva para desatascar un despliegue y nunca se volvió a estrechar; y como está expresada como condición y no como grupo, ninguna revisión de accesos la ha mirado nunca.