Tworzenie subskrypcji w usłudze Azure API Management

Ukończone

Podczas publikowania interfejsu API za pomocą usługi API Management można zdefiniować, kto może uzyskiwać dostęp do interfejsu API za pośrednictwem bramy.

W przypadku aplikacji meteorologicznej chcesz mieć pewność, że tylko klienci, którzy zasubskrybowali Twoją usługę, mogą uzyskiwać dostęp do interfejsu API i korzystać z danych prognozy. Ta kontrola dostępu odbywa się przez wydawanie kluczy subskrypcji.

Ważne

Subskrypcje w tym kontekście nie są powiązane z subskrypcjami platformy Azure używanymi do zarządzania kontem platformy Azure.

Tutaj dowiesz się, jak zabezpieczać swoje interfejsy API za pomocą kluczy subskrypcji.

Subskrypcje i klucze

Możesz zdecydować się na udostępnienie interfejsów API i informacji, które zawierają bezpłatnie. Zazwyczaj jednak chcesz ograniczyć dostęp do użytkowników, którzy mają płatne lub organizacje, z którymi masz relację roboczą. Jednym ze sposobów kontrolowania dostępu do interfejsów API jest użycie subskrypcji. Subskrypcje są używane do segmentowania dostępu użytkowników do interfejsu API.

Klucze subskrypcji są formą autoryzacji umożliwiającą dostęp do tych subskrypcji. Za każdym razem, gdy klient wysyła żądanie do chronionego interfejsu API, prawidłowy klucz subskrypcji musi zostać uwzględniony w żądaniu HTTP. W przeciwnym razie wywołanie zostanie odrzucone.

Klucz subskrypcji to unikatowy automatycznie wygenerowany klucz, który można przekazać w ramach wywołania interfejsu API. Klucz ma bezpośredni związek z subskrypcją, która swoim zasięgiem może obejmować różne obszary. Subskrypcje zapewniają szczegółową kontrolę nad uprawnieniami i zasadami.

Dostępne są trzy następujące główne zakresy subskrypcji:

Scope Szczegóły
Wszystkie interfejsy API Dotyczy każdego interfejsu API dostępnego z bramy.
Pojedynczy interfejs API Dotyczy pojedynczego zaimportowanego interfejsu API i wszystkich jego punktów końcowych.
Rezultat Produkt to zbiór składający się z jednego lub większej liczby interfejsów API, które można skonfigurować w usłudze API Management. Interfejsy API można przypisać do więcej niż jednego produktu. Produkty mogą mieć różne reguły dostępu, limity przydziałów użycia i warunki użytkowania. Jeśli więc chcesz, aby partnerzy i dostawcy mieli różne prawa dostępu do interfejsu API WeatherData , przypisz interfejs API do produktu, a następnie użyj witryny Azure Portal, aby skojarzyć interfejsy API z produktem.

Aplikacje wywołujące chroniony interfejs API muszą zawierać klucz subskrypcji w każdym żądaniu.

Te klucze subskrypcji można wygenerować ponownie w dowolnym momencie; Na przykład jeśli podejrzewasz, że klucz został udostępniony nieautoryzowanym użytkownikom, możesz utworzyć nowy.

Klucze subskrypcji.

Każda subskrypcja ma dwa klucze — klucz podstawowy i klucz pomocniczy. Posiadanie dwóch kluczy ułatwia ponowne wygenerowanie klucza. Jeśli na przykład chcesz zmienić klucz podstawowy i uniknąć przestoju, użyj w aplikacjach klucza pomocniczego.

W przypadku produktów, w których są włączone subskrypcje, klienci muszą podać klucz podczas wykonywania wywołań do interfejsów API w tym produkcie. Deweloperzy mogą uzyskać klucz, przesyłając żądanie subskrypcji. Jeśli zatwierdzisz żądanie, musisz wysłać im klucz subskrypcji w bezpieczny sposób, na przykład w zaszyfrowanej wiadomości. Ten krok jest podstawowym elementem przepływu pracy w usłudze API Management.

Wywoływanie interfejsu API za pomocą klucza subskrypcji

Aplikacje muszą zawierać prawidłowy klucz we wszystkich żądaniach HTTP, które wysyłają wywołania do punktów końcowych interfejsu API chronionych przez subskrypcję. Klucze można przekazać w nagłówku żądania lub jako parametr ciągu zapytania w adresie URL.

Domyślna nazwa nagłówka klucza subskrypcji to Ocp-Apim-Subscription-Key, a domyślna nazwa ciągu zapytania to subscription-key.

Aby przetestować wywołania interfejsu API, możesz użyć konsoli testowej w witrynie Azure Portal lub portalu dla deweloperów lub narzędzi wiersza polecenia, takich jak curl. Oto przykład żądania GET z użyciem portalu dla deweloperów, z widocznym nagłówkiem klucza subskrypcji:

Zrzut ekranu przedstawiający sposób wywoływania interfejsu API z portalu dla deweloperów.

Oto przykład przekazywania klucza w nagłówku żądania przy użyciu narzędzia curl:

curl --header "Ocp-Apim-Subscription-Key: <key string>" https://<apim gateway>.azure-api.net/api/path

Oto przykład użycia polecenia curl do przekazania klucza jako ciągu zapytania w adresie URL:

curl https://<apim gateway>.azure-api.net/api/path?subscription-key=<key string>

Jeśli wymagany klucz nie zostanie przekazany w nagłówku lub jako ciąg zapytania w adresie URL, otrzymasz odpowiedź 401 Odmowa dostępu z bramy interfejsu API.