Mascherare gli URL con i criteri di trasformazione

Completato

Le organizzazioni potrebbero dover modificare le informazioni pubblicate da un'API in breve tempo. Ad esempio, per rispettare una modifica della legislazione o affrontare una nuova minaccia alla sicurezza.

L'esempio dell'API Census espone i dettagli sull'URL da cui viene chiamata l'API. Queste informazioni potrebbero consentire a un utente malintenzionato di tentare l'accesso ai dati del censimento ignorando il gateway di Gestione API ed esponendo un endpoint meno sicuro. Lo sviluppatore responsabile vuole mascherare questi URL nel corpo della risposta dell'API.

Qui viene descritto come usare i criteri di Gestione API che consentono di modificare il contenuto dell'intestazione e del corpo delle risposte dell'API.

Perché trasformare una risposta?

Il corpo della risposta di una chiamata API contiene i dati richiesti. Nell'API Census, ad esempio, il corpo della risposta contiene i dati JSON per gli intervistati. È anche possibile vedere come il corpo contiene collegamenti URL per visualizzare le singole persone:

Screenshot of a default HTTP response with the href value highlighted, showing an unmasked URL link.

Questi collegamenti sono basati sugli endpoint dell'API Census ed è necessario mascherarli per visualizzare gli URL di Gestione API.

Per ottenere questa configurazione, verrà creato un criterio di trasformazione.

Nota

È consigliabile proteggere l'API back-end usando uno dei meccanismi disponibili in Gestione API. Ad esempio, configurarlo per richiedere un certificato client e quindi configurare Gestione API per fornire tale certificato. In questa configurazione nessuno può chiamare direttamente l'API back-end e aggirare il gateway di Gestione API perché non è disponibile un certificato riconosciuto dal back-end.

Criterio di trasformazione

Un criterio di trasformazione modifica il contenuto di una chiamata API. Alcuni criteri di trasformazione si applicano all'intestazione e altri si applicano al corpo. Sono disponibili le trasformazioni seguenti:

Trasformazione Descrizione
Convert JSON to XML (Converti da JSON a XML) Converte il corpo della richiesta o della risposta da JSON a XML.
Convert XML to JSON (Converti da XML a JSON) Converte il corpo della richiesta o della risposta da XML a JSON.
Find and replace string in body (Trova e sostituisci stringa nel corpo) Trova una sottostringa di richiesta o risposta e la sostituisce con una substring diversa.
Mask URLs in content (Maschera URL nel contenuto) Riscrive i collegamenti nel corpo della risposta, in modo che facciano riferimento al collegamento equivalente attraverso il gateway.
Set backend service (Imposta servizio back-end) Modifica il servizio back-end per una richiesta in ingresso.
Set body (Imposta corpo) Imposta il corpo del messaggio per una richiesta o una risposta.
Set HTTP header (Imposta intestazione HTTP) Assegna un valore a un'intestazione di risposta o richiesta esistente oppure aggiunge una nuova intestazione di risposta o richiesta.
Set query string parameter (Imposta parametro di stringa della query) Aggiunge, sostituisce il valore di o elimina il parametro di stringa della query di richiesta.
Rewrite URL (Riscrivi URL) Converte un URL di richiesta dal formato pubblico al formato previsto dal servizio Web.
Transform XML using an XSLT (Trasforma XML usando XSLT) Applica una trasformazione XSL all'XML nel corpo della richiesta o della risposta.

Nell'esercizio seguente, si userà la trasformazione Mask URLs in Content per modificare i collegamenti.