Oefening: abonnementen maken in Azure API Management

Voltooid

U kunt de gebruikersinterface van Azure API Management in Azure Portal gebruiken om abonnementen te maken en abonnementssleutels voor gebruik in client-apps te verkrijgen.

Stel dat uw weerbedrijf heeft besloten de meteorologische gegevens beschikbaar te stellen op clients waarvoor een betaald abonnement is afgesloten. De essentiële vereiste is om alleen toegang te bieden tot clients waaraan een sleutel is toegewezen. Als hoofdontwikkelaar moet u een API-gateway maken. Via deze gateway gaat u een RESTful weer-API voor het weer publiceren waarin een OpenAPI-eindpunt beschikbaar wordt gemaakt. Vervolgens beveiligt u het eindpunt en wijst u een clientsleutel toe.

In deze les leert u het volgende:

  • Een RESTful weer-API publiceren
  • Een API Management-gateway implementeren
  • De weer-API via het eindpunt van de gateway beschikbaar maken
  • De toegang beperken op basis van een abonnementssleutel

Belangrijk

U hebt uw eigen Azure-abonnement nodig om deze oefening te kunnen uitvoeren. Dit kan kosten met zich meebrengen. Als u nog geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

De weer-API implementeren

U hebt een .NET Core-app ontwikkeld die weerinformatie retourneert. De app bevat Swashbuckle om OpenAPI-documentatie te genereren.

We beginnen met het uitvoeren van een script om de API te hosten in Azure, om tijd te besparen. Met het script voert u de volgende stappen uit:

  • Een Azure App Service-plan maken in de gratis laag
  • Een web-API maken in Azure App Service, die is geconfigureerd voor Git-implementatie vanuit een lokale opslagplaats
  • Implementatiereferenties op accountniveau instellen voor onze app
  • Git lokaal configureren
  • Onze web-API implementeren in ons App Service-exemplaar
  1. Meld u aan bij het Azure-portaal.

  2. Selecteer op de taakbalk van Azure het Cloud Shell-pictogram om Azure Cloud Shell te openen.

    Schermopname van het Cloud Shell-pictogram op de taakbalk.

  3. Voer de volgende git-kloonopdracht uit in Azure Cloud Shell om de opslagplaats te klonen die de bron voor onze app bevat en ons installatiescript vanuit GitHub.

    git clone https://github.com/MicrosoftDocs/mslearn-control-authentication-with-apim.git
    
  4. Ga lokaal naar de mapmap van de opslagplaats door de volgende cd-opdracht uit te voeren.

    cd mslearn-control-authentication-with-apim
    
  5. Zoals de naam al aangeeft, setup.sh is het script dat u gaat uitvoeren om onze API te maken. Er wordt een openbare web-app gegenereerd die een OpenAPI-interface beschikbaar maakt.

    bash setup.sh
    

    Het script heeft zeven onderdelen en het duurt ongeveer een minuut voordat het wordt uitgevoerd. Houd er rekening mee dat tijdens de implementatie alle afhankelijkheden die nodig zijn om onze app uit te voeren, automatisch worden geïnstalleerd in de externe App Service.

    Wanneer het script is voltooid, worden twee URL's, een Swagger-URL en een voorbeeld-URL uitgevoerd. U kunt deze URL's gebruiken om de implementatie van de app te testen.

  6. Als u wilt testen of onze app correct is geïmplementeerd, kopieert en plakt u de Swagger-URL uit De Uitvoer van Azure Cloud Shell in uw favoriete browser. De browser moet de Swagger-gebruikersinterface voor onze app weergeven en de volgende RESTful-eindpunten declareren:

    • api/weather/{latitude}/{longitude}, die meteorologische gegevens retourneert voor de huidige dag op basis van de opgegeven breedte- en lengtegraad (dubbele waarden).
    • api/weather/{datum}/{breedtegraad}/{lengtegraad}, waarmee meteorologische gegevens worden geretourneerd voor de opgegeven datum (datumwaarde) op de opgegeven lengte- en breedtegraad (dubbele waarden).

    Swagger-weergave.

  7. Kopieer en sla ten slotte de voorbeeld-URL op uit de Uitvoer van Azure Cloud Shell. Deze locatie is de Swagger JSON-URL. U hebt deze later in deze oefening nodig.

Een API-gateway implementeren

De volgende stap in deze oefening is het maken van een API-gateway in Azure Portal. In de volgende oefening gebruikt u deze gateway om uw API te publiceren.

  1. Meld u aan bij de Azure Portal.

  2. Selecteer in het menu Azure-resource of op de startpagina onder Azure-services de optie Een resource maken. Het deelvenster Een resource maken wordt weergegeven.

  3. Selecteer Integratie in het resourcemenu en selecteer API Management in de resultaten. Het deelvenster API Management-gateway installeren wordt weergegeven.

  4. Voer op het tabblad Basisinformatie de volgende waarden in voor elke instelling.

    Instelling Weergegeven als
    Projectdetails
    Abonnement Selecteer uw abonnement.
    Resourcegroep Selecteer een nieuwe of bestaande resourcegroep. Een resourcegroep is een logische container die gerelateerde resources voor een Azure-oplossing bevat.
    Exemplaardetails
    Regio Selecteer een beschikbare regio.
    Resourcenaam Enter apim-WeatherData<random number>; het willekeurige getal is om ervoor te zorgen dat de naam wereldwijd uniek is. Noteer deze resourcenaam; dit is de naam van de API-gateway die u later in deze oefening nodig hebt.
    Werkruimtenaam Voer Weather-Company in.
    E-mailadres van de beheerder Het e-mailadres voor het ontvangen van alle systeemmeldingen.
    Prijscategorie
    Prijscategorie Selecteer Consumptionin de vervolgkeuzelijst .
  5. Selecteer Beoordelen en maken en selecteer Maken nadat de validatie is geslaagd.

    Notitie

    De verbruikslaag biedt een snelle implementatie voor testen en heeft een prijsmodel voor betalen voor gebruik. De algehele API Management-ervaring is vergelijkbaar met de andere prijscategorieën.

U kunt de voortgang van de implementatie bekijken, samen met de resources die worden gemaakt.

De API importeren

Nadat de implementatie is voltooid, importeert u de Weer-API in de API Management-gateway met behulp van de volgende procedure.

  1. Selecteer Naar resource. Het deelvenster Overzicht van de API Management-service voor uw resource wordt weergegeven.

  2. Selecteer API's in het linkermenuvenster onder API's. Het deelvenster API's voor uw API Management-service wordt weergegeven, met sjabloonselecties voor het maken/weergeven van een API.

  3. Selecteer OpenAPI onder Maken op basis van definitie. Het dialoogvenster Maken op basis van OpenAPI-specificatie wordt weergegeven.

  4. Plak in het veld OpenAPI-specificatie de Swagger JSON-URL die u eerder in de oefening hebt opgeslagen. Wanneer u op Enter drukt of een ander gebied van het dialoogvenster selecteert, worden andere velden voor u ingevuld. Deze gegevens worden geïmporteerd uit de OpenAPI-specificatie die via Swagger is gemaakt.

  5. Accepteer de standaardwaarden voor alle andere instellingen en selecteer Vervolgens Maken.

     Schermopname van het dialoogvenster met swagger.json URL gemarkeerd.

Op het tabblad Ontwerpen van de API Voor weergegevens worden alle bewerkingen weergegeven, die uit twee GET-bewerkingen bestaan.

Een abonnementssleutel voor toegang tot de weer-API toevoegen

De laatste stap is het toevoegen van een abonnementssleutel voor de API voor weergegevens.

  1. Selecteer Abonnementen in het linkermenuvenster onder API's. Het deelvenster Abonnementen voor uw API Management-service wordt weergegeven.

  2. Selecteer Een abonnement toevoegen in de bovenste menubalk. Het deelvenster Nieuw abonnement wordt weergegeven.

    Schermopname die laat zien hoe u een nieuw abonnement toevoegt.

  3. Voer de volgende waarden in voor elke instelling.

    Instelling Weergegeven als
    Naam weather-data-subscription
    Weergavenaam Weather Data Subscription
    Tracering toestaan Geen vinkje
    Bereik Selecteer API in de vervolgkeuzelijst.
    API Selecteer Weersgegevens in de vervolgkeuzelijst.
  4. Selecteer Maken. Het deelvenster Abonnementen bevat twee abonnementen, een ingebouwd abonnement voor alle toegang en uw weersgegevensabonnement.

  5. Selecteer aan het einde van de rij Weersgegevensabonnement het beletselteken en selecteer in het contextmenu sleutels weergeven/verbergen. De waarden van de primaire en secundaire sleutel worden weergegeven.

  6. Kopieer de primaire sleutel van het weersgegevensabonnement naar het klembord en sla deze op in iets zoals Kladblok. U hebt deze sleutel nodig in de volgende stap.

De abonnementssleutel testen

De API wordt beveiligd met een sleutel. Nu testen we de API zonder en met de sleutel om beveiligde toegang te demonstreren.

  1. Een aanvraag indienen zonder een abonnementssleutel door te geven. Voer in Azure Cloud Shell de volgende cURL-opdracht uit. Vervang de tijdelijke aanduiding [Name Of Gateway] door de resourcenaam voor de API-gateway (apim-WeatherDataNNNN) die u in de vorige taak hebt gemaakt.

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

    Deze opdracht heeft geen abonnementssleutel en moet een fout 401 toegang geweigerd retourneren, vergelijkbaar met de volgende.

    { "statusCode": 401, "message": "Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." }
    
  2. Voer nu de volgende opdracht uit. Vervang de tijdelijke aanduiding Voor gateway door de resourcenaam voor de API-gateway (apim-WeatherDataNNNNN). Vervang ook de tijdelijke aanduiding voor de primaire sleutel door de primaire sleutel die u hebt gekopieerd uit de stap weergeven/verbergen.

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

    Als u de aanhalingstekens voor sluiten hebt opgenomen, moet deze opdracht resulteren in een geslaagd antwoord dat lijkt op de volgende code.

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