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.
Il governo decide di condividere i dati del censimento con le sue agenzie tramite LE 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 completare questo esercizio è necessaria una sottoscrizione di Azure propria e potrebbero essere applicati costi. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Distribuire l'API Web Census
È stata sviluppata un'app .NET Core che restituisce informazioni sensibili 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.
Accedere 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 cloneseguente in Cloud Shell:git clone https://github.com/MicrosoftDocs/mslearn-protect-apis-on-api-management.gitPer passare alla cartella del repository in locale, eseguire il comando seguente:
cd mslearn-protect-apis-on-api-managementCome 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.shL'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 selezionare Crea. Viene visualizzato un riquadro denominato Crea servizio Gestione API .
Nella scheda Informazioni di base immettere i valori indicati di seguito per ogni impostazione.
Impostazione Valore Dettagli del progetto Abbonamento 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 Area Selezionare un'area disponibile. Nome risorsa Immettere apim-CensusData<random number>. Sostituire<random number>con la propria serie di numeri in modo che il nome sia globalmente univoco.Nome organizzazione Immettere 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 di 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. La distribuzione può richiedere alcuni minuti. Al termine della distribuzione, l'istanza di Gestione API viene elencata nelle 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. La specifica OpenAPI inserisce la maggior parte dei dettagli di connessione necessari.
Lasciare i valori predefiniti per tutte le altre impostazioni e quindi selezionare Crea.
Testare l'API
Vediamo quali dati vengono 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>Selezionare 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.