Emanuele Rossi

Gestione centralizzata delle API aziendali

Come abbiamo implementato Azure API Management per centralizzare oltre 120 endpoint aziendali con autenticazione Azure AD, monitoring unificato e 50.000 chiamate/minuto gestite.

Gestione centralizzata delle API aziendali

Sviluppo di una Azure API Management Architecture.

Sviluppo di una Azure API Management Architecture

Attraverso l’utilizzo di Azure API Management, abbiamo creato una soluzione per la gestione centralizzata delle proprie API completa di:

  • Gestione dell’autenticazione
  • Monitoring
  • Definizione di ruoli e accessi alle varie API
  • Pubblicazione degli endpoint partendo da API sviluppate su diverse tecnologie
  • Gestione controllata del processo di pubblicazione‍

In un modello API-First, in cui è fondamentale mettere in connessione sistemi differenti, è necessario definire un punto centrale in cui gestire l’esposizione dei dati.

Il problema: API aziendali senza governance

Nelle organizzazioni enterprise che crescono per linee interne, le API si accumulano nel tempo senza un piano unitario. Un team sviluppa un servizio REST con autenticazione OAuth, un altro rilascia un endpoint SOAP con API key statica, un terzo integra un sistema legacy tramite token custom. Il risultato è un inventario di web services eterogeneo, frammentato e difficile da tenere sotto controllo.

Il problema non è solo organizzativo. Una API esposta senza controllo è un vettore di attacco reale: basta un token non revocato o un endpoint non documentato per aprire falle nella sicurezza del perimetro aziendale. Una API non monitorata, invece, può diventare un collo di bottiglia silenzioso, degradando le prestazioni di interi processi di automazione senza che nessuno se ne accorga fino a quando è troppo tardi.

C’è poi il problema della manutenzione. Senza un API gateway centrale, ogni aggiornamento di versione richiede di notificare manualmente tutti i consumer, aggiornare le configurazioni sui sistemi chiamanti e gestire la coesistenza tra versioni vecchie e nuove. Un’operazione che dovrebbe richiedere ore si trasforma in giorni di coordinamento tra team diversi.

È esattamente questo il contesto in cui si trovava il cliente quando ci ha contattato.

Una modalità di gestione comune delle API aziendali

La richiesta del cliente era molto precisa: mettere ordine alla miriade di web services, servizi e API in essere all’interno dell’azienda. Queste erano risorse critiche per il funzionamento dei processi di automazione, però erano implementate con le tecnologie e le modalità di autenticazione più disparate.

La sfida è stata quella di sviluppare una Azure API Management Architecture che permettesse di gestire insieme tutti i servizi in termini di sicurezza, monitoraggio, modalità di deployment e aggiornamento.

Il tutto doveva essere implementato attraverso uno strumento intuitivo e semplice da utilizzare.

Azure API Management

I nostri esperti hanno utilizzato le funzionalità offerte da Azure API Management, il servizio di gestione degli endpoint applicativi presente nella piattaforma cloud di Microsoft.

Interfaccia di Azure API ManagmentIl pacchetto è stato completato con una gestione automatizzata dei rilasci delle API tramite template ARM (Azure Resource Manager) e pipeline automatica di installazione delle risorse con Azure DevOps che ha offerto al cliente un meccanismo pronto all’uso di recovery dell’intera infrastruttura di risorse Azure.

Sicurezza e governance: il layer di controllo unificato

Azure API Management è stato configurato come unico punto di ingresso per tutte le richieste verso i servizi backend. Qualsiasi applicazione interna o sistema esterno che vuole consumare un’API passa obbligatoriamente per il gateway, che si occupa di autenticare la richiesta, applicare le policy definite e inoltrarla al servizio corretto. I backend rimangono nascosti e protetti.

Il meccanismo di autenticazione è stato costruito su Azure Active Directory. In modalità applicativa, la comunicazione avviene tramite client credentials: il sistema chiamante ottiene un token con la propria identità di servizio, senza coinvolgere utenti. In modalità delegata, invece, il gateway propaga l’identità dell’utente corrente, consentendo ai backend di applicare logiche di autorizzazione contestuali basate sul profilo Office 365.

Per proteggere i servizi backend da sovraccarichi, sono state definite policy di rate limiting e throttling a livello di API e di singolo consumer. Un servizio che inizia a ricevere un numero anomalo di chiamate viene automaticamente limitato prima che il problema si trasferisca al backend.

Il developer portal integrato ha completato il quadro dal lato dei team interni. Gli sviluppatori possono accedere a un catalogo centralizzato delle API disponibili, leggere la documentazione generata automaticamente dalle specifiche OpenAPI, eseguire chiamate di test direttamente dall’interfaccia e sottoscrivere i prodotti API di loro interesse, senza dover aprire ticket o coordinare con altri team.

Il vantaggio per il cliente

Grazie alla nuova Azure API Management Architecture, il cliente ha potuto fruire di una singola piattaforma in cui:

  • gestire tutte le API per l’automazione dei processi interni ed esterni;‍
  • avere un meccanismo di autenticazione unificato per qualsiasi tipologia di web service, servizio o API;‍
  • avere piena autonomia per gestire il versioning delle API e il relativo test;‍
  • monitorare l’utilizzo delle API;‍
  • gestire il riconoscimento dell’utente tramite l’account aziendale Office 365;‍
  • avere un meccanismo di pubblicazione controllata delle API.

Risultati raggiunti

La Azure API Management Architecture da noi sviluppata ha portato al cliente una soluzione che ha notevolmente migliorato l’utilizzo e la gestione degli endpoint applicativi all’interno dell’azienda.

Il risultato principale è stata la centralizzazione della gestione della sicurezza per l’accesso alle varie API, che è stato implementato sfruttando Azure AD come identity provider per l’autenticazione sia in modalità applicativa che in modalità delegata, sfruttando quindi l’identità dell’utente corrente.

Il sistema ha ora in uso oltre 120 endpoint differenti che offrono dati alle varie applicazioni interne ed esterne al perimetro definito dalla rete aziendale, con un numero medio di oltre 50.000 chiamate al minuto.

Emanuele Rossi

Scritto da

Emanuele Rossi

Infra & Security · Dev4Side