Cvičení – vytváření předplatných ve službě Azure API Management
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 vaše meteorologická společnost se rozhodla zpřístupnit svá meteorologická data klientům, kteří se přihlásí k odběru této služby a budou za ni platit. Důležitým požadavkem je povolit přístup pouze klientům s přiděleným klíčem. 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:
- Publikovat rozhraní RESTful Weather API
- Nasadit bránu služby API Management
- Zveřejnit rozhraní Weather API prostřednictvím koncového bodu brány
- Omezit přístup na základě klíče předplatného
Důležité
K provedení tohoto cvičení potřebujete vlastní předplatné Azure a mohou se vám účtovat poplatky. Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet, než začnete.
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
Přihlaste se k portálu Azure.
Na hlavním panelu Azure výběrem ikony Cloud Shell otevřete Azure Cloud Shell.
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
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
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.
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í Swagger 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/{datum}/{zeměpisná šířka}/{zeměpisná délka} vracející meteorologická data pro zadaný den (hodnota data) v zadané zeměpisné šířce a délce (dvojité hodnoty).
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.
Přihlaste se k webu Azure Portal.
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 .
V nabídce prostředků vyberte Možnost Integrace a ve výsledcích vyberte API Management. Zobrazí se podokno Instalace brány služby API Management.
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 Enter apim-WeatherData<random number>
; náhodné číslo je zajistit, aby byl název 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 pracovního prostoru 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
.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.
Vyberte Přejít k prostředku. Zobrazí se podokno Přehled služby API Management pro váš prostředek.
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.
V části Vytvořit z definice vyberte OpenAPI. Zobrazí se dialogové okno Vytvořit ze specifikace OpenAPI.
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.
Přijměte výchozí hodnoty pro všechna ostatní nastavení a pak vyberte Vytvořit.
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í.
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.
V horním řádku nabídek vyberte Přidat předplatné. Zobrazí se podokno Nové předplatné .
Pro každé nastavení zadejte následující hodnoty.
Nastavení Hodnota Name weather-data-subscription
Zobrazované jméno Weather Data Subscription
Povolit trasování Bez značky zaškrtnutí Obor V rozevíracím seznamu vyberte rozhraní API. rozhraní API V rozevíracím seznamu vyberte Data o počasí. 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í.
Na konci řádku Odběr dat o počasí vyberte tři tečky a v místní nabídce vyberte Zobrazit nebo skrýt klíče. Zobrazí se hodnoty primárního a sekundárního klíče.
Zkopírujte primární klíč z odběru dat o počasí do schránky a uložte ho do poznámkového bloku. 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.
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." }
Teď spusťte následující příkaz. Zástupný text Name Of Gateway nahraďte názvem prostředku brány rozhraní API (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}