---
# System prepended metadata

title: Gestión de Auditoría
tags: [Documentation, Templates]

---

---
title: 'Gestión de Auditoría'
---


## Contenido

[TOC]

## Auditoría

En el ámbito de la auditoría de datos, se garantiza que cualquier modificación realizada en los datos fundamentales de la solución sea meticulosamente registrada. Este registro incluye la creación de una historia por cada operación, almacenando los datos procesados por cada servicio. Además, se documenta el usuario responsable de la operación y el tipo de operación llevada a cabo (alta, baja y modificación).

Es relevante destacar que todos los componentes de la solución han sido provistos de opción de configuración de las operación a Auditar. Esta funcionalidad permite, al momento de invocar una transacción a través de la interfaz de usuario (UI), identificar si es requerido aplicar la auditoría en la operación. Adicionalmente se ha incorporado un identificador único por cada transacción. Esta práctica permite la correlación efectiva de las trazas de auditoría a lo largo de toda una transacción de negocios, simplificando considerablemente las tareas de depuración.

Esquema de la solución
---

![esquema-auditoria](https://hackmd.io/_uploads/rJ6kKQK9T.png)


La solución cuenta con los siguientes proyectos: 
* **back-auditoria-cliente**
Este proyecto tiene como responsabilidad proporcionar las APIs necesarias para la administración de las configuraciones de las reglas aplicadas en la auditoría. Asimismo, habilita la consulta de las bitácoras de las operaciones ejecutadas en los diversos servicios.
* **back-auditoria-servidor**
Este proyecto es fundamental en la gestión de la persistencia de las bitácoras que se han registrado en el servicio de Kafka. Su responsabilidad principal radica en asegurar la captura de estos registros, contribuyendo así a la integridad y disponibilidad de la información en el sistema. La persistencia de las bitácoras es crucial para facilitar análisis detallados, auditorías y seguimiento de eventos a lo largo del tiempo
* **back-common**
Este proyecto engloba las clases comunes que serán utilizadas en diferentes proyectos donde se requiera la gestión de auditoría.
* **usuarios-front**
Este proyecto posibilita la visualización de las bitácoras registradas y facilita la configuración de las reglas de auditoría destinadas a la captura de registros de diferentes servicios

Configuración
---
Para habilitar correctamente las clases necesarias para la gestión de datos de auditoría, cada proyecto deberá incluir necesariamente lo siguiente:


```
// habilita la funcionalidad
siare.auditoria.enabled=true 
//url del cliente, utilizado para la obtención de configuraciones
audit.server.base.url=http://localhost:8091 
//habilita el servicio del kafka
siare.kafka.enabled=true 
//ubicacion del servicio del kafka
kafka.brokers=localhost:9092 
//Número de consumidores que estarán recibiendo mensajes del tópico.
kafka.consumer.concurrency=1 
Credenciales de acceso
kafka.user=
kafka.password=
kafka.usesecretsmanager=false
//Número máximo de registros que son tomados con la llamada del método poll()
kafka.siare.consumer.max-poll-records=300
//Cantidad máxima de tiempo que el servicio es bloqueado antes de volver a solicitar un request
kafka.siare.consumer.fetch-max-wait-ms=500
//Tiempo de espera de vida para validacion de sesión activa (3 segundos) 
kafka.siare.consumer.heartbeat-interval-ms=3000
//Tiempo de retardo entre invocaciones 
kafka.siare.consumer.max-poll-interval-ms=300000
//Tiempo de vida de la sesión
kafka.siare.consumer.session-timeout-ms=10000
spring.kafka.listener.ack-mode=manual

```

Ejemplo de traza
---
```=java
{
"auditoria_procesos": [
	{
		"id" : "730c78c4-ded5-4249-95b8-683284568058",
		"url" : "/bien-clasificaciones/2",
		"verbo" : "PUT",
		"proceso" : "bien-clasificaciones",
		"usuario" : "ilse_grau",
		"cuerpo" : "{\"descripcion\":\"PROPIEDADES DE INVERSIÓN\",\"borrado\":false,\"id\":2,\"codigo\":2,\"generaFicha\":false}",
		"estado" : "200",
		"mensaje" : null,
		"ip" : "10.20.27.15",
		"correlation_id" : "1ebd96a2-dd65-48e8-bebd-988074db7446,null,null",
		"fecha" : 1704216722624,
		"transaccion_id" : 2,
		"institucion_id" : null,
		"anno" : 2024,
		"parametros_consulta" : null,
		"child_enabled" : true
	},
	{
		"id" : "2dadbfb3-ed03-4f89-8411-3c80880752c4",
		"url" : "/firma-responsables",
		"verbo" : "GET",
		"proceso" : "firma-responsables",
		"usuario" : "rafael_palau",
		"cuerpo" : null,
		"estado" : "200",
		"mensaje" : null,
		"ip" : "10.20.27.15",
		"correlation_id" : "3037d88f-c65c-437f-867a-1377b823e777,null,null",
		"fecha" : 1704214790777,
		"transaccion_id" : null,
		"institucion_id" : null,
		"anno" : 2024,
		"parametros_consulta" : "filtrosPagina=0&filtrosCantidad=25&filtros=%7B%22activo%22%3Atrue%2C%22borrado%22%3Afalse%2C%22firma%22%3A%7B%22id%22%3A61%7D%2C%22usuarioInstitucionPerfilId%22%3A1748%2C%22nombreUsuario%22%3A%22rafael_palau%22%7D",
		"child_enabled" : true
	}
]}

```

Ejemplo de configuración
---

![imagen](https://hackmd.io/_uploads/HJVkcXYcp.png)

Ejemplo de bitácora 
---
![imagen](https://hackmd.io/_uploads/HkJd57KcT.png)
