Övning – Skapa prenumerationer i Azure API Management

Slutförd

Du kan använda Azure API Management-användargränssnittet i Azure-portalen för att skapa prenumerationer och hämta prenumerationsnycklar som kan användas i klientappar.

Anta att ditt väderföretag har beslutat sig för att göra sina väderdata tillgängliga för klienter som prenumererar och betalar för den här tjänsten. Det viktigaste kravet är att endast tillåta åtkomst till klienter som tilldelats en nyckel. Som ansvarig utvecklare måste du skapa en API-gateway. Du använder gatewayen för att publicera ett RESTful-väder-API som exponerar en OpenAPI-slutpunkt. Sedan skyddar du slutpunkten och allokerar en klientnyckel.

I den här lektionen kommer du att:

  • Publicerar en RESTful-väder-API
  • Distribuerar en API Management-gateway
  • Exponerar väder-API:et via gateway-slutpunkten
  • Begränsar åtkomsten baserat på en prenumerationsnyckel

Viktigt!

Du behöver en egen Azure-prenumeration för att utföra den här övningen, och avgifter kan tillkomma. Om du inte redan har en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

Distribuerar webb-API:et för väder

Du har utvecklat en .NET Core-app som returnerar väderinformation. Appen innehåller Swashbuckle för att skapa OpenAPI-dokumentation.

I syfte att spara tid börjar vi med att köra ett skript för hantering av API:et i Azure. Skriptet utför följande steg:

  • Skapar en Azure App Service-plan på den kostnadsfria nivån
  • Skapar ett webb-API i en Azure App Service som konfigurerats för Git-distribution från en lokal lagringsplats
  • Anger autentiseringsuppgifter på kontonivån för distribution av appen
  • Konfigurera Git lokalt
  • Distribuera vårt webb-API till vår App Service-instans
  1. Logga in på Azure-portalen.

  2. I Aktivitetsfältet i Azure väljer du Cloud Shell-ikonen för att öppna Azure Cloud Shell.

    Screenshot of Cloud Shell icon in taskbar.

  3. Kör följande git-kloningskommando i Azure Cloud Shell för att klona lagringsplatsen som innehåller källan för vår app och vårt installationsskript från GitHub.

    git clone https://github.com/MicrosoftDocs/mslearn-control-authentication-with-apim.git
    
  4. Gå till lagringsplatsens mappkatalog lokalt genom att köra följande cd-kommando.

    cd mslearn-control-authentication-with-apim
    
  5. Som namnet antyder setup.sh är skriptet du kör för att skapa vårt API. Den genererar en offentlig webbapp som exponerar ett OpenAPI-gränssnitt.

    bash setup.sh
    

    Skriptet har sju delar och det tar ungefär en minut att köra. Observera att under distributionen installeras alla beroenden som krävs för att vår app ska köras automatiskt på den fjärranslutna App Service.

    När skriptet är klart matar det ut två URL:er, en Swagger-URL och en Exempel-URL. Du kan använda dessa URL:er för att testa appdistributionen.

  6. Om du vill testa att vår app har distribuerats korrekt kopierar och klistrar du in Swagger-URL:en från Azure Cloud Shell-utdata i din favoritwebbläsare. Webbläsaren bör visa Swagger-användargränssnittet för vår app och deklarera följande RESTful-slutpunkter:

    • api/weather/{latitude}/{longitude}, som returnerar meteorologiska data för den aktuella dagen med tanke på den angivna latitud och longitud (dubbla värden).
    • api/weather/{date}/{latitude}/{longitude}, som returnerar meteorologiska data för den angivna dagen (datumvärde) vid den angivna latituden och longituden (dubbla värden).

    Swagger view.

  7. Kopiera och spara slutligen exempel-URL:en från Azure Cloud Shell-utdata. Den här platsen är Swagger JSON-URL:en. Du behöver det senare i den här övningen.

Distribuera en API-gateway

Nästa steg i den här övningen är att skapa en API-gateway i Azure-portalen. I nästa övning använder du den här gatewayen för att publicera ditt API.

  1. Logga in på Azure-portalen.

  2. Välj Skapa en resurs under Azure-tjänster Azure-resursmenyn eller på sidan Start. Fönstret Skapa en resurs visas.

  3. I resursmenyn väljer du Integrering och i resultatet väljer du API Management. Fönstret Installera API Management-gateway visas.

  4. På fliken Grundläggande anger du följande värden för varje inställning.

    Inställning Värde
    Projektinformation
    Prenumeration Välj din prenumeration.
    Resursgrupp Välj en ny eller befintlig resursgrupp. En resursgrupp är en logisk container som innehåller relaterade resurser för en Azure-lösning.
    Instansinformation
    Region Välj en tillgänglig region.
    Resursnamn Ange apim-WeatherData<random number>. Det slumpmässiga talet är att se till att namnet är globalt unikt. Anteckna det här resursnamnet. det är api-gatewaynamnet som du behöver senare i den här övningen.
    Namn på arbetsyta Ange Weather-Company.
    E-postadress för administratör E-postadressen för att ta emot alla systemaviseringar.
    Prisnivå
    Prisnivå I listrutan väljer du Consumption.
  5. Välj Granska + skapa och när valideringen har godkänts väljer du Skapa.

    Kommentar

    Förbrukningsnivån ger snabb distribution för testning och har en prismodell för att betala för användning. Den övergripande API-hanteringsupplevelsen liknar de andra prisnivåerna.

Du kan visa distributionens förlopp tillsammans med de resurser som skapas.

Importera API:t

När distributionen har slutförts importerar du Väder-API:et till API Management-gatewayen med hjälp av följande procedur.

  1. Välj Gå till resurs. Fönstret Översikt för API Management-tjänsten för din resurs visas.

  2. I det vänstra menyfönstret går du till API:er och väljer API:er. FÖNSTRET API:er för API Management-tjänsten visas med mallval för att skapa/visa ett API.

  3. Under Skapa från definition väljer du OpenAPI. Dialogrutan Skapa från OpenAPI-specifikation visas.

  4. I fältet OpenAPI-specifikation klistrar du in Swagger JSON-URL:en som du sparade tidigare i övningen. När du trycker på Retur eller väljer ett annat område i dialogrutan fylls andra fält i åt dig. Dessa data har importerats från OpenAPI-specifikationen som Swagger skapade.

  5. Acceptera standardinställningarna för alla andra inställningar och välj sedan Skapa.

     Screenshot of dialog box with swagger.json url highlighted.

Fliken Design i API:et väderdata visar alla åtgärder, som består av två GET-åtgärder.

Lägga till en prenumeration för att få åtkomst till väder-API

Det sista steget är att lägga till en prenumerationsnyckel för API:et väderdata.

  1. I det vänstra menyfönstret går du till API:er och väljer Prenumerationer. Fönstret Prenumerationer för API Management-tjänsten visas.

  2. På den översta menyraden väljer du Lägg till prenumeration. Fönstret Ny prenumeration visas.

    Screenshot showing how to add a new subscription.

  3. Ange följande värden för varje inställning.

    Inställning Värde
    Namn weather-data-subscription
    Visningsnamn Weather Data Subscription
    Tillåt spårning Ingen markering
    Definitionsområde I listrutan väljer du API.
    API I listrutan väljer du Väderdata.
  4. Välj Skapa. I fönstret Prenumerationer visas två prenumerationer, en inbyggd all-access-prenumeration och din Weather Data-prenumeration.

  5. I slutet av raden Väderdataprenumeration väljer du ellipsen och i snabbmenyn väljer du Visa/dölj nycklar. Värdena för primär och sekundär nyckel visas.

  6. Kopiera primärnyckeln från väderdataprenumerationen till Urklipp och spara den i något som liknar Anteckningar. Du behöver den här nyckeln i nästa steg.

Testa prenumerationsnyckeln

API:et skyddas med en nyckel. Nu ska vi testa API:et utan och med nyckeln för att demonstrera säker åtkomst.

  1. Gör en begäran utan att skicka en prenumerationsnyckel. Kör följande cURL-kommando i Azure Cloud Shell. Ersätt platshållaren [Namn på gateway] med resursnamnet för API-gatewayen (apim-WeatherDataNNNN) som du skapade i föregående uppgift.

    curl -X GET https://[Name Of Gateway].azure-api.net/api/Weather/53/-1
    

    Det här kommandot har ingen prenumerationsnyckel och bör returnera felet 401 Åtkomst nekad, ungefär som följande.

    { "statusCode": 401, "message": "Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." }
    
  2. Kör nu följande kommando. Ersätt platshållaren Namn på gateway med resursnamnet för API-gatewayen (apim-WeatherDataNNNN). Ersätt även platshållaren primärnyckel med den primära nyckel som du kopierade från steget visa/dölj.

    curl -X GET https://[Name Of Gateway].azure-api.net/api/Weather/53/-1 \
      -H 'Ocp-Apim-Subscription-Key: [Primary Key]'
    

    Om du har inkluderat den avslutande offerten bör det här kommandot resultera i ett lyckat svar som liknar följande kod.

    {"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}