Sicurezza API PSD2: Guida all’Integrazione Open Banking su Google Cloud

Pubblicato il 11 Gen 2026
Aggiornato il 10 Mar 2026
di lettura

Questo articolo è disponibile anche in:Francese, Inglese, Tedesco, Spagnolo, Portoghese, Rumeno
Diagramma architettura sicurezza API PSD2 e Open Banking su Google CloudImmagine generata con IA

Contenuto generato con IA Dettagli

Nel panorama fintech odierno, la direttiva PSD2 (Payment Services Directive 2) non è più una novità normativa, ma lo standard operativo de facto per l’interoperabilità bancaria. Tuttavia, per gli architetti software e i DevOps engineer, la sfida si è spostata dalla semplice conformità all’implementazione di architetture robuste, scalabili e, soprattutto, sicure. Quando si connette un CRM proprietario ai conti correnti dei clienti tramite API bancarie, la sicurezza api psd2 diventa il pilastro fondamentale su cui si regge l’intera infrastruttura.

Questa guida tecnica esplora come costruire un gateway API sicuro utilizzando l’ecosistema Google Cloud, con un focus specifico su Apigee come layer di mediazione. Analizzeremo i pattern architetturali necessari per gestire l’autenticazione mTLS, i flussi OAuth 2.0 complessi, la crittografia dei dati sensibili (PII) e la resilienza operativa contro le latenze delle banche terze.

Pubblicità

Prerequisiti e Contesto Architetturale

Prima di immergerci nel codice e nelle configurazioni, è necessario definire il perimetro operativo. In uno scenario di Open Banking, la vostra applicazione agisce tipicamente come TPP (Third Party Provider), specificamente come AISP (Account Information Service Provider) o PISP (Payment Initiation Service Provider).

Per seguire questa guida, si assume la disponibilità di:

  • Un account Google Cloud Platform (GCP) attivo.
  • Un’istanza di Apigee X o Apigee Hybrid configurata.
  • Certificati eIDAS (QWAC e QSEAL) validi, necessari per l’identificazione formale verso le banche europee.
  • Conoscenza base dei container (se si utilizza Cloud Run/GKE per i microservizi del CRM).

L’Architettura “Secure Hub”

L’approccio raccomandato è il pattern “Secure Hub”. Invece di permettere al CRM di chiamare direttamente le API delle banche, si interpone un API Gateway (Apigee) che funge da punto unico di applicazione delle policy di sicurezza. Il flusso dei dati è il seguente:

CRM (Backend) → Google Cloud Apigee (Gateway) → ASPSP (API Banca)

Potrebbe interessarti →

1. Implementazione di mTLS (Mutual TLS) per l’Autenticazione Server-to-Server

Sicurezza API PSD2: Guida all'Integrazione Open Banking su Google Cloud - Infografica riassuntivaImmagine generata con IA
Infografica riassuntiva dell’articolo “Sicurezza API PSD2: Guida all’Integrazione Open Banking su Google Cloud”

Secondo gli standard tecnici normativi (RTS) della PSD2, la semplice autenticazione tramite API Key non è sufficiente per la comunicazione tra TPP e Banca. È obbligatorio l’uso di Mutual TLS (mTLS).

Pubblicità

In mTLS, non è solo il client (voi) a verificare il certificato del server (la banca), ma anche la banca deve verificare il vostro certificato client (il certificato eIDAS QWAC). Ecco come configurarlo su Apigee:

Configurazione del Keystore e TargetServer

In Apigee, la gestione di mTLS verso il backend (la banca) avviene tramite la definizione di TargetServers.

  1. Caricamento del Certificato: Caricate il vostro certificato QWAC (chiave pubblica e privata) nel Keystore di Apigee.
  2. Definizione SSLInfo: Nella configurazione del TargetServer, abilitate SSL e referenziate il Keystore.
<TargetServer name="Bank-API-Target">
  <Host>api.banca-partner.com</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
    <ClientAuthEnabled>true</ClientAuthEnabled>
    <KeyStore>ref://my-qwac-keystore</KeyStore>
    <KeyAlias>my-key-alias</KeyAlias>
    <TrustStore>ref://bank-truststore</TrustStore>
  </SSLInfo>
</TargetServer>

Nota tecnica: Assicuratevi che il TrustStore contenga la catena completa della CA che ha emesso il certificato della banca, altrimenti l’handshake fallirà.

Scopri di più →

2. Gestione dei Token: OAuth 2.0 e OIDC

Rappresentazione grafica di sicurezza API e cloud computing per Open Banking.Immagine generata con IA
L’infrastruttura Google Cloud garantisce la massima sicurezza per le transazioni PSD2.

La sicurezza api psd2 richiede che l’accesso ai dati del conto sia autorizzato esplicitamente dall’utente finale tramite Strong Customer Authentication (SCA). Questo si traduce tecnicamente nel flusso OAuth 2.0 Authorization Code Grant.

Il Ruolo di Apigee come Token Mediator

Il vostro CRM non dovrebbe mai gestire direttamente i token di accesso grezzi delle banche se non strettamente necessario. Un pattern sicuro prevede che Apigee gestisca lo scambio dei token e fornisca al CRM un token opaco interno.

  1. Reindirizzamento: L’utente viene reindirizzato al portale della banca per il login.
  2. Callback: La banca restituisce un authorization_code al vostro endpoint di callback su Apigee.
  3. Scambio Token: Apigee chiama l’endpoint /token della banca usando mTLS e scambia il codice per un access_token e un refresh_token.
  4. Archiviazione Sicura: Apigee cifra questi token e li memorizza nella sua cache sicura (o in un database esterno cifrato), restituendo al CRM un identificativo di sessione.

Questo approccio riduce la superficie di attacco: se il database del CRM viene compromesso, gli attaccanti non trovano token bancari validi.

Potrebbe interessarti →

3. Crittografia dei Dati Sensibili (PII) con Google Cloud KMS

I dati finanziari (IBAN, saldo, transazioni) sono PII (Personally Identifiable Information) critiche. La conformità GDPR e PSD2 impone la crittografia sia in transito (già coperta da TLS 1.2+) sia a riposo.

Envelope Encryption

Per una sicurezza di livello enterprise, utilizzate Google Cloud Key Management Service (KMS). Non hardcodate mai le chiavi di crittografia nel codice o nelle configurazioni di Apigee.

Implementate un criterio di Envelope Encryption:

  • Utilizzate una DEK (Data Encryption Key) per cifrare il payload della risposta bancaria prima che venga salvato o loggato.
  • Utilizzate una KEK (Key Encryption Key) gestita da Cloud KMS per cifrare la DEK.

In Apigee, potete utilizzare una policy ServiceCallout per invocare le API di Cloud KMS e decifrare le chiavi solo quando necessario per l’elaborazione, mantenendo i dati offuscati nei log di sistema.

Leggi anche →

4. Pattern di Resilienza: Circuit Breaker e Throttling

Le API bancarie, specialmente quelle di istituti legacy adattati alla PSD2, possono soffrire di latenze imprevedibili o downtime. Un CRM che attende indefinitamente una risposta bancaria offre una pessima User Experience e rischia il crash a catena.

Implementazione del Circuit Breaker

Il pattern Circuit Breaker previene che un errore in un servizio esterno (la banca) saturi le risorse del vostro sistema.

In Apigee, non esiste una policy “Circuit Breaker” nativa out-of-the-box, ma si può implementare combinando KVM (Key Value Maps) e logica condizionale:

  1. Se una chiamata al TargetServer fallisce o va in timeout, incrementate un contatore in KVM.
  2. Se il contatore supera una soglia (es. 5 errori in 1 minuto), attivate un flag “Open Circuit”.
  3. Le richieste successive vengono respinte immediatamente con un errore 503 personalizzato, senza tentare di contattare la banca, permettendo al sistema esterno di recuperare.
  4. Dopo un periodo di cool-down, il circuito passa in stato “Half-Open” per testare nuovamente la connettività.

Gestione del Throttling (Spike Arrest e Quota)

Le banche impongono limiti severi sul numero di chiamate API (es. 4 chiamate al giorno per il refresh dei saldi in background). Superare questi limiti può portare al blocco temporaneo del vostro certificato TPP.

Utilizzate la policy Quota di Apigee per applicare questi limiti lato client:

<Quota name="CheckBankLimits">
    <Interval>1</Interval>
    <TimeUnit>day</TimeUnit>
    <Allow count="4"/>
    <Identifier ref="request.header.account_id"/>
    <Distributed>true</Distributed>
</Quota>

Per proteggere invece il vostro backend da picchi di traffico improvvisi, utilizzate la policy SpikeArrest, che appiattisce i picchi di traffico distribuendoli nel tempo.

5. Validazione dei Certificati e Sicurezza del Payload

Oltre al trasporto, è vitale validare il contenuto. Secondo le specifiche FAPI (Financial-grade API), spesso adottate in ambito PSD2, i token JWT devono essere firmati e talvolta cifrati.

Utilizzate la policy VerifyJWT di Apigee per assicurarvi che i token ricevuti dalla banca siano validi e non manomessi. Configurate la policy per validare:

  • La firma (usando la chiave pubblica della banca esposta via JWKS).
  • L’audience (aud claim) per assicurarsi che il token sia destinato a voi.
  • La scadenza (exp claim).

In Breve (TL;DR)

L’adozione del pattern Secure Hub su Google Cloud trasforma la conformità PSD2 in un’architettura scalabile per l’interoperabilità bancaria sicura.

Apigee funge da gateway strategico per gestire certificati eIDAS e autenticazione mTLS, garantendo comunicazioni protette tra TPP e banche.

La gestione centralizzata dei flussi OAuth e la crittografia dei dati sensibili assicurano la massima protezione delle informazioni finanziarie dei clienti.

Conclusioni

disegno di un ragazzo seduto a gambe incrociate con un laptop sulle gambe che trae le conclusioni di tutto quello che si è scritto finora

Implementare la sicurezza api psd2 non è un compito banale; richiede una sovrapposizione di protocolli di rete (mTLS), standard di autorizzazione (OAuth 2.0/OIDC) e pratiche di ingegneria del software (Circuit Breakers). Utilizzando Google Cloud Apigee come hub centrale, centralizzate la complessità, permettendo al vostro CRM di rimanere leggero e focalizzato sulla logica di business, mentre il gateway si fa carico della conformità crittografica e normativa.

Ricordate che la sicurezza è un processo continuo: monitorate costantemente i log (offuscati) tramite Google Cloud Operations Suite e mantenete aggiornati i vostri certificati QWAC per evitare interruzioni di servizio.

Domande frequenti

disegno di un ragazzo seduto con nuvolette di testo con dentro la parola FAQ
Come si configura l’autenticazione mTLS su Apigee per la PSD2?

Per implementare la Mutual TLS richiesta dagli standard tecnici, è necessario configurare i TargetServers in Apigee caricando il certificato eIDAS QWAC nel Keystore. Bisogna abilitare SSLInfo e assicurarsi che il TrustStore contenga la catena completa della CA della banca, garantendo così che entrambe le parti verifichino le rispettive identità digitali prima dello scambio dati.

Qual è il pattern migliore per gestire i token OAuth 2.0 nell’Open Banking?

L’approccio raccomandato è utilizzare Apigee come mediatore di token, evitando che il CRM gestisca direttamente i token di accesso grezzi. Il gateway scambia il codice di autorizzazione con la banca, cifra i token risultanti in una cache sicura e restituisce al backend solo un identificativo di sessione opaco, riducendo drasticamente la superficie di attacco in caso di violazione del database CRM.

Come garantire la crittografia dei dati PII sensibili su Google Cloud?

Per proteggere dati critici come IBAN e saldi, si deve adottare la Envelope Encryption utilizzando Google Cloud KMS. Invece di inserire chiavi statiche nel codice, si utilizza una Data Encryption Key per cifrare il payload e una Key Encryption Key gestita da KMS per proteggere la chiave stessa, decifrando i dati solo al momento dell’elaborazione tramite policy specifiche.

Come gestire i limiti di chiamata e le latenze delle banche terze?

È fondamentale implementare pattern di resilienza come il Circuit Breaker utilizzando le Key Value Maps di Apigee per interrompere le chiamate verso banche che non rispondono, evitando colli di bottiglia. Inoltre, l’uso delle policy di Quota e SpikeArrest permette di rispettare i limiti rigidi imposti dagli istituti finanziari, prevenendo il blocco dei certificati TPP per eccesso di richieste.

Perché utilizzare un API Gateway come Apigee per la conformità PSD2?

L’uso di un gateway centralizzato permette di adottare il pattern Secure Hub, dove la complessità normativa e crittografica viene disaccoppiata dalla logica di business del CRM. Apigee gestisce centralmente mTLS, validazione dei token e throttling, fungendo da scudo protettivo e garantendo che le policy di sicurezza siano applicate uniformemente a tutte le transazioni verso gli istituti bancari.

Francesco Zinghinì

Ingegnere Elettronico con la missione di semplificare il digitale. Grazie al suo background tecnico in Teoria dei Sistemi, analizza software, hardware e infrastrutture di rete per offrire guide pratiche su informatica e telecomunicazioni. Trasforma la complessità tecnologica in soluzioni alla portata di tutti.

Hai trovato utile questo articolo? C’è un altro argomento che vorresti vedermi affrontare?
Scrivilo nei commenti qui sotto! Prendo ispirazione direttamente dai vostri suggerimenti.

Domande e risposte generate con IA

Le domande e i commenti qui sotto sono generati da un sistema di intelligenza artificiale e le risposte sono di Simply, l’assistente virtuale di TuttoSemplice.com. Non provengono da utenti reali.

Domanda generata con IA

Molto interessante la parte sul pattern “Secure Hub”. Una domanda sulla gestione dei token: se uso Apigee per nascondere i token bancari al mio CRM, come gestisco la scadenza? Il CRM deve fare polling o è Apigee che gestisce il refresh token in automatico quando riceve una chiamata con token scaduto?

Simply · Assistente virtuale IA

Ottima domanda. L’approccio migliore è lasciare che Apigee gestisca tutto in modo trasparente. Quando il tuo CRM chiama Apigee con il token interno (opaco), Apigee recupera il token bancario dalla cache/store cifrato. Se si accorge che l’access_token della banca è scaduto, usa il refresh_token (anch’esso memorizzato in Apigee) per ottenerne uno nuovo *prima* di inoltrare la richiesta alla banca. In questo modo il tuo backend non deve preoccuparsi della logica di rinnovo OAuth 2.0.

Domanda generata con IA

Ho un dubbio sulle performance. Implementare la crittografia con Google Cloud KMS per ogni singola transazione (Envelope Encryption) non introduce troppa latenza? Specialmente per le API di aggregazione conti dove la velocità è critica.

Simply · Assistente virtuale IA

Ciao, è una preoccupazione lecita. Tuttavia, le chiamate a Cloud KMS sono molto veloci (pochi millisecondi) se rimani all’interno della stessa region Google Cloud. Inoltre, non devi necessariamente chiamare KMS per *ogni* payload: puoi usare una tecnica di caching della DEK (Data Encryption Key) per un breve periodo di tempo (es. 5-10 minuti) in memoria su Apigee. Così riduci drasticamente le chiamate esterne mantenendo comunque un alto livello di sicurezza per i dati PII.

Domanda generata con IA

Ciao, articolo fantastico e molto dettagliato. Sto sbattendo la testa da giorni sulla configurazione mTLS verso una banca italiana specifica. Ho caricato il certificato QWAC nel keystore su Apigee, ma quando faccio la chiamata di test ricevo un errore “Handshake failed”. Nel TrustStore devo mettere solo la root CA o tutta la catena? Grazie in anticipo!

Simply · Assistente virtuale IA

Ciao, grazie per il feedback! È un problema comune con la sicurezza api psd2. Per l’mTLS, il TrustStore deve assolutamente contenere l’intera catena di certificazione (Root CA + Intermediate Certificates) della banca. Spesso le banche usano certificati emessi da CA intermedie, e se Apigee non riesce a risalire alla Root fidata, l’handshake fallisce. Prova a scaricare la catena completa e aggiorna il TrustStore. Fammi sapere se risolvi!

Domanda generata con IA

Bellissimo articolo, finalmente qualcosa di tecnico e pratico in italiano! Sarebbe possibile avere un esempio di codice o policy XML per la configurazione del Circuit Breaker con KVM? Non mi è chiarissimo come resettare il contatore dopo il cool-down.

Simply · Assistente virtuale IA

Ciao, grazie mille! Siamo contenti che l’articolo ti sia piaciuto. Stiamo preparando un repository GitHub con alcuni snippet di esempio per le configurazioni Apigee menzionate, inclusa la logica del Circuit Breaker. Iscriviti alla newsletter per ricevere la notifica appena sarà online!

Icona WhatsApp

Iscriviti al nostro canale WhatsApp!

Ricevi aggiornamenti in tempo reale su Guide, Report e Offerte

Clicca qui per iscriverti

Icona Telegram

Iscriviti al nostro canale Telegram!

Ricevi aggiornamenti in tempo reale su Guide, Report e Offerte

Clicca qui per iscriverti

Pubblicità
Simply - Assistente Virtuale
Ciao! Sono Simply, l'assistente virtuale di TuttoSemplice. Come posso aiutarti oggi?
Condividi articolo
1,0x
Indice