Sicurezza nei sistemi API RESTful

Le API sono l'interfaccia di accesso alla sorgente delle nostre informazioni. Per questo il capitolo sicurezza è molto importante e discusso. Lo stack su cui poggiamo le API è molto ricco di strati che devono essere adeguatamente configurati per offrire ai consumatori le informazioni necessarie ma devono essere anche fortemente protetti per riconoscere e bloccare richieste non autorizzate e anche, ove necessario, notificare chi di dovere dei tentativi di accesso fuori Policy.

Rete e Metodologie di autenticazione

Quando si parla di API si discute spesso di procedure e tecniche di autenticazione delle stesse. Le infrastrutture RESTful hanno particolari proprietà. Nello specifico le più interessanti sono comunemente:

  • Stateless - le richieste sono libere da un contesto del client presente sul server
  • Layered - è possibile inserire diversi livelli in fronte alle nostre API per estenderne le funzionalità (come con [AWS API Gateway] (http://aws.amazon.com/apigateway)).
  • Uniform Interface - per vincolare il disegno su un unico disegno di accesso al servizio
  • E molto altro...

Tipicamente ci sono diversi possibili meccanismi di autenticazione, tra cui più utilizzati e discussi:

  • Basic Authentication
  • OAuth2

Basic Authentication è un tecnica semplice ed efficace che si applica alle interfacce REST per identificare l'utente che sta accendendo al sistema tramite le sue credenziali di accesso al sistema dirette: username e password (nella forma Basic: base64(username:password)).

OpenAuth versione 2 è un tecnica più sofisticata che divide le credenziali di accesso ad un sistema da un sistema di verifica basato su token con una precisa scandenza temporale ed un framework di autorizzazione e refresh a contorno atto a svolgere diversi compiti: il più interessante permettere a attori terzi di sviluppare applicazioni connesse grazie al meccanismo di scope per limitare l'accesso alla sorgente di informazione.

Il mondo IP in genere non ha intrinsecamente un meccanismo di protezione dell'informazione, ovvero quanto mandiamo un messaggio tra A e B in rete questo è in chiaro: chiunque tra A e B accede completamente all'informazione. La rete comunque è stata pensata per livelli, identificati dallo Stack OSI/ISO, e grazie a questi layer è possibile inserire dei sistemi di cifratura delle informazioni per garantire la confidenzialità delle trasmissioni tra sistemi, per esempio grazie alle catene di certificazione.

Vediamo gli ulteriori strati di sicurezza applicabili a livello infrastrutturale e software.

Scarica il documento

compila i dati per leggere il Whitepaper completo

 


Presa visione dell'informativa privacy (D.Lgs. 196/03),
presto libero consenso al trattamento dei dati personali.