Esercizio: Rimuovere le informazioni dell'intestazione
Le aziende che pubblicano API Web devono spesso controllare attentamente le intestazioni HTTP restituite dalle API, preferibilmente senza riscrivere il codice sorgente delle API.
L'ente governativo ha deciso di condividere i dati del censimento con le proprie agenzie usando API RESTful. I requisiti critici sono che i dati vengano condivisi in modo sicuro e possano essere facilmente modificati per facilitare una rapida integrazione. Lo sviluppatore responsabile deve creare un gateway API. Si userà quindi il gateway per pubblicare un'API Census RESTful che espone un endpoint OpenAPI usando standard di sicurezza moderni.
Deve eseguire queste operazioni:
- Pubblicare un'API Census RESTful.
- Distribuire un gateway di Gestione API.
- Esporre l'API Census usando l'endpoint del gateway.
- Rimuovere un'intestazione dalla risposta.
Importante
Per eseguire questo esercizio è necessario disporre di una propria sottoscrizione di Azure e questo potrebbe comportare dei costi. Se non hai ancora una sottoscrizione di Azure, crea un account gratuito prima di iniziare.
Distribuire l'API Web Census
È stata sviluppata un'app .NET Core che restituisce le informazioni riservate sul censimento. L'app include Swashbuckle per generare la documentazione di OpenAPI.
Per risparmiare tempo, si inizierà eseguendo uno script per ospitare l'API RESTful in Azure. Lo script esegue le operazioni seguenti:
- Crea un piano di servizio app di Azure nel livello gratuito.
- Crea un'API Web nel servizio app di Azure configurata per la distribuzione Git da un repository locale.
- Imposta le credenziali di distribuzione a livello di account per l'app.
- Configura GIT in locale.
- Distribuisce l'API Web all'istanza del servizio app.
Accedi al portale di Azure.
Nella barra delle applicazioni di Azure selezionare l'icona Cloud Shell per aprire Azure Cloud Shell.
Per clonare il repository contenente l'origine per l'app, eseguire il comando
git clone
seguente in Cloud Shell:git clone https://github.com/MicrosoftDocs/mslearn-protect-apis-on-api-management.git
Per passare alla cartella del repository in locale, eseguire il comando seguente:
cd mslearn-protect-apis-on-api-management
Come suggerisce il nome, setup.sh è lo script che viene eseguito per creare l'API di test. Questo script genera un'app Web pubblica che espone un'interfaccia OpenAPI:
bash setup.sh
L'esecuzione dello script richiede circa un minuto. Al termine dello script verranno visualizzati due URL che è possibile usare per testare la distribuzione dell'app. Si osservi che durante la distribuzione tutte le dipendenze necessarie per l'esecuzione dell'app vengono installate automaticamente nel servizio app remoto.
Per verificare che l'app sia stata distribuita correttamente, copiare e incollare il primo URL dall'output di Cloud Shell nel browser. Il browser dovrebbe visualizzare l'interfaccia utente di Swagger per l'app e dichiarare gli endpoint RESTful seguenti:
- api/census, che restituisce un censimento e le persone associate
- api/census/{censusYear}, che restituisce un censimento e le persone associate per l'anno specificato
- api/people/{reference}, che restituisce informazioni dettagliate su una persona specifica
Infine, copiare l'ultimo URL dall'output di Cloud Shell. Questo URL è l'URL JSON di Swagger che verrà usato più avanti in questo esercizio.
Distribuire un gateway API
Il passaggio successivo di questo esercizio consiste nel creare un gateway API nel portale di Azure. Nella sezione successiva si userà il gateway per pubblicare l'API:
Accedere al portale di Azure.
Nel menu del portale di Azure o nella home page selezionare Crea una risorsa. Viene visualizzato il riquadro Crea una risorsa.
Nel riquadro dei menu a sinistra selezionare Integrazione e quindi immettere Gestione API nella casella di ricerca Servizi di ricerca e marketplace. Selezionare la scheda Gestione API nei risultati e quindi Crea per aprire il riquadro Crea servizio Gestione API.
Nella scheda Informazioni di base immettere i valori indicati di seguito per ogni impostazione.
Impostazione Valore Dettagli di progetto Subscription Selezionare la propria sottoscrizione Gruppo di risorse Selezionare un gruppo di risorse nuovo o esistente. Un gruppo di risorse è un contenitore logico in cui risiedono le risorse correlate per una soluzione di Azure. Dettagli istanza Region Selezionare un'area disponibile. Nome risorsa Immettere apim-CensusData<random number>
, sostituendorandom number
con la propria serie di numeri per assicurarsi che il nome sia univoco a livello globale.Nome organizzazione Immetti Government-Census
. Nome dell'organizzazione da usare nel portale per sviluppatori e per le notifiche di posta elettronica. Il portale per sviluppatori e le notifiche non sono disponibili in tutti i livelli di servizio.Indirizzo di posta elettronica dell'amministratore Indirizzo di posta elettronica per ricevere tutte le notifiche di sistema. Piano tariffario Piano tariffario Selezionare Consumption (99.95% SLA)
dall'elenco a discesa.Nota
Il livello A consumo offre una distribuzione rapida per il test e prevede un modello tariffario con pagamento in base al consumo. L'esperienza complessiva di Gestione API è molto simile a quella degli altri piani tariffari.
Selezionare Rivedi e crea. Al termine della convalida selezionare Crea. Questa operazione può richiedere alcuni minuti. Al termine della distribuzione, l'istanza di Gestione API verrà visualizzata nell'elenco delle risorse di Azure. Selezionare Vai alla risorsa per visualizzare il riquadro per il servizio Gestione API.
Importare l'API
Importare ora l'API Census nel gateway di Gestione API:
Nel riquadro dei menu a sinistra dell'istanza di Gestione API, nella sezione API, selezionare API e quindi + Aggiungi API.
In Crea da definizione selezionare OpenAPI. Viene visualizzata la finestra di dialogo Crea dalla specifica OpenAPI.
Nel campo Specifica OpenAPI incollare l'URL JSON di Swagger salvato in precedenza nell'esercizio.
Nota
Si noterà che, uscendo dalla casella, alcuni degli altri campi verranno popolati automaticamente perché è stata usata OpenAPI, che specifica la maggior parte dei dettagli di connessione necessari.
Lasciare i valori predefiniti per tutte le altre impostazioni e quindi selezionare Crea.
Testare l'API
Di seguito sono riportati i dati restituiti dall'API per impostazione predefinita:
Nel menu del portale di Azure o nella home page selezionare Tutte le risorse e quindi selezionare l'istanza di Gestione API.
Nel riquadro del menu a sinistra, in API selezionare API e nel riquadro centrale selezionare Census Data (Dati censimento).
Nella barra dei menu in alto selezionare la scheda Test e quindi selezionare l'operazione GetLatestCensus.
Selezionare Invia.
Si noti che x-powered-by viene visualizzato nella risposta e indica che il framework è ASP.NET.
Rimuovere le intestazioni
A questo punto si aggiungeranno criteri per rimuovere l'intestazione x-powered-by dalle risposte inviate dall'API:
Selezionare di nuovo Census Data (Dati censimento) e nella barra dei menu in alto selezionare la scheda Progettazione.
Selezionare Tutte le operazioni e quindi nella sezione Elaborazione in uscita selezionare l'icona </>. Verrà visualizzato l'editor XML dei criteri.
Sostituire il tag
<outbound>
predefinito con il codice seguente:<outbound> <set-header name="x-powered-by" exists-action="delete" /> <base /> </outbound>
Seleziona Salva.
Testare la rimozione delle intestazioni
A questo punto dovrebbe essere possibile eseguire un test per dimostrare che le intestazioni sono state rimosse:
Selezionare di nuovo Census Data (Dati censimento) e nella barra dei menu in alto selezionare la scheda Test.
Selezionare l'operazione GetLatestCensus e quindi selezionare Invia.
L'intestazione x-powered-by non deve trovarsi nella risposta HTTP.