Filippo D'Errigo Ideas, notes & experiments
Codice Sorgente Live

Pdnd Test Client

C# .NET 9 JWT firmato RSA OAuth2 client_credentials
Pdnd Test Client
Codice sorgente github.com/fderrigo/ClientTestUseCasePDND

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

  1. Costruisce una client assertion firmata

    Carica una chiave RSA da un certificato .pfx e genera un JWT firmato con i claim richiesti da PDND, inclusi purposeId e iss / sub valorizzati con il client ID.

  2. Richiede il voucher PDND

    Invia la client assertion all’endpoint di autorizzazione usando il grant type client_credentials e ottiene in risposta un access token, cioè il voucher da usare per accedere all’e-service.

  3. 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.


Condividi
Torna al Lab