Pdnd Test Client
Applicazione console in .NET 9 pensata per testare l’interoperabilità con la PDND — Piattaforma Digitale Nazionale Dati, l’infrastruttura che consente alle pubbliche amministrazioni italiane di scambiarsi dati attraverso API.
Il progetto implementa in modo essenziale il flusso di autenticazione e invocazione previsto da PDND: costruzione della client assertion, richiesta del voucher OAuth2 e chiamata all’e-service di destinazione.
Cosa fa
Costruisce una client assertion firmata
Carica una chiave RSA da un certificato
.pfxe genera un JWT firmato con i claim richiesti da PDND, inclusipurposeIdeiss/subvalorizzati con il client ID.Richiede il voucher PDND
Invia la client assertion all’endpoint di autorizzazione usando il grant type
client_credentialse ottiene in risposta un access token, cioè il voucher da usare per accedere all’e-service.Invoca l’e-service
Usa il voucher come Bearer token per chiamare l’API del servizio di destinazione, registrando l’intero scambio HTTP per analizzare richiesta, risposta, header e payload.
Dettagli tecnici
La configurazione è esternalizzata in appsettings.json: endpoint, client ID, purpose ID e percorso del certificato sono separati dal codice applicativo.
Segreti, certificati e chiavi private restano fuori dal controllo di versione.
Un handler HTTP personalizzato intercetta e registra il traffico in ingresso e in uscita, mascherando il token di autorizzazione. In questo modo è possibile fare debug del flusso senza esporre credenziali sensibili nei log.
Perché è interessante
Il progetto mostra, senza framework pesanti né astrazioni superflue, come agganciarsi a un’infrastruttura pubblica reale.
Il punto non è nascondere la complessità, ma renderla leggibile: JWT firmato, voucher OAuth2, chiamata HTTP all’e-service e logging del traffico sono messi in evidenza passo dopo passo.
È un riferimento pratico per capire cosa succede davvero quando un client applicativo si autentica su PDND e consuma un servizio esposto tramite la piattaforma.