My IBM Accedi Iscriviti

Cos'è una chiave API?

11 giugno 2024

Autori

Gita Jackson

Staff Writer

Michael Goodwin

Editorial lead, Automation & ITOps

Cos'è una chiave API?

Una chiave API è un identificatore univoco utilizzato per autenticare software e sistemi che tentano di accedere ad altri software o sistemi tramite un'application programming interface (API).

Un'API, o application programming interface, è un insieme di regole o protocolli che consentono alle applicazioni software di comunicare tra loro per scambiare dati, caratteristiche e funzionalità. Le API offrono ai proprietari delle applicazioni un modo semplice e sicuro per rendere disponibili i dati e le funzioni delle applicazioni ai reparti all'interno dell'organizzazione. I proprietari delle applicazioni possono anche condividere o commercializzare dati e funzioni con business partner o terze parti. Le API consentono la condivisione delle informazioni necessarie unicamente, mantenendo nascosti altri dettagli interni del sistema, il che contribuisce a ottimizzare la sicurezza di quest'ultimo.

Poiché le API possono fornire l'accesso a dati sensibili, è importante che l'API possa convalidare che l'applicazione che effettua la richiesta sia autorizzata a farlo. L'uso delle chiavi API consente allo sviluppatore di applicazioni di autenticare le applicazioni che chiamano il backend di un'API, per garantire che siano autorizzate a farlo.

Sebbene le chiavi API possano essere un aspetto per garantire la sicurezza delle API di un'azienda e dei dati che gestiscono, non costituiscono una soluzione di sicurezza API definitiva. In particolare, le chiavi API non sono sicure come i token di autenticazione o il protocollo OAuth (autorizzazione aperta). Queste misure sono più adatte per autenticare utenti umani specifici, offrono alle organizzazioni un controllo più granulare sull'accesso alle funzioni di un'API specifica e possono essere impostate con una scadenza.

OAuth può essere utilizzato con le chiavi API o da solo. A volte un'azienda potrebbe utilizzare una chiave API per alcuni utenti ma OAuth per altri. Esistono altri metodi di autenticazione delle chiamate a un'API, come i JSON Web Tokens (JWT), ma non sono così comunemente utilizzati.

Le chiavi API continuano ad essere un aspetto utile della sicurezza delle API, in quanto aiutano le organizzazioni a monitorare le chiamate alle API e a gestire il consumo delle API, aumentando la sicurezza e garantendo che questi programmi abbiano una larghezza di banda adeguata.

Veduta aerea di uno snodo di autostrade

Rimani con la testa nel cloud 


Ricevi la newsletter settimanale Think per una guida esperta sull'ottimizzazione delle impostazioni multicloud nell'era dell'AI.

Come funzionano le chiavi API?

Una chiave API è una stringa alfanumerica univoca generata in modo casuale di caratteri che le API utilizzano per autenticare le applicazioni che effettuano chiamate a un'API. Ogni chiave rilasciata da un fornitore API è associata a uno specifico client API, ad esempio un modulo software. Le chiavi API consentono a un server API di identificare quali software e applicazioni inviano una chiamata all'API. La chiave generata viene utilizzata per ogni richiesta effettuata dall'applicazione o dal progetto all'API associata (fino a quando la chiave non viene aggiornata o eliminata).

Il processo funziona in questo modo:

Quando un'applicazione effettua una chiamata a un'API per richiedere funzioni o dati da un'altra applicazione, il server API utilizza la chiave API per convalidare l'autenticità dell'applicazione. Per le applicazioni web e le API REST, la chiave può essere inviata come intestazione, in una stringa di query o come cookie. Se la chiave API corrisponde a una chiave approvata, il server restituisce i dati richiesti. In caso contrario, nega la chiamata e invia un messaggio di rifiuto.

Gli sviluppatori possono aggiungere altre convalide e restrizioni, se necessario.

Per esempio, gli sviluppatori possono configurare i diritti di accesso per un'applicazione o un progetto che consentono l'accesso solo a determinati tipi di dati o funzioni. Gli sviluppatori possono anche impostare restrizioni per le applicazioni che specificano quali siti web, indirizzi IP, applicazioni (o app per dispositivi mobili) e kit di sviluppo software (SDK) possono utilizzare una chiave API.

AI Academy

Prepararsi all'AI con l'hybrid cloud

Condotto dai migliori leader di pensiero di IBM, il programma di studi è stato progettato per aiutare i dirigenti aziendali ad acquisire le conoscenze necessarie per dare priorità agli investimenti in AI che possono favorire la crescita.

Chiavi API e API security

Sebbene le chiavi API facciano parte dell'API security, non dovrebbero essere l'unico modo in cui un'organizzazione autentica e convalida le chiamate effettuate a un'API. Infatti, sebbene le chiavi API siano utili, non sono un metodo particolarmente sicuro per autenticare le chiamate. Le chiavi API possono identificare un'applicazione o un progetto specifico, ma non possono convalidare il singolo utente che utilizza l'applicazione che effettua le chiamate. Questo rende le chiavi API una scelta non opportuna per applicare il controllo degli accessi alle API. Le chiavi API offrono solo l'identificazione e l'autorizzazione del progetto, ma non l'identificazione o l'autorizzazione dell'utente.

Pensa a una chiave API come a una password: è un livello di sicurezza, ma anche un potenziale punto di errore per una violazione della sicurezza. Come una password, chiunque abbia accesso a una chiave API può utilizzarla. Non c'è modo di verificare chi stia usando la chiave, e le chiavi scadono raramente a meno che non vengano specificamente rigenerate.

Le chiavi API utilizzate con le applicazioni web non sono considerate sicure con protocollo HTTP (Plain Hypertext Transfer Protocol) perché inviano credenziali non crittografate. Per essere considerate sicure, le applicazioni web devono disporre di una certificazione SSL (Secure Sockets Layer), altrimenti nota come protocollo di trasferimento ipertestuale sicuro (HTTPS).

Altri metodi di convalida per le chiamate API includono:

Token di autenticazione

Conosciuti anche come token API, i token di autenticazione aggiungono un ulteriore livello di sicurezza API perché possono identificare un utente specifico, non solo l'applicazione che effettua la richiesta. Questi token sono frammenti di codice che identificano un utente dell'API a cui stanno richiedendo i dati. Poiché sono più righe di codice anziché una singola stringa alfanumerica, forniscono più informazioni all'API su quale persona o progetto sta effettuando una richiesta. I token API possono anche essere generati con un ambito limitato, concedendo l'accesso a informazioni specifiche solo per un periodo limitato. 

Protocollo OAuth

Il protocollo OAuth (autorizzazione aperta) fa parte del metodo standard del settore per l'autorizzazione e l'autenticazione delle chiamate a un'API quando viene utilizzato con OpenID Connect (OIDC). Il protocollo OAuth è l'aspetto che consente agli utenti l'accesso alle informazioni richieste e viene utilizzato nel più ampio processo di autenticazione degli utenti.

OAuth utilizza un tipo di token API chiamato token di accesso. I token di accesso vengono rilasciati agli utenti dalle API a cui richiedono l'accesso. Questi token, tramite una serie di comunicazioni tra un'API e l'utente, concedono l'accesso alle informazioni specifiche che l'utente ha richiesto senza la necessità di condividere credenziali o altre informazioni sicure con l'API.

OpenID Connect è un protocollo di autenticazione basato su OAuth, che consente a OAuth di autenticare gli utenti emettendo token di identità e token di accesso. Questi token di identità includono anche informazioni sull'account specifico che sta effettuando la richiesta, anziché solo sul progetto. OpenID Connect apporta lievi modifiche al flusso di autorizzazione di OAuth richiedendo sia un token di accesso sia un token di identità prima di concedere l'accesso a un'API.

Le chiavi API possono essere utilizzate con altre forme di autenticazione per le chiamate API oppure separatamente. All'interno di un'azienda, un'API può utilizzare diversi tipi di autenticazione e autorizzazione a seconda di chi richiede l'accesso. Alcune parti di un'organizzazione, ad esempio gli sviluppatori, potrebbero aver bisogno di un accesso illimitato a un'API, mentre altri reparti necessitano di un accesso più strettamente controllato.

Quali sono i tipi di chiavi API?

Esistono due tipi principali di chiavi API ed entrambe svolgono un ruolo nell'autenticazione delle chiamate API. A volte, vengono anche utilizzate insieme.

Chiavi pubbliche

Si tratta di chiavi che forniscono l'accesso a dati non sensibili o a funzionalità che non richiedono l'autenticazione dell'utente. Possono essere condivise apertamente tra gli sviluppatori e altre parti interessate che lavorano con un'API.

Chiavi private

Le chiavi private vengono utilizzate per accedere a dati sensibili e possono anche garantire l'accesso in scrittura all'utente della chiave. Le chiavi API private possono essere utilizzate con una chiave pubblica per aggiungere un ulteriore livello di sicurezza.

Sebbene le chiavi API non dovrebbero essere l'unico metodo per autenticare le chiamate API, l'uso di chiavi pubbliche e private in coppia può fornire un ulteriore livello di sicurezza. Quando viene effettuata una chiamata a un'API, una chiave privata può essere utilizzata come una firma digitale per client specifici che necessitano di accedere a funzioni specifiche di un'API. In seguito la chiave pubblica può verificare la firma e riconfermare che la chiamata all'API è legittima.

Quali sono gli altri casi d'uso delle chiavi API? 

Le chiavi API forniscono funzioni utili all'interno di un'organizzazione oltre alla semplice autenticazione. Poiché queste chiavi aiutano a determinare l'accesso alle API, possono essere utilizzate anche per mantenere le applicazioni attive e in esecuzione e fornire dati utili su come vengono utilizzate.

Blocco del traffico anonimo

Le chiavi API sono un aspetto importante della gestione degli accessi, che consente a un'organizzazione di controllare quali utenti possono accedere alle API aziendali. Il traffico anonimo verso un'API può essere un indicatore di attività pericolosa. L'uso delle chiavi API consente a un'organizzazione di bloccare l'accesso non autorizzato alle API, come le chiamate API anonime, il che può limitare la portata di un potenziale attacco informatico. Limitare il servizio API in questo modo aiuta anche a evitare che le API siano bombardate da richieste, riducendo al minimo le possibilità di tempi di inattività delle applicazioni importanti.

Controllo del numero di chiamate effettuate alle API

Le chiavi API possono essere utilizzate per limitare il traffico di un'API, una misura nota come rate limiting. La limitazione della velocità consente a un'organizzazione di controllare il numero di richieste effettuate a un'API da un client durante un periodo specifico. L'accesso all'API viene negato dopo che il traffico raggiunge la soglia definita.

Consentendo il traffico delle applicazioni solo all'interno dei parametri definiti, l'organizzazione può ottimizzare l'utilizzo delle risorse API e della larghezza di banda. Queste impostazioni possono essere determinate nella documentazione delle API di un'organizzazione.

Monitoraggio dei trend di utilizzo delle API

Poiché le chiavi API sono identificatori univoci, un'organizzazione può utilizzarle per tenere traccia del traffico e delle chiamate effettuate alle API. Utilizzando le chiavi API, le organizzazioni possono risalire, attraverso ogni chiamata effettuata a un'API, a un'applicazione specifica. Possono anche determinare il numero di chiamate effettuate, il tipo di chiamate, l'intervallo di indirizzi IP dell'utente e persino se sta utilizzando iOS o Android.

L'analisi dei modelli di utilizzo aiuta un'organizzazione a capire meglio quali parti di un'azienda accedono più frequentemente a determinati endpoint. Anche il monitoraggio del traffico e il filtraggio dei log sono elementi utili per la sicurezza delle API. Nel caso di un attacco informatico, il controllo dell'attività su un server API sulla base di chiavi API specifiche può fornire a un'organizzazione un insight più approfondito dell'attacco e di quali chiavi potrebbero essere state compromesse.

Come proteggere una chiave API

Le chiavi API possono aiutare a proteggere API, dati e reti, ma solo quando vengono utilizzate in modo sicuro. Molte organizzazioni utilizzano questi metodi per assicurarsi che le loro chiavi API siano sicure e impedire che le API diventino vettori di un attacco informatico.

Combinazione di diversi metodi di autenticazione

Le chiavi API non sono sufficientemente sicure per essere l'unico modo in cui vengono autenticate le chiamate API. Non possono convalidare i singoli utenti e possono essere facilmente compromesse. Le chiavi API possono aggiungere un'ulteriore barriera di sicurezza all'ecosistema API di un'organizzazione se utilizzate insieme a un altro metodo di autenticazione come OAuth, JSON Web Token (JWT) o token di autenticazione.

Non è raro che le organizzazioni utilizzino più di un metodo di autenticazione. Ad esempio, gli sviluppatori possono utilizzare le chiavi API internamente per fornire un accesso illimitato alle API durante lo sviluppo, ma poi utilizzare il sistema OAuth per i clienti esterni perché fornisce token a scadenza e può essere impostato per consentire l'accesso solo a dati specifici.

Storage sicuro delle chiavi

Quando vengono generate, le chiavi sono spesso prodotte in testo normale. Proprio come una password, la sicurezza della chiave dipende da come e dove viene memorizzata. I professionisti della sicurezza consigliano di memorizzare queste chiavi come valori hash in un database, così che non siano vulnerabili ai furti.

L'inserimento delle chiavi API nel codice sorgente o nel repository le rende anche vulnerabili ai malintenzionati: quando l'applicazione viene pubblicata, anche le chiavi possono essere esposte al pubblico. Se possibile, si consiglia di utilizzare un caveau di dati sicuro e crittografato per salvare le chiavi API generate.

Rotazione o sostituzione delle chiavi

Le chiavi API non scadono, a meno che gli sviluppatori non impostino una data di scadenza, oppure se il generatore di chiavi revoca l'accesso o rigenera la chiave. Se un utente non autorizzato ottiene una chiave API, potrebbe accedere ai dati sensibili senza che nessuno all'interno dell'organizzazione lo sappia. Dopotutto, l'utente non autorizzato sta usando la chiave corretta per ottenere i dati richiesti.

La rotazione e la generazione di nuove chiavi API ogni 90-180 giorni può aiutare a mantenere sicure le API. È anche una buona idea cancellare le chiavi API che non sono più in uso. Per un ulteriore livello di protezione, le organizzazioni possono limitare l'ambito di accesso delle chiavi API condivise con i clienti, applicando i diritti di accesso. Questi diritti consentono agli utenti di accedere agli endpoint di cui hanno bisogno e a nient'altro. Alcune organizzazioni automatizzano la generazione di nuove chiavi per assicurarsi che vengano ruotate regolarmente.

Soluzioni correlate

Soluzioni correlate

IBM webMethods

Integra le tue applicazioni e automatizza il lavoro con la piattaforma multicloud ibrido IBM webMethods.

Esplora webMethods
Software e soluzioni di integrazione

Sblocca il potenziale aziendale con le soluzioni di integrazione di IBM, collegando applicazioni e sistemi per accedere rapidamente e in modo sicuro ai dati critici.

Esplora le soluzioni di cloud integration
Servizi di consulenza cloud 

Sblocca nuove funzionalità e promuovi l'agilità aziendale con i servizi di consulenza cloud di IBM. Scopri come creare insieme soluzioni, accelerare la trasformazione digitale e ottimizzare le prestazioni attraverso strategie di hybrid cloud e partnership di esperti.

Servizi cloud
Fai il passo successivo

Semplifica il tuo percorso di trasformazione digitale con potenti strumenti di integrazione. Scopri in che modo le soluzioni leader di IBM possono connettere, automatizzare e proteggere le tue applicazioni aziendali.

Inizia con l'integrazione Esplora le soluzioni specializzate