Cvičení – vytváření předplatných ve službě Azure API Management

Dokončeno

Uživatelské rozhraní služby Azure API Management na webu Azure Portal můžete použít k vytvoření předplatných a získání klíčů předplatného pro použití v klientských aplikacích.

Předpokládejme, že se vaše meteorologická data rozhodla zpřístupnit klientům, kteří si tuto službu předplatí a platí za ni. Kritickým požadavkem je povolit přístup pouze klientům, kteří mají přidělený klíč. Jako vedoucí vývojář musíte vytvořit bránu rozhraní API. Bránu použijete k publikování rozhraní RESTful Weather API, které zveřejňuje koncový bod OpenAPI. Pak koncový bod zabezpečíte a přidělíte klíč klienta.

V této lekci:

  • Publikování rozhraní RESTful Weather API
  • Nasazení brány služby API Management
  • Zveřejnění rozhraní Weather API prostřednictvím koncového bodu brány
  • Omezte přístup na základě klíče předplatného.

Důležité

K dokončení tohoto cvičení potřebujete vlastní předplatné Azure a můžou se vám účtovat poplatky. Pokud ještě nemáte předplatné Azure, vytvořte si před zahájením bezplatný účet .

Nasadit webové rozhraní Weather API

Vyvinuli jste aplikaci .NET Core, která vrací informace o počasí. Tato aplikace obsahuje Swashbuckle k vygenerování dokumentace pro OpenAPI.

Abychom ušetřili čas, začněme tím, že spustíme skript pro hostování našeho rozhraní API v Azure. Skript provede následující kroky:

  • Vytvoření plánu služby Azure App Service na úrovni Free
  • Vytvoření webového rozhraní API ve službě Azure App Service, nakonfigurovaného pro nasazení přes Git z místního úložiště
  • Nastavení přihlašovacích údajů pro nasazení na úrovni účtu pro naši aplikaci
  • Místní nakonfigurování Gitu
  • Nasazení webového rozhraní API na naši instanci služby App Service
  1. Přihlaste se k webu Azure Portal.

  2. Na hlavním panelu Azure výběrem ikony Cloud Shell otevřete Azure Cloud Shell.

    Snímek obrazovky s ikonou Cloud Shellu na hlavním panelu

  3. Spuštěním následujícího příkazu git clone v Azure Cloud Shellu naklonujte úložiště, které obsahuje zdroj pro naši aplikaci, a skript pro nastavení z GitHubu.

    git clone https://github.com/MicrosoftDocs/mslearn-control-authentication-with-apim.git
    
  4. Spuštěním následujícího příkazu cd přejděte do adresáře složek úložiště místně.

    cd mslearn-control-authentication-with-apim
    
  5. Jak název napovídá, je skript, setup.sh který spustíte pro vytvoření našeho rozhraní API. Vygeneruje veřejnou webovou aplikaci, která zveřejňuje rozhraní OpenAPI.

    bash setup.sh
    

    Skript má sedm částí a spuštění trvá přibližně minutu. Všimněte si, že během nasazování se všechny závislosti potřebné ke spuštění naší aplikace automaticky nainstalují do vzdálené služby App Service.

    Po dokončení skriptu vypíše dvě adresy URL: adresu URL Swaggeru a ukázkovou adresu URL. Tyto adresy URL můžete použít k otestování nasazení aplikace.

  6. Pokud chcete otestovat, jestli se naše aplikace správně nasadila, zkopírujte a vložte adresu URL Swaggeru z výstupu Azure Cloud Shellu do svého oblíbeného prohlížeče. Prohlížeč by měl zobrazit uživatelské rozhraní Swaggeru pro naši aplikaci a deklarovat následující koncové body RESTful:

    • api/weather/{latitude}/{zeměpisná délka}, která vrací meteorologická data pro aktuální den zadanou zeměpisnou šířku a délku (dvojité hodnoty).
    • api/weather/{date}/{latitude}/{zeměpisná délka}, která vrací meteorologická data pro zadaný den (hodnotu data) v zadané zeměpisné šířce a délce (dvojité hodnoty).

    Snímek obrazovky aplikace se zobrazením Swaggeru

  7. Nakonec zkopírujte a uložte ukázkovou adresu URL z výstupu Azure Cloud Shellu. Toto umístění je adresa URL JSON Swaggeru. Budete ho potřebovat později v tomto cvičení.

Nasazení brány rozhraní API

Dalším krokem v tomto cvičení je vytvoření brány rozhraní API na webu Azure Portal. V dalším cvičení tuto bránu použijete k publikování rozhraní API.

  1. Přihlaste se k webu Azure Portal.

  2. V nabídce prostředků Azure nebo na domovské stránce v části Služby Azure vyberte Vytvořit prostředek. Zobrazí se podokno Vytvořit prostředek .

  3. V nabídce prostředků vyhledejte a vyberte API Management. Vyberte Vytvořit. Zobrazí se podokno Instalace brány služby API Management .

  4. Na kartě Základy zadejte pro každé nastavení následující hodnoty.

    Nastavení Hodnota
    Podrobnosti projektu
    Předplatné Vyberte své předplatné.
    Skupina prostředků Vyberte novou nebo existující skupinu prostředků. Skupina prostředků je logický kontejner, který obsahuje související prostředky pro řešení Azure.
    Podrobnosti o instanci
    Oblast Vyberte dostupnou oblast.
    Název prostředku Zadejte apim-WeatherDataXXXX; nahraďte XXXX náhodným číslem, abyste zajistili, že název je globálně jedinečný. Poznamenejte si tento název prostředku; bude to název brány rozhraní API, který budete potřebovat později v tomto cvičení.
    Název organizace Zadejte Weather-Company.
    E-mail správce E-mailová adresa pro příjem všech systémových oznámení.
    Cenová úroveň
    Cenová úroveň V rozevíracím seznamu vyberte Consumption ( Spotřeba).
  5. Vyberte Zkontrolovat a vytvořit a po ověření vyberte Vytvořit.

    Poznámka:

    Úroveň Consumption poskytuje rychlé nasazení pro testování a má cenový model s platbou za použití. Celkové prostředí pro správu rozhraní API je podobné ostatním cenovými úrovněmi.

Průběh nasazení můžete zobrazit společně s prostředky, které se vytvářejí.

Import rozhraní API

Po dokončení nasazení naimportujte rozhraní WEATHER API do brány služby API Management pomocí následujícího postupu.

  1. Vyberte Přejít k prostředku. Zobrazí se podokno Přehled služby API Management pro váš prostředek.

  2. V levém podokně nabídek v části Rozhraní API vyberte Rozhraní API. Zobrazí se podokno rozhraní API pro vaši službu API Management s výběrem šablon pro vytvoření nebo zobrazení rozhraní API.

  3. V části Vytvořit z definice vyberte OpenAPI. Zobrazí se dialogové okno Vytvořit ze specifikace OpenAPI .

  4. Do pole specifikace OpenAPI vložte adresu URL Swagger JSON, kterou jste si uložili dříve ve cvičení. Když stisknete Klávesu Enter nebo vyberete jinou oblast dialogového okna, naplní se pro vás další pole. Tato data se importují ze specifikace OpenAPI, kterou Swagger vytvořil.

  5. Přijměte výchozí hodnoty pro všechna ostatní nastavení a pak vyberte Vytvořit.

     Snímek obrazovky s dialogovým oknem se zvýrazněnou swagger.json adresou URL

Karta Návrh rozhraní API pro data počasí zobrazuje všechny operace, které se skládají ze dvou operací GET.

Přidání klíče předplatného pro přístup k rozhraní Weather API

Posledním krokem je přidání klíče předplatného pro rozhraní API pro data počasí.

  1. V levém podokně nabídek v části Rozhraní API vyberte Předplatná. Zobrazí se podokno Předplatná pro vaši službu API Management.

  2. V horním řádku nabídek vyberte Přidat předplatné. Zobrazí se podokno Nové předplatné .

    Snímek obrazovky znázorňující, jak přidat nové předplatné

  3. Pro každé nastavení zadejte následující hodnoty.

    Nastavení Hodnota
    Název weather-data-subscription
    Zobrazované jméno Weather Data Subscription
    Povolit trasování Bez značky zaškrtnutí
    Scope V rozevíracím seznamu vyberte API.
    API V rozevíracím seznamu vyberte Data o počasí.
  4. Vyberte Vytvořit. Podokno Předplatná obsahuje dvě předplatná, předdefinovaná předplatná pro všechny přístupy a vaše předplatné data o počasí.

  5. Na konci řádku Odběr dat o počasí vyberte trojtečku a v kontextové nabídce vyberte Zobrazit nebo skrýt klíče. Zobrazí se hodnoty primárního a sekundárního klíče.

  6. Zkopírujte primární klíč z předplatného údajů o počasí do schránky a uložte ho do něčeho jako Poznámkový blok. Tento klíč budete potřebovat v dalším kroku.

Otestování klíče předplatného

Rozhraní API je zabezpečené pomocí klíče. Teď otestujeme rozhraní API bez klíče a pomocí klíče předvedeme zabezpečený přístup.

  1. Vytvořte požadavek bez předání klíče předplatného. V Azure Cloud Shellu spusťte následující příkaz cURL. Zástupný symbol [Name Of Gateway] nahraďte názvem prostředku pro bránu rozhraní API (apim-WeatherDataNNNN), kterou jste vytvořili v předchozí úloze.

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

    Tento příkaz nemá žádný klíč předplatného a měl by vrátit chybu 401 Přístup odepřen, podobně jako v následujícím příkladu.

    { "statusCode": 401, "message": "Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." }
    
  2. Teď spusťte následující příkaz. Zástupný text Name Of Gateway nahraďte názvem prostředku API brány (apim-WeatherDataNNNN). Zástupný symbol primárního klíče nahraďte také primárním klíčem, který jste zkopírovali z kroku pro zobrazení nebo skrytí.

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

    Pokud jste zahrnuli uzavírací uvozovku, měl by tento příkaz vést k úspěšné odpovědi podobné následujícímu kódu.

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