Nei contesti regolati quali gli appalti pubblici, la tracciabilità e la verifica dei requisiti di accesso ai cantieri non costituiscono meri adempimenti amministrativi, bensì stringenti requisiti di legalità e sicurezza. Un sistema di controllo accessi progettato per tali ambienti deve pertanto garantire una tracciabilità completa e affidabile anche in condizioni operative critiche, caratterizzate da una connettività di rete assente o intermittente. Il presente lavoro di tesi illustra il modulo di controllo accessi sviluppato all’interno di Legolas, piattaforma dedicata alla gestione del Protocollo di Legalità e al Monitoraggio delle Grandi Opere. Il sistema adotta un’architettura distribuita di tipo master/slave: un server centrale custodisce la logica applicativa, il database e le politiche di autorizzazione, mentre i nodi periferici basati su dispositivi Raspberry Pi, installati in corrispondenza dei varchi, acquisiscono le richieste di transito e le inoltrano al server. Una scelta progettuale cardine risiede nella separazione tra identificazione e autorizzazione: il dispositivo hardware non elabora l’identità dei soggetti, ma si limita a trasmettere il metodo di autenticazione presentato, demandando al server la risoluzione dell’identità, la verifica dei diritti di accesso e la registrazione dell’evento. Il nucleo centrale del lavoro riguarda la resilienza del sistema in regime di disconnessione. Ciascun dispositivo periferico continua a registrare i transiti anche in assenza di comunicazione con il server, memorizzando gli eventi localmente all’interno di una coda persistente. Al ripristino della connettività, i transiti vengono trasmessi automaticamente rispettando l’ordine cronologico di acquisizione. Al fine di preservare l’integrità dello storico ed evitare duplicati derivanti dall’instabilità della rete, ogni transito è reso idempotente tramite l’adozione di una chiave univoca. Oltre alla verifica delle autorizzazioni, il sistema analizza lo stato di presenza dei soggetti per individuare e bloccare i transiti incoerenti attraverso logiche di anti-passback, come il tentativo di ingresso di una persona già risultante all’interno. Lo stato operativo dei dispositivi è inoltre monitorato in tempo reale mediante un meccanismo di heartbeat. L’architettura si completa con un’interfaccia web dedicata alla gestione delle anagrafiche (persone e mezzi), dei varchi, delle autorizzazioni e dei dispositivi, abilitando la consultazione dello storico e il monitoraggio in tempo reale degli utenti presenti. Lo sviluppo software vede l’impiego di Node.js e TypeScript, con React Router come framework full-stack, Prisma per l’interazione con il database relazionale PostgreSQL, Zod per la validazione dei dati a runtime e Docker per la containerizzazione dell’intera applicazione.

Legolas: progettazione e sviluppo di un sistema distribuito resiliente per il controllo degli accessi

DAL PRETE, VALENTINA
2025/2026

Abstract

Nei contesti regolati quali gli appalti pubblici, la tracciabilità e la verifica dei requisiti di accesso ai cantieri non costituiscono meri adempimenti amministrativi, bensì stringenti requisiti di legalità e sicurezza. Un sistema di controllo accessi progettato per tali ambienti deve pertanto garantire una tracciabilità completa e affidabile anche in condizioni operative critiche, caratterizzate da una connettività di rete assente o intermittente. Il presente lavoro di tesi illustra il modulo di controllo accessi sviluppato all’interno di Legolas, piattaforma dedicata alla gestione del Protocollo di Legalità e al Monitoraggio delle Grandi Opere. Il sistema adotta un’architettura distribuita di tipo master/slave: un server centrale custodisce la logica applicativa, il database e le politiche di autorizzazione, mentre i nodi periferici basati su dispositivi Raspberry Pi, installati in corrispondenza dei varchi, acquisiscono le richieste di transito e le inoltrano al server. Una scelta progettuale cardine risiede nella separazione tra identificazione e autorizzazione: il dispositivo hardware non elabora l’identità dei soggetti, ma si limita a trasmettere il metodo di autenticazione presentato, demandando al server la risoluzione dell’identità, la verifica dei diritti di accesso e la registrazione dell’evento. Il nucleo centrale del lavoro riguarda la resilienza del sistema in regime di disconnessione. Ciascun dispositivo periferico continua a registrare i transiti anche in assenza di comunicazione con il server, memorizzando gli eventi localmente all’interno di una coda persistente. Al ripristino della connettività, i transiti vengono trasmessi automaticamente rispettando l’ordine cronologico di acquisizione. Al fine di preservare l’integrità dello storico ed evitare duplicati derivanti dall’instabilità della rete, ogni transito è reso idempotente tramite l’adozione di una chiave univoca. Oltre alla verifica delle autorizzazioni, il sistema analizza lo stato di presenza dei soggetti per individuare e bloccare i transiti incoerenti attraverso logiche di anti-passback, come il tentativo di ingresso di una persona già risultante all’interno. Lo stato operativo dei dispositivi è inoltre monitorato in tempo reale mediante un meccanismo di heartbeat. L’architettura si completa con un’interfaccia web dedicata alla gestione delle anagrafiche (persone e mezzi), dei varchi, delle autorizzazioni e dei dispositivi, abilitando la consultazione dello storico e il monitoraggio in tempo reale degli utenti presenti. Lo sviluppo software vede l’impiego di Node.js e TypeScript, con React Router come framework full-stack, Prisma per l’interazione con il database relazionale PostgreSQL, Zod per la validazione dei dati a runtime e Docker per la containerizzazione dell’intera applicazione.
2025
Legolas: design and development of a resilient distributed system for access control
Sistemi distribuiti
Controllo accessi
Rilevamento anomalie
Osservabilità
Resilienza
File in questo prodotto:
File Dimensione Formato  
DalPrete_Valentina.pdf

Accesso riservato

Dimensione 850.94 kB
Formato Adobe PDF
850.94 kB Adobe PDF

The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.12608/114200