GovWay v3.3.13
Miglioramenti al Profilo di Interoperabilità 'ModI'
Il profilo di interoperabilità 'ModI' è stato adeguato agli aggiornamenti AGID sulle Linee Guida di Interoperabilità indicati nella determina n.128 del 23 maggio 2023.
Sono ora supportati anche i seguenti nuovi pattern di sicurezza:
- 'INTEGRITY_REST_02'
- 'AUDIT_REST_01'
- 'AUDIT_REST_02'
L'insieme dei claim da includere nel JWT di Audit 'Agid-JWT-TrackingEvidence' è configurabile consentendo di definire insiemi differenti da associare alle API.
La validazione dei token di tipo AUDIT o INTEGRITY ricevuti può essere effettuata anche utilizzando una validazione 'PDND' configurata per prelevare la chiave pubblica del mittente tramite le API di interoperabilità esposte dalla PDND. La chiave viene poi memorizzata in una cache locale e mantenuta aggiornata tramite gli eventi, emessi dalla PDND, relativi alle chiavi prelevate.
Sono inoltre stati apportati i seguenti miglioramenti:
-
è stata rivista la definizione del pattern di sicurezza nella API al fine di indicare chi genera il token ID_AUTH tra il mittente e la PDND;
-
aggiunta possibilità di arricchire la traccia di informazioni relative al client-id presente nel token 'ID_AUTH' attraverso informazioni prelevate utilizzando le API della PDND;
-
nella personalizzazione dei keystore è adesso possibile utilizzare una chiave privata, protetta da password o meno, nei formati pkcs1 o pkcs8 in codifica PEM o DER;
-
aggiunta possibilità di utilizzare un keystore JWK sia come keystore che come truststore;
-
migliorata diagnostica emessa in presenza di una richiesta con pattern 'INTEGRITY_REST' che presenta l'header digest e un payload http vuoto. L'errore che veniva segnalato nel diagnostico era fuorviante poichè indicava: "Header HTTP 'digest', dichiarato tra gli header firmati, non trovato". Adesso invece l'errore riportato è il seguente: "Header HTTP 'Digest' presente in una risposta con http payload vuoto".
-
risolto bug di verifica audience; l'anomalia avveniva in presenza di erogazioni configurate con un valore di audience di default e operazioni suddivise in gruppi di configurazione differente. Per le operazioni associate a gruppi di configurazione diverse da quello predefinito la verifica dell'audience falliva erroneamente.
Miglioramenti alla gestione degli archivi delle chiavi
Nelle Token Policy sia di validazione che di negoziazione e negli Attribute Authority è stato aggiunto il supporto per i seguenti archivi:
-
'Key Pair': chiave pubblica e privata, protetta da password o meno, nei formati pkcs1 o pkcs8 in codifica PEM o DER;
-
'Public Key': chiave pubblica in codifica PEM o DER;
-
'JWK Set': l'archivio è adesso utilizzabile in tutti i contesti in cui è definibile un keystore o un truststore.
La funzionalità 'Verifica Certificati' è stata migliorata al fine di:
-
supportare i nuovi tipi di archivio;
-
aggiungere la verifica di accesso alla chiave privata tramite la password fornita per i tipi di archivio già esistenti (JKS, PKCS12, ...).
Miglioramenti alla funzionalità di Autenticazione
Il gestore delle credenziali, utilizzabile per l'autenticazione dei certificati client ottenuti tramite header HTTP, supporta adesso anche la decodifica HEX.
È stata inoltre aggiunta la possibilità di decodificare i certificati ricevuti in qualsiasi modalità supportata, prima provando la decodifica 'urlEncoded', in caso di fallimento la decodifica 'base64' e infine la decodifica 'hex'.
Miglioramenti alla funzionalità di Registrazione dei Messaggi
È adesso possibile definire 'white-list' o 'black-list' per gli header HTTP da registrare sia a livello di singola erogazione o fruizione tramite le proprietà, sia a livello globale nel file govway_local.properties.
La funzionalità consente di specificare le liste sia sui singoli flussi (richiesta-ingresso, richiesta-uscita, risposta-ingresso, risposta-uscita) sia differenziando tra erogazione e fruizione.
Miglioramenti all'Installer
Sono stati apportati i seguenti miglioramenti all'installer binario:
-
aggiunti script di svecchiamento delle tracce per tipo di database postgresql e oracle;
-
l'esecuzione in modalità testuale ('./install.sh text') rimaneva bloccata in caso di tipologia d'installazione 'Aggiornamento' durante la selezione della 'Versione Precedente'.
Inoltre la modalità "gestione dei nodi dinamica", indicata per le installazioni in cloud e selezionabile con una installazione in modalità avanzata, è stata modificata per rendere utilizzabile la soluzione anche in architetture cloud dove i nodi runtime (pod) non risultano invocabili tra di loro.
Nomenclatura
Il nome di un soggetto, escluso che per il profilo di interoperabilità SPCoop, può adesso essere definito anche tramite il carattere '-'.
Bug Fix
Sono state risolte le seguenti vulnerabilità relative ai jar di terza parte:
-
CVE-2023-33201: aggiornata libreria 'org.bouncycastle:*' alla versione 1.74;
-
CVE-2023-34411: aggiornata libreria 'com.fasterxml.woodstox:woodstox-core' alla versione 6.5.1, 'org.apache.cxf:*' alla versione 3.6.1 e 'org.ow2.asm:asm' alla versione 9.5;
-
CVE-2020-8908: aggiornata libreria 'com.google.guava:guava' alla versione 32.0.0-jre;
-
CVE-2023-33264: aggiornata libreria 'com.hazelcast:hazelcast' alla versione 5.3.0;
-
CVE-2023-20862: aggiornata libreria 'org.springframework.security:spring-security-*' alla versione 5.8;
-
CVE-2017-9096, CVE-2022-24196 e CVE-2022-24197: sostituita libreria 'com.lowagie:itext' versione 2.1.7.js7 con le librerie 'org.apache.pdfbox:*' versione 2.0.27 e 'com.github.dhorions:boxable' versione 1.7.0.
Sono stati risolti i seguenti bug:
-
(#133) tentando di avviare la piattaforma GovWay sotto Windows si otteneva un errore causato dal mancato supporto agli attributi posix: "java.lang.UnsupportedOperationException: 'posix:permissions' not supported as initial attribute";
-
(#128) l'accesso ad un keystore pkcs12 creato importando un archivio pkcs12 al suo interno falliva con il seguente errore: "keystore password was incorrect";
-
su database SQLServer veniva segnalato il seguente errore dovuto ad una colonna definita in minuscolo e riferita nella query in maiuscolo: "ERROR .... [GestoreCorrelazioneApplicativa.getCorrelazioniStoriche] errore, queryString[SELECT TOP 50 id,SCADENZA FROM CORRELAZIONE_APPLICATIVA WHERE ( ORA_REGISTRAZIONE < ? )]: Invalid column name 'ORA_REGISTRAZIONE'.";
-
nella configurazione di default, su API SOAP, il riconoscimento dell'operazione avviene comparando il path indicato dopo la base-url rispetto alle operazioni della API. Il riconoscimento dell'operazione basata sulla url non funzionava correttamente in presenza di una url formata da molteplici endpoint come ad esempio: "http://host/govway/ente/service/v1/azione1,http://host/govway/ente/service/v1/azione3". L'operazione che veniva erroneamente individuata era 'azione3'. La problematica risiedeva nell'espressione regolare generata per default dalla console di configurazione e associata alla funzionalità di identificazione dell'operazione, nell'esempio:
- .*/(?:gw_)?ente/(?:gw_)?service/v1/([^/\|^?]*).*
L'espressione è stata corretta in:
- /(?:gw_)?ente/(?:gw_)?service/v1/([^/?]*).*
Per la console di gestione sono stati risolti i seguenti bug:
-
l'apertura di un nuovo tab tramite le breadcump rendeva la console inutilizzabile sul nuovo tab. Per provocare l'anomalia si doveva procedere come segue:
- aprire una lista di api, erogazioni, fruizioni, soggetti o applicativi;
- entrare nel dettaglio di un oggetto;
- cliccare con il tasto destro sulla breadcump che indica l'elenco degli oggetti ed aprire un nuovo tab;
- spostarsi sul nuovo tab;
- entrare nel dettaglio di un oggetto qualsiasi: la console andava in errore.
-
la maschera di creazione di un soggetto con profilo di interoperabiltà 'API Gateway' o 'ModI' consente adesso di crearlo con una tipologia 'Fruitore' senza dover obbligatoriamente fornire delle credenziali; lo scenario serve a definire il soggetto che verrà poi associato all'applicativo fruitore che possiede le credenziali.