Skip to content

Registro de auditoría

Doggy ofrece capacidades de auditoría de operaciones del sistema de extremo a extremo: mediante AuditService registra todas las operaciones clave, almacenadas en App\Entity\System\AuditLog.

Descripción general

El sistema de registro de auditoría se compone de las siguientes partes:

  • Entidad AuditLog (src/Entity/System/AuditLog.php): persistencia de los registros
  • AuditService (src/Service/System/AuditService.php): servicio de registro
  • El punto de entrada de la auditoría se encuentra en App\Controller\Admin\SecurityConfigController

Contenido registrado

Cada registro de auditoría incluye:

  • action: tipo de operación (login_success, login_failure, create, update, delete)
  • category: categoría (security, business, system)
  • details: detalles de la operación (formato JSON)
  • performer: usuario que ejecutó la operación

Uso

php
use App\Service\System\AuditService;

class SomeService
{
    public function __construct(private AuditService $auditService) {}

    public function doSomething(): void
    {
        // Inicio de sesión correcto
        $this->auditService->log('login_success', 'security', [], $user);

        // Fallo de inicio de sesión
        $this->auditService->log('login_failure', 'security', [
            'username' => $email,
            'error' => $exception->getMessage(),
        ]);

        // Operaciones de datos
        $this->auditService->log('update', 'business', [
            'entity' => Employee::class,
            'id' => $employee->getId(),
            'changes' => $changes,
        ]);
    }
}

Integración

El registro de auditoría ya está integrado automáticamente en los principales flujos de seguridad:

Autenticación de inicio de sesión

App\Security\AppCustomAuthenticator registra automáticamente:

php
// Al iniciar sesión correctamente
$this->auditService->log('login_success', 'security', [], $user);

// Al fallar el inicio de sesión
$this->auditService->log('login_failure', 'security', [
    'username' => $email,
    'error' => $exception->getMessage(),
]);

Requisitos de seguridad

  • Los registros de auditoría solo pueden verlos los auditores (ROLE_AUDITOR, a través del permiso AUDIT_VIEW de ThreeOfficersVoter)
  • Los registros se almacenan en la base de datos y admiten trazabilidad y exportación
  • Admite búsqueda por rango de tiempo, usuario y tipo de operación

Código abierto bajo MIT | Copyright © 2026 Doggy