Esercizio: Creare sottoscrizioni in Gestione API di Azure
È possibile usare l'interfaccia utente di Gestione API di Azure nel portale di Azure per creare sottoscrizioni e ottenere le chiavi di sottoscrizione da usare nelle app client.
Si supponga che la società del servizio meteo abbia deciso di rendere i dati sul meteo disponibili ai client che sottoscrivono un abbonamento a pagamento. Il requisito fondamentale consiste nel consentire l'accesso solo ai client per cui è stata allocata una chiave. Lo sviluppatore responsabile deve creare un gateway API. Il gateway verrà usato per pubblicare un'API meteo RESTful che espone un endpoint OpenAPI. Verrà quindi protetto l'endpoint e verrà allocata una chiave client.
In questa unità si apprenderà come:
- Pubblicare un'API meteo RESTful
- Distribuire un gateway di Gestione API
- Esporre l'API meteo tramite l'endpoint del gateway
- Limitare l'accesso in base a una chiave di sottoscrizione
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 meteo
È stata sviluppata un'app .NET Core che restituisce le informazioni sul meteo. L'app include Swashbuckle per generare la documentazione di OpenAPI.
Per risparmiare tempo, si inizierà eseguendo uno script per ospitare l'API in Azure. Lo script esegue le operazioni seguenti:
- Creazione di un piano di servizio app di Azure nel livello gratuito
- Creazione di un'API Web nel servizio app di Azure configurata per la distribuzione GIT da un repository locale
- Impostazione delle credenziali di distribuzione a livello di account per l'app
- Configurazione di GIT in locale
- Distribuzione dell'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.
Eseguire il comando git clone seguente in Azure Cloud Shell per clonare il repository contenente l'origine per l'app e lo script di installazione di GitHub.
git clone https://github.com/MicrosoftDocs/mslearn-control-authentication-with-apim.git
Passare alla cartella del repository in locale eseguendo il comando cd seguente.
cd mslearn-control-authentication-with-apim
Come suggerisce il nome,
setup.sh
è lo script che verrà eseguito per creare l'API. Verrà generata un'app Web pubblica che espone un'interfaccia OpenAPI.bash setup.sh
Lo script è costituito da sette parti e l'esecuzione richiede circa un minuto. Si osservi che durante la distribuzione tutte le dipendenze necessarie per l'esecuzione dell'app vengono installate automaticamente nel servizio app remoto.
Al termine dello script, vengono restituiti due URL, un URL Swagger e un URL di esempio. È possibile usare questi URL per testare la distribuzione dell'app.
Per verificare che l'app sia stata distribuita correttamente, copiare e incollare l'URL Swagger dall'output di Cloud Shell nel browser preferito. Il browser dovrebbe visualizzare l'interfaccia utente di Swagger per l'app e dichiarare gli endpoint RESTful seguenti:
- api/weather/{latitude}/{longitude} che restituisce i dati sul meteo per il giorno corrente alla latitudine e alla longitudine specificate (valori Double).
- api/weather/{date}/{latitude}/{longitude} che restituisce i dati sul meteo per il giorno (valore Date) alla latitudine e alla longitudine specificate (valori Double).
Infine, copiare e salvare l'URL di esempio dall'output di Azure Cloud Shell. Questa posizione corrisponde all'URL JSON di Swagger. Questo elemento sarà necessario più tardi nell'esercizio.
Distribuire un gateway API
Il passaggio successivo di questo esercizio consiste nel creare un gateway API nel portale di Azure. Nel prossimo esercizio si userà questo gateway per pubblicare l'API.
Accedere al portale di Azure.
Nel menu della risorsa di Azure o nella pagina Home, in Servizi di Azure selezionare Crea una risorsa. Viene visualizzato il riquadro Crea una risorsa.
Nel menu della risorsa selezionare Integrazione e quindi, nei risultati, selezionare Gestione API. Viene visualizzato il riquadro Installa gateway di 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 Paese Selezionare un'area disponibile. Nome risorsa Immettere apim-WeatherData<random number>
; lo scopo del numero casuale è assicurare che il nome sia univoco a livello globale. Prendere nota del nome della risorsa. Sarà il nome del gateway API necessario più avanti in questo esercizio.Nome dell'area di lavoro Immetti Weather-Company
.Indirizzo di posta elettronica dell'amministratore Indirizzo di posta elettronica per ricevere tutte le notifiche di sistema. Piano tariffario Piano tariffario Selezionare Consumption
dall'elenco a discesa.Selezionare Verifica e crea e, dopo che la convalida ha esito positivo, selezionare Crea.
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.
È possibile visualizzare lo stato di avanzamento della distribuzione, insieme alle risorse create.
Importare l'API
Al termine della distribuzione, importare l'API Meteo nel gateway di Gestione API usando la procedura seguente.
Selezionare Vai alla risorsa. Viene visualizzato il riquadro Panoramica del servizio Gestione API per la risorsa.
Nel riquadro dei menu a sinistra, in API selezionare API. Viene visualizzato il riquadro API per il servizio Gestione API, con le selezioni dei modelli per la creazione o la visualizzazione di un'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 Swagger salvato in precedenza nell'esercizio. Quando si preme INVIO o si seleziona un'area diversa della finestra di dialogo, verranno popolati automaticamente altri campi. Questi dati vengono importati dalla specifica OpenAPI creata da Swagger.
Accettare i valori predefiniti per tutte le altre impostazioni e quindi selezionare Crea.
Nella scheda Progettazione dell'API Dati meteo vengono visualizzate tutte le operazioni, costituite da due operazioni GET.
Aggiungere una chiave di sottoscrizione per accedere all'API meteo
Il passaggio finale consiste nell'aggiunta di una chiave di sottoscrizione per l'API Dati meteo.
Nel riquadro dei menu a sinistra, in API, selezionare Sottoscrizioni. Viene visualizzato il riquadro Sottoscrizioni per il servizio Gestione API.
Dalla barra dei menu in alto selezionare Aggiungi sottoscrizione. Viene visualizzato il riquadro Nuova sottoscrizione.
Immettere i seguenti valori per ogni impostazione.
Impostazione valore Nome weather-data-subscription
Nome visualizzato Weather Data Subscription
Consenti traccia Nessun segno di spunta Ambito Nell'elenco a discesa selezionare API. API Nell'elenco a discesa selezionare Weather Data (Dati meteo). Seleziona Crea. Il riquadro Sottoscrizioni mostra due sottoscrizioni, una Sottoscrizione predefinita con accesso completo e la Sottoscrizione dati meteo.
Alla fine della riga Sottoscrizione dati meteo selezionare i puntini di sospensione e nel menu di scelta rapida selezionare Mostra/Nascondi chiavi. Verranno mostrati i valori della chiave primaria e secondaria.
Copiare la chiave primaria da Sottoscrizione dati meteo negli Appunti e salvarla in Blocco note o simili. La chiave verrà usata nel passaggio successivo.
Testare la chiave di sottoscrizione
L'API è protetta con una chiave. A questo punto, si testerà l'API senza e con la chiave per illustrare l'accesso sicuro.
Effettuare una richiesta senza passare una chiave di sottoscrizione. In Azure Cloud Shell eseguire il comando cURL seguente. Sostituire il segnaposto [Nome del gateway] con il nome di risorsa per il gateway API (apim-WeatherDataNNNN) creato nell'attività precedente.
curl -X GET https://[Name Of Gateway].azure-api.net/api/Weather/53/-1
Questo comando non contiene una chiave di sottoscrizione e restituirà un errore 401 Accesso negato simile al seguente.
{ "statusCode": 401, "message": "Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." }
Eseguire ora il comando seguente. Sostituire il segnaposto Nome del gateway con il nome di risorsa per il gateway API (apim-WeatherDataNNNN). Sostituire anche il segnaposto Chiave primaria con la chiave primaria copiata dal passaggio mostra/nascondi.
curl -X GET https://[Name Of Gateway].azure-api.net/api/Weather/53/-1 \ -H 'Ocp-Apim-Subscription-Key: [Primary Key]'
Se è sono state incluse le virgolette di chiusura,qQuesto comando restituisce una risposta di operazione riuscita simile al codice seguente.
{"mainOutlook":{"temperature":32,"humidity":34},"wind":{"speed":11,"direction":239.0},"date":"2019-05-16T00:00:00+00:00","latitude":53.0,"longitude":-1.0}