Strumenti SAST e gestione degli accessi: un’integrazione su misura per il settore bancario
La sfida
Claranet è partner da diversi anni di una delle istituzioni bancarie leader nel Paese, caratterizzata da un'ampia rete di servizi finanziari e dalla gestione di un volume massivo di dati sensibili. In questo contesto, l'efficienza operativa e la sicurezza delle informazioni rivestono un ruolo fondamentale.
Nello specifico, forniamo supporto continuo nello sviluppo e nella manutenzione di software applicativi interni, con un focus specifico sugli strumenti che ottimizzano l'intero ciclo di vita del software e la gestione della relativa infrastruttura.
La sfida principale del nostro lavoro congiunto consiste nel modernizzare e ottimizzare l'interazione tra i sistemi sviluppati internamente (da quelli legacy a quelli più moderni) e gli applicativi di terze parti in uso, al fine di aumentare l’efficienza dei processi e dei flussi operativi interni.
Il contesto
Essendo una realtà da sempre improntata alla digitalizzazione dei propri servizi che opera nel settore da oltre 20 anni, l'istituto bancario in questione possiede un parco software estremamente ampio e variegato, sul quale lavorano ogni giorno centinaia di sviluppatori appartenenti a team interni e a fornitori esterni.
In un contesto simile, è fondamentale che i membri di ciascun team di sviluppo abbiano accesso solo al codice dei progetti di propria competenza. A tale scopo, la banca utilizza un applicativo web interno, sviluppato e mantenuto da Claranet, su cui vengono censiti i singoli repository, i team che vi lavorano e l’appartenenza degli utenti sviluppatori a questi ultimi.
Questi dati consentono all’applicativo di mantenere automaticamente sincronizzati i permessi degli utenti con la piattaforma di code hosting interna, tramite dei job asincroni.
In seguito all’introduzione della piattaforma SAST SonarQube per effettuare analisi di sicurezza e qualità del codice sorgente dei progetti, si è deciso di estendere il meccanismo di sincronizzazione dei permessi degli utenti anche a quest’ultima. In questo modo, gli sviluppatori che accedono alla piattaforma possono consultare i risultati delle analisi del codice dei repository su cui lavorano, senza avere visibilità dei progetti sviluppati dagli altri team.
La soluzione
La sincronizzazione si attiva automaticamente ogni volta che l’insieme degli utenti associati a un progetto viene modificato: quando questo accade, un worker dedicato recupera i membri aggiornati e avvia l’allineamento dei permessi. Anche in questo caso, l’intero flusso di sincronizzazione è basato su job asincroni.
L'implementazione si basa su un servizio centrale che esegue le richieste verso l’API di SonarQube, occupandosi della paginazione, dei formati delle risposte e della gestione degli errori più comuni, come utenti o progetti non trovati.
L’aggiornamento dei permessi viene poi delegato a worker asincroni, che distribuiscono le operazioni nel tempo ed effettuano automaticamente dei nuovi tentativi in caso di problemi, mantenendo così il processo stabile senza richiedere interventi manuali.
Per evitare di sovraccaricare l’istanza di SonarQube, la sincronizzazione si basa su un sistema di diff che calcola solo le modifiche effettivamente necessarie: quali utenti devono ricevere un permesso e quali lo devono perdere.
Se durante l’operazione si scopre che un utente non esiste, il sistema lo crea e riprende subito l’esecuzione. In questo modo il meccanismo rimane semplice, affidabile e leggero, mantenendo i permessi sempre allineati senza impattare negativamente sull’operatività del servizio.
Il risultato
Grazie a questo approccio, la banca ha potuto integrare SonarQube nel proprio ecosistema, senza introdurre complessità aggiuntive né carichi operativi extra per i team interni.
L'integrazione con l’applicativo interno elimina totalmente il carico amministrativo legato alla gestione degli accessi: oggi la sincronizzazione dei permessi avviene in background, senza intervento umano. In questo modo, la conformità alle policy di sicurezza non è più un ostacolo burocratico, ma una caratteristica intrinseca e automatizzata dell’ambiente di lavoro.
Il risultato è un sistema di sincronizzazione dei permessi semplice, automatico e affidabile, che garantisce un accesso preciso alle risorse corrette, nel momento esatto in cui servono.