Esercitazione: trasformare e proteggere l'API
SI APPLICA A: Tutti i livelli di Gestione API
In questa esercitazione si apprende come configurare i criteri comuni per trasformare l'API. È possibile trasformare l'API in modo che non riveli informazioni di back-end private. La trasformazione di un'API consente di nascondere le informazioni sullo stack di tecnologie in esecuzione nel back-end o nascondere gli URL originali visualizzati nel corpo della risposta HTTP dell'API.
Questa esercitazione illustra anche come proteggere l'API back-end configurando un criterio di limite di velocità, in modo che l'API non venga usata eccessivamente dagli sviluppatori. Per altre opzioni di criteri, vedere Criteri di API Management.
Nota
Per impostazione predefinita, API Management configura un criterio forward-request
globale. Il criterio forward-request
è necessario affinché il gateway completi una richiesta a un servizio back-end.
In questa esercitazione apprenderai a:
- Trasformare un'API per rimuovere le intestazioni di risposta
- Sostituire gli URL originali nel corpo della risposta dell'API con URL del gateway di API Management
- Proteggere un'API aggiungendo un criterio per il limite di frequenza (limitazione delle richieste)
- Testare le trasformazioni
Prerequisiti
- Acquisire familiarità con la terminologia di Gestione API di Azure.
- Comprendere il concetto di criteri in Gestione API di Azure.
- Completare la guida introduttiva seguente: Creare un'istanza di Gestione API di Azure.
- Completare anche l'esercitazione seguente: Importare e pubblicare la prima API.
Passare all'istanza di Gestione API
Nel portale di Azure cercare e selezionare Servizi Gestione API.
Nella pagina Servizi Gestione API selezionare l'istanza di Gestione API.
Trasformare un'API per rimuovere le intestazioni di risposta
Questa sezione illustra come nascondere le intestazioni HTTP che non devono essere visualizzate dagli utenti. Ad esempio, eliminare le intestazioni seguenti nella risposta HTTP:
- X-Powered-By
- X-AspNet-Version
Testare la risposta originale
Per visualizzare la risposta originale:
- Nell'istanza del servizio Gestione API, selezionare API.
- Fare clic su Demo Conference API nell'elenco di API.
- Selezionare la scheda Test nella parte superiore della schermata.
- Selezionare l'operazione GetSpeakers seguito da Invia.
La risposta API originale avrà un aspetto simile al seguente:
Come si può notare, la risposta include le intestazioni X-AspNet-Version e X-Powered by.
Impostare i criteri di trasformazione
In questo esempio viene illustrato come usare l'editor dei criteri basato su modulo, che consente di configurare molti criteri senza dover modificare direttamente le istruzioni XML dei criteri.
Selezionare Demo Conference API>Progettazione>Tutte le operazioni.
Nella sezione Elaborazione in uscita selezionare + Aggiungi criterio.
Nella finestra Aggiungi criteri in uscita selezionare Imposta intestazioni.
Per configurare i criteri di impostazione delle intestazioni, eseguire le operazioni seguenti:
- In Nomeimmettere X-Powered-By.
- Lasciare Valore vuoto. Se viene visualizzato un valore nel menu a discesa, eliminarlo.
- In Azione selezionare Consenti.
- Seleziona Salva.
Ripetere i due passaggi precedenti per aggiungere un criterio di impostazione delle intestazioni che elimina l'intestazione X-AspNet-Version:
Dopo la configurazione, due elementi del criterio set-header sono visualizzati nella sezione Elaborazione in uscita.
Sostituire gli URL originali nel corpo della risposta dell'API con URL del gateway di API Management
Questa sezione illustra come sostituire gli URL originali visualizzati nel corpo della risposta HTTP dell'API con gli URL del gateway di API Management. È possibile nascondere gli URL back-end originali agli utenti.
Testare la risposta originale
Per visualizzare la risposta originale:
Selezionare Demo Conference API>Test.
Selezionare l'operazione GetSpeakers seguito da Invia.
Come si può notare, la risposta include gli URL originali del back-end:
Impostare i criteri di trasformazione
In questo esempio si usa l'editor di codice dei criteri per aggiungere il frammento XML dei criteri direttamente alla definizione dei criteri.
Selezionare Demo Conference API>Progettazione>Tutte le operazioni.
Nella sezione Elaborazione in uscita selezionare l'icona dell'editor di codice (</>).
Posizionare il cursore all'interno dell'elemento
<outbound>
su una riga vuota. Selezionare quindi Mostra frammenti di codice nell'angolo in alto a destra della schermata.Nella finestra a destra, in Transformation policies (Criteri di trasformazione) selezionare Mask URLs in content (Maschera URL nel contenuto).
L'elemento
<redirect-content-urls />
viene aggiunto al cursore.Seleziona Salva.
Proteggere un'API aggiungendo criteri relativi ai limiti di frequenza (limitazione delle richieste)
Questa sezione illustra come aggiungere protezione all'API back-end configurando limiti di velocità, in modo che l'API non venga usata eccessivamente dagli sviluppatori. In questo esempio il limite è impostato su tre chiamate ogni 15 secondi per ogni ID sottoscrizione. Dopo 15 secondi, uno sviluppatore può ripetere la chiamata a un API.
Selezionare Demo Conference API>Progettazione>Tutte le operazioni.
Nella sezione Elaborazione in ingresso selezionare l'icona dell'editor di codice (</>).
Posizionare il cursore all'interno dell'elemento
<inbound>
su una riga vuota. Selezionare quindi Mostra frammenti di codice nell'angolo in alto a destra della schermata.Nella finestra a destra, in Criteri di restrizione dell'accesso selezionare + Limita frequenza delle chiamate per chiave.
L'elemento
<rate-limit-by-key />
viene aggiunto al cursore.Sostituire il codice
<rate-limit-by-key />
nell'elemento<inbound>
con il codice seguente. Quindi selezionare Salva.<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
Testare le trasformazioni
A questo punto, se si esamina il codice nell'editor di codice, i criteri sono simili al seguente codice:
<policies>
<inbound>
<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
<base />
</inbound>
<backend>
<base />
</backend>
<outbound>
<set-header name="X-Powered-By" exists-action="delete" />
<set-header name="X-AspNet-Version" exists-action="delete" />
<redirect-content-urls />
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
La parte rimanente della sezione testa le trasformazioni dei criteri impostate in questo articolo.
Testare le intestazioni della risposta eliminate
Selezionare Demo Conference API>Test.
Selezionare l'operazione GetSpeakers e quindi Invia.
Come si può notare, intestazioni X-AspNet-Version e X-Powered by sono state rimosse:
Testare l'URL sostituito
Selezionare Demo Conference API>Test.
Selezionare l'operazione GetSpeakers e quindi Invia.
Come si può notare, gli URL sono sostituiti.
Testare il limite di frequenza (limitazione delle richieste)
Selezionare Demo Conference API>Test.
Selezionare l'operazione GetSpeakers. Selezionare Invia quattro volte in una riga.
Dopo avere inviato la richiesta 4 volte, verrà visualizzata la risposta 429 Troppe richieste.
Attendere 15 secondi o più e quindi selezionare di nuovo Invia. Questa volta verrà visualizzata una risposta 200 OK.
Riepilogo
Questa esercitazione ha descritto come:
- Trasformare un'API per rimuovere le intestazioni di risposta
- Sostituire gli URL originali nel corpo della risposta dell'API con URL del gateway di API Management
- Proteggere un'API aggiungendo criteri relativi ai limiti di frequenza (limitazione delle richieste)
- Testare le trasformazioni
Passaggi successivi
Passare all'esercitazione successiva: