delete

Contattaci

back to resources

Protezione dei Web Services

data
19/5/2020
data progetto
autore
Roberto Bellucci
cliente
partnership
url
No items found.

Una panoramica sui metodi usati per la protezione dell’accesso alle applicazioni

di Roberto Bellucci, Orbyta BasedueSenior System Programmer

Web Service e Web API

La differenza tra Web Service (WS) e Web API (API) è molto tecnica ma la loro utilità è la stessa, ossia consentire lo scambio di dati tra le applicazioni attraverso il protocollo di trasporto HTTP(S), indipendentemente dal sistema operativo su cui girano e dal linguaggio usato.

Grazie ai WS ed alle API, le aziende connettono tra loro i servizi e trasferiscono i dati. L’aspetto tecnico è molto importante ed è utile sapere che i Web Service si basano su standard molto rigidi e devono sottostare ad un insieme di regole che definiscono la struttura (WSDL) dei messaggi scambiati che possono essere solo in formato XML, mentre le Web API accettano i dati anche in JSON ed essendo molto più snelle sono più adatte ad essere impiegate su dispositivi con banda limitata. Da un punto di vista tecnico queste sono le differenze principali, tuttavia come ho detto prima, l’utilità delle due soluzioni è la stessa, quindi per semplicità userò in questo articolo indifferentemente i termini Web Service(WS), Web API e API, come fossero sinonimi per parlare della loro “messa in sicurezza”.

La API Economy

“Le aziende di oggi si stanno trasformando e uno degli imperativi è quello di ottenere o fornire servizi e informazioni alle persone attraverso il Web.” Ho scritto questa frase quando stavo preparando la presentazione del seminario dallo stesso titolo destinato ai colleghi di Orbyta e benché l’evento si sia svolto in modalità webinar a causa della crisi già in atto, non mi è venuto in mente all’epoca di enfatizzarla come sto per fare ora, per sottolineare il fatto che a causa di quanto stiamo vivendo, la trasformazione a cui accennavo, stia prendendo un’accelerazione ancora più importante e che non ci saremmo mai aspettati!

Viene stimolata una nuova economia, denominata appunto API Economy, in cui l’Application Programmig Interface consente un accesso a servizi, applicazioni e sistemi per condividere le informazioni in maniera innovativa.

Per poter operare in queste nuove realtà è quanto mai necessario che l’accesso ai dati e ai servizi risulti protetto.

WS/API Gateway

Sappiamo che i Firewall tradizionali proteggono solamente il traffico a livello IP controllando il traffico solamente in base alla porta. Per questo risultano incapaci di difendersi da attacchi sempre più sofisticati che si celano dentro payload applicativi, trasportati dai pacchetti IP che attraversano i firewall in un tunnel HTTP(S) esponendo le aziende a sempre nuovi attacchi.

E’ quindi indispensabile assicurarsi che passino solamente richieste valide, per servizi validi, da altrettanti validi clienti; ed ecco che entrano in gioco i Web Service & API Gateway, ovvero i firewall delle applicazioni. Vediamo cosa sono e come svolgono il loro compito.

Esistono molti tipi di WS e API Gateway, alcuni sono degli appliance, altri sono solo in versione virtuale e in cloud. I vendor che offrono queste soluzioni sono molti, tuttavia non sono tanti quelli che possono vantare livelli di sicurezza e prestazioni di alto livello.

maxresdefault

La mia esperienza in questo campo si basa sulla conoscenza dell’appliance IBM DataPower® Gateway considerato da molti uno dei leader del mercato.

Detto in poche parole il DataPower® Gateway funge da proxy tra le applicazioni di front-end (FE) e le API di back-end (BE); in pratica le applicazioni di FE non chiameranno direttamente le API ma il Datapower che ha il compito di intercettare tutte le Request alle API ed eseguire svariate funzioni di sicurezza ma non solo come vedremo, prima di inoltrare al server di BE dove risiedono le API le richieste alle quali erano indirizzate.

Tra le funzioni più comuni che un API Gateway deve fare e che il DataPower® svolge molto bene, troviamo la gestione della connessione SSL/TLS, l’autenticazione attraverso i certificati, il controllo della grandezza del payload, lo schema-validation se si tratta di WS,  la limitazione di velocità, il routing, la conversione di protocolli, ad esempio da XML a JSON e viceversa ma anche CSV, Cobol, binary eccetera.

Il DataPower® inoltre, offre un’ampia scelta sul fronte dell’integrazione, permettendo la connessione al Mainframe e al Cics, a molti database quali Oracle, MS SQL, Sybase, DB2 e IMS.

Molte funzionalità, come ad esempio l’autenticazione e lo schema-validation, sono feature già pre configurate e vengono attivate con semplici comandi dalla GUI, altre funzioni come ad esempio la conversione di protocolli necessitano invece di un’attività di implementazione a cura del sistemista attraverso la programmazione con linguaggi di scripting come Java Script e XSLT, quest’ultimo più adatto a gestire payload in formato XML.

Dunque, grazie ai linguaggi JavaScript e XSLT, si è in grado di personalizzare ciascun WS e API esposti dal DataPower®, consentendoci di innescare qualsiasi azione sia a fronte del messaggio in ingresso dal FE che durante la fase di ricezione del messaggio di risposta da parte dell’API. Ad esempio, oltre al già citato caso della conversione dei protocolli, pensiamo a quanto potrebbe essere utile tracciare "chi fa che cosa", ovvero salvare le Request e le Response relative ai WS, scrivendo su un DB tutta una serie di informazioni utili ai fini di audit e debug, il tutto, vi posso assicurare, con tempi medi di esecuzione di pochissimi millisecondi soprattutto nel caso di trasformazioni XML grazie alla capacità del Datapower di gestire queste operazioni come si suol dire “at wirespeed”.

Vorrei concludere dicendo che in base alla mia esperienza, considero  l’impatto di queste tematiche assolutamente trasversale e non limitato al solo ambito sistemistico, e perciò ritengo che sia molto importante sottolineare che la loro conoscenza possa e debba interessare anche i colleghi Applicativi, specialmente coloro i quali ricoprono un ruolo di progettazione.

Roberto Bellucci

Roberto Bellucci

Senior System Programmer

Inizia come sistemista Mainframe al CED della Olivetti, dopo qualche anno lascia l’azienda di Ivrea per dedicarsi alla consulenza, in seguito alcune iniziative imprenditoriali lo porteranno alla co-fondazione di Basedue. Dopo 15 anni lascia l’esperienza imprenditoriale e torna a dedicarsi alla consulenza. Attualmente fa parte di Orbyta Basedue e svolge la sua attività di consulenza in IntesaSanpaolo.

Risultati

resources

User Experience Design tra accessibilità e inclusività

User Experience Design tra accessibilità e inclusività

User Experience

Accessibilità

Inclusività

Assitech.Net entra nella galassia Orbyta Technologies

Assitech.Net entra nella galassia Orbyta Technologies

Orbyta Technologies

Orbyta Group

Acquisizione

News

Programmazione Funzionale Java

Programmazione Funzionale Java

Functional Programming

Java

Software Development

Reactive Programming: parallelizzare con Project Reactor

Reactive Programming: parallelizzare con Project Reactor

Programmazione Reattiva

Reactive Programming

Project Reactor

Piattaforme E-commerce Wholesale per il settore B2B

Piattaforme E-commerce Wholesale per il settore B2B

Wholesale

B2B

Antipattern nello sviluppo software: altri errori da evitare

Antipattern nello sviluppo software: altri errori da evitare

Software Development

Antipattern nello sviluppo software: definizione, ambiti di applicazione ed esempi

Antipattern nello sviluppo software: definizione, ambiti di applicazione ed esempi

Software Development

App tattiche di supporto alla gestione dei progetti reiterativi

App tattiche di supporto alla gestione dei progetti reiterativi

App Development

Power Platform

Low Code

DevOps

Introduzione a Power Pages, il servizio Microsoft per siti web low-code

Introduzione a Power Pages, il servizio Microsoft per siti web low-code

Microsoft

Low-code

Power Platform

Introduzione a Jupyter e Seaborn per Data Analysis e Visualization

Introduzione a Jupyter e Seaborn per Data Analysis e Visualization

Jupiter

Python

Data Analysis

Data Visualization

Come utilizzare Matplotlib per la Data Visualization in Python

Come utilizzare Matplotlib per la Data Visualization in Python

Python

Data Visualization

Data Science

Data Analysis

Introduzione alla libreria Dash per Python

Introduzione alla libreria Dash per Python

Python

Data Science

Data Visualization

Data Analysis

Prime Video passa al monolite: ma allora serverless è inutile? 

Prime Video passa al monolite: ma allora serverless è inutile? 

Tableau per la Business Intelligence: introduzione, tutorial e confronto

Tableau per la Business Intelligence: introduzione, tutorial e confronto

Introduzione a Qlik Sense, piattaforma di Business Intelligence avanzata

Introduzione a Qlik Sense, piattaforma di Business Intelligence avanzata

Applicazioni Cloud Native: definizione, vantaggi e tecnologie

Applicazioni Cloud Native: definizione, vantaggi e tecnologie

Power Apps Tutorial – Case Study: come costruire una business app da zero

Power Apps Tutorial – Case Study: come costruire una business app da zero

Il futuro del gaming tra F2P, GaaS, Crypto e Play to Earn

Il futuro del gaming tra F2P, GaaS, Crypto e Play to Earn

Power Apps Basics: interfacce, implementazione & vantaggi

Power Apps Basics: interfacce, implementazione & vantaggi

Strumenti di Business Intelligence: QlikSense & Power BI a confronto

Strumenti di Business Intelligence: QlikSense & Power BI a confronto

Introduzione a Serverless: non solo Lambda Function

Introduzione a Serverless: non solo Lambda Function

Metaverso: siamo pronti a cogliere l’opportunità?

Metaverso: siamo pronti a cogliere l’opportunità?

Recap Flutter Forward 2023: le 7 novità più interessanti

Recap Flutter Forward 2023: le 7 novità più interessanti

Let's Redux React to a Game

Let's Redux React to a Game

Introduzione a PowerShell

Introduzione a PowerShell

Pago con carta: i trend dei pagamenti digitali e il futuro delle carte di credito

Pago con carta: i trend dei pagamenti digitali e il futuro delle carte di credito

NFT World: il fenomeno NFT tra metaverso, business e GameFi

NFT World: il fenomeno NFT tra metaverso, business e GameFi

Quick Escape Room

Quick Escape Room

Orbyta Invaders Ignition

Orbyta Invaders Ignition

Il lancio della nuova Identity di Orbyta parte dal Metaverso!

Il lancio della nuova Identity di Orbyta parte dal Metaverso!

development

design

metaverse

brand identity

Database a grafo in SQL Server

Database a grafo in SQL Server

Data Science Job Roles: i 4 ruoli più richiesti nel settore

Data Science Job Roles: i 4 ruoli più richiesti nel settore

Teoria dei giochi: Propagazione delle strategie

Teoria dei giochi: Propagazione delle strategie

The chosen one: .NET 5

The chosen one: .NET 5

Network Science e Social Network Analysis

Network Science e Social Network Analysis

Isolation levels on SSMS

Isolation levels on SSMS

Teoria dei Grafi

Teoria dei Grafi

Creare un podcast in automatico a partire da audio vocali e musica

Creare un podcast in automatico a partire da audio vocali e musica

Teoria dei Giochi

Teoria dei Giochi

Recommender systems: principali metodologie degli algoritmi di suggerimento

Recommender systems: principali metodologie degli algoritmi di suggerimento

Introduction to Quantum Computing and Qiskit

Introduction to Quantum Computing and Qiskit

System Versioned Tables

System Versioned Tables

Vim o non Vim

Vim o non Vim

I vantaggi di un Message Broker

I vantaggi di un Message Broker

PlayStation 5 e l'accesso ai dati: un cambio architetturale?

PlayStation 5 e l'accesso ai dati: un cambio architetturale?

Protezione dei Web Services

Protezione dei Web Services

need more info?

contattaci