Ćwiczenie — tworzenie subskrypcji w usłudze Azure API Management
Aby utworzyć subskrypcje i uzyskać klucze subskrypcji do wykorzystania w aplikacjach klienckich, możesz użyć interfejsu użytkownika usługi Azure API Management w witrynie Azure Portal.
Załóżmy, że Twoja firma meteorologiczna zdecydowała się na udostępnienie swoich danych pogodowych klientom, którzy subskrybują usługę i płacą za nią. Najważniejszym wymaganiem jest, aby dostęp mieli tylko ci klienci, którym przydzielono klucz. Jako wiodący deweloper musisz utworzyć bramę interfejsów API. Za pomocą tej bramy będziesz publikować interfejs API RESTful z danymi o pogodzie, który będzie uwidaczniał punkt końcowy interfejsu OpenAPI. Następnie zabezpieczysz punkt końcowy i przydzielisz klucz klienta.
Ta lekcja obejmuje następujące zagadnienia:
- Publikowanie interfejsu API RESTful z danymi o pogodzie
- Wdrażanie bramy usługi API Management
- Uwidocznienie interfejsu API z danymi o pogodzie za pośrednictwem punktu końcowego bramy
- Ograniczanie dostępu na podstawie klucza subskrypcji
Ważne
Do wykonania tego ćwiczenia potrzebna jest własna subskrypcja platformy Azure. Ponadto mogą zostać naliczone opłaty. Jeśli nie masz jeszcze subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Wdrażanie internetowego interfejsu API z danymi o pogodzie
Utworzono aplikację platformy .NET Core, która zwraca informacje o pogodzie. Ta aplikacja zawiera pakiet Swashbuckle w celu generowania dokumentacji interfejsu OpenAPI.
Aby zaoszczędzić czas, zacznijmy od uruchomienia skryptu w celu hostowania naszego interfejsu API na platformie Azure. Skrypt wykonuje następujące kroki:
- Utworzenie planu usługi Azure App Service w warstwie Bezpłatna
- Utworzenie internetowego interfejsu API w obrębie usługi Azure App Service skonfigurowanego pod kątem wdrożenia usługi Git z repozytorium lokalnego
- Ustawienie poświadczeń wdrażania na poziomie konta dla naszej aplikacji
- Skonfigurowanie usługi Git lokalnie
- Wdrożenie naszego internetowego interfejsu API w wystąpieniu usługi App Service
Zaloguj się w witrynie Azure Portal.
Na pasku zadań platformy Azure wybierz ikonę usługi Cloud Shell, aby otworzyć usługę Azure Cloud Shell.
Uruchom następujące polecenie git clone w usłudze Azure Cloud Shell, aby sklonować repozytorium zawierające źródło naszej aplikacji oraz skrypt konfiguracji z usługi GitHub.
git clone https://github.com/MicrosoftDocs/mslearn-control-authentication-with-apim.git
Przejdź do katalogu folderów repozytorium lokalnie, uruchamiając następujące polecenie cd.
cd mslearn-control-authentication-with-apim
Jak sugeruje jego nazwa, to skrypt, który uruchomisz,
setup.sh
aby utworzyć nasz interfejs API. Spowoduje to wygenerowanie publicznej aplikacji internetowej, która uwidacznia interfejs OpenAPI.bash setup.sh
Skrypt ma siedem części i trwa około minuty. Zwróć uwagę, że podczas wdrażania wszystkie zależności wymagane do uruchomienia aplikacji są automatycznie instalowane w zdalnej usłudze App Service.
Po zakończeniu działania skrypt zwraca dwa adresy URL, adres URL struktury Swagger i przykładowy adres URL. Możesz użyć tych adresów URL do przetestowania wdrożenia aplikacji.
Aby przetestować, czy nasza aplikacja została wdrożona prawidłowo, skopiuj i wklej adres URL programu Swagger z danych wyjściowych usługi Azure Cloud Shell do ulubionej przeglądarki. Przeglądarka powinna wyświetlić interfejs użytkownika struktury Swagger dla naszej aplikacji i zadeklarować następujące punkty końcowe RESTful:
- api/weather/{latitude}/{longitude}, który zwraca dane meteorologiczne dla bieżącego dnia, biorąc pod uwagę określoną szerokość geograficzną i długość geograficzną (podwójne wartości).
- api/weather/{date}/{latitude}/{longitude}, który zwraca dane meteorologiczne dla określonego dnia (wartość daty) w określonej szerokości i długości geograficznej (dwie wartości).
Na koniec skopiuj i zapisz przykładowy adres URL z danych wyjściowych usługi Azure Cloud Shell. Ta lokalizacja to adres URL JSON programu Swagger. Będzie on potrzebny w dalszej części tego ćwiczenia.
Wdrażanie bramy interfejsów API
Następnym krokiem w tym ćwiczeniu jest utworzenie bramy interfejsów API w witrynie Azure Portal. W następnym ćwiczeniu użyjesz tej bramy, aby opublikować interfejs API.
Zaloguj się do Azure Portal.
W menu zasobów platformy Azure lub na stronie głównej w obszarze Usługi platformy Azure wybierz pozycję Utwórz zasób. Zostanie wyświetlone okienko Tworzenie zasobu .
W menu zasobów wybierz pozycję Integracja, a w wynikach wybierz pozycję API Management. Zostanie wyświetlone okienko Instalowanie bramy usługi API Management.
Na karcie Podstawy wprowadź następujące wartości dla każdego ustawienia.
Ustawienie Wartość Szczegóły projektu Subskrypcja Wybierz subskrypcję. Grupa zasobów Wybierz nową lub istniejącą grupę zasobów. Grupa zasobów to logiczny kontener, który przechowuje powiązane zasoby dla rozwiązania platformy Azure. Szczegóły wystąpienia Region (Region) Wybierz dostępny region. Nazwa zasobu Wprowadź apim-WeatherData<random number>
wartość ; liczba losowa to upewnienie się, że nazwa jest globalnie unikatowa. Zanotuj tę nazwę zasobu; będzie to nazwa bramy interfejsu API, która będzie potrzebna w dalszej części tego ćwiczenia.Nazwa obszaru roboczego Wprowadź Weather-Company
.Adres e-mail administratora Adres e-mail do odbierania wszystkich powiadomień systemowych. Warstwa cenowa Warstwa cenowa Z listy rozwijanej wybierz pozycję Consumption
.Wybierz pozycję Przejrzyj i utwórz, a po zakończeniu walidacji wybierz pozycję Utwórz.
Uwaga
Warstwa Zużycie zapewnia szybkie wdrożenie do testowania i ma model cen płatności za użycie. Ogólne środowisko usługi API Management jest podobne do innych warstw cenowych.
Postęp wdrażania można wyświetlić wraz z tworzonymi zasobami.
Importowanie interfejsu API
Po zakończeniu wdrażania zaimportuj interfejs API weather do bramy usługi API Management przy użyciu poniższej procedury.
Wybierz pozycję Przejdź do zasobu. Zostanie wyświetlone okienko Przegląd usługi API Management dla zasobu.
W okienku menu po lewej stronie w obszarze Interfejsy API wybierz pozycję Interfejsy API. Zostanie wyświetlone okienko Interfejsy API dla usługi API Management z wyborami szablonów do tworzenia/wyświetlania interfejsu API.
W obszarze Utwórz na podstawie definicji wybierz pozycję OpenAPI. Zostanie wyświetlone okno dialogowe Tworzenie na podstawie specyfikacji interfejsu OpenAPI.
W polu Specyfikacja interfejsu OpenAPI wklej zapisany wcześniej w ćwiczeniu adres URL JSON struktury Swagger. Po naciśnięciu Enter lub wybraniu innego obszaru okna dialogowego zostaną wypełnione inne pola. Te dane są importowane ze specyfikacji interfejsu OpenAPI utworzonej za pomocą struktury Swagger.
Zaakceptuj wartości domyślne dla wszystkich pozostałych ustawień, a następnie wybierz pozycję Utwórz.
Na karcie Projektowanie interfejsu API danych pogodowych są wyświetlane wszystkie operacje, które składają się z dwóch operacji GET.
Dodawanie klucza subskrypcji w celu uzyskiwania dostępu do interfejsu API z danymi o pogodzie
Ostatnim krokiem jest dodanie klucza subskrypcji dla interfejsu API danych o pogodzie.
W okienku menu po lewej stronie w obszarze Interfejsy API wybierz pozycję Subskrypcje. Zostanie wyświetlone okienko Subskrypcje usługi API Management.
Na górnym pasku menu wybierz pozycję Dodaj subskrypcję. Zostanie wyświetlone okienko Nowa subskrypcja .
Wprowadź następujące wartości dla każdego ustawienia.
Ustawienie Wartość Imię i nazwisko/nazwa weather-data-subscription
Display name Weather Data Subscription
Zezwalaj na śledzenie Brak znacznika wyboru Scope Z listy rozwijanej wybierz pozycję Interfejs API. interfejs API Z listy rozwijanej wybierz pozycję Dane pogodowe. Wybierz pozycję Utwórz. W okienku Subskrypcje są wyświetlane dwie subskrypcje, wbudowana subskrypcja z dostępem wszystkim i subskrypcja danych pogodowych.
Na końcu wiersza Subskrypcja danych pogodowych wybierz wielokropek, a w menu kontekstowym wybierz pozycję Pokaż/ukryj klucze. Wartości klucza podstawowego i pomocniczego są wyświetlane.
Skopiuj klucz podstawowy z usługi Weather Data Subscription do schowka i zapisz go w notatniku. Ten klucz będzie potrzebny w następnym kroku.
Testowanie klucza subskrypcji
Interfejs API jest zabezpieczony za pomocą klucza. Teraz przetestujemy interfejs API bez klucza i z kluczem, aby zademonstrować bezpieczny dostęp.
Wysyłanie żądania bez przekazywania klucza subskrypcji. W usłudze Azure Cloud Shell uruchom następujące polecenie cURL. Zastąp symbol zastępczy [Name Of Gateway] nazwą zasobu bramy interfejsu API (apim-WeatherDataNNNN), który został utworzony w poprzednim zadaniu.
curl -X GET https://[Name Of Gateway].azure-api.net/api/Weather/53/-1
To polecenie nie ma klucza subskrypcji i powinno zwrócić błąd odmowy dostępu 401, podobnie jak poniżej.
{ "statusCode": 401, "message": "Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." }
Teraz uruchom następujące polecenie. Zastąp symbol zastępczy Nazwa bramy nazwą zasobu bramy interfejsu API (apim-WeatherDataNNNN). Ponadto zastąp symbol zastępczy klucz podstawowy kluczem podstawowym skopiowany z kroku pokaż/ukryj.
curl -X GET https://[Name Of Gateway].azure-api.net/api/Weather/53/-1 \ -H 'Ocp-Apim-Subscription-Key: [Primary Key]'
Jeśli dołączono cudzysłów zamykający, to polecenie powinno spowodować pomyślną odpowiedź podobną do poniższego kodu.
{"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}