Wywoływanie interfejsu API za pomocą klucza subskrypcji

Ukończone

Kiedy publikujesz interfejs API, zazwyczaj chcesz mieć pewną kontrolę nad tym, kto może uzyskiwać do niego dostęp za pośrednictwem bramy. Klucze subskrypcji to jeden ze sposobów ograniczenia dostępu do interfejsu API.

W tym miejscu dowiesz się, jak zabezpieczyć interfejsy API przy użyciu kluczy subskrypcji.

Subskrypcje i klucze

Aby chronić swoje interfejsy API, możesz użyć klucza subskrypcji.

Uwaga

W środowiskach produkcyjnych usługi API Management zazwyczaj łączysz klucz subskrypcji z innymi mechanizmami, aby chronić interfejsy API przed nieautoryzowanym użyciem, takimi jak uwierzytelnianie certyfikatu lub autoryzacja OAuth 2.0. Znajdują się one poza zakresem tego modułu.

Klucz subskrypcji to unikatowy, wygenerowany automatycznie ciąg, który jest przekazywany w nagłówkach żądania klienta lub jako ciąg zapytania w adresie URL. Klucz jest bezpośrednio związany z subskrypcją, która może być ograniczona do różnych obszarów, zapewniając szczegółową kontrolę nad uprawnieniami i zasadami. Główne zakresy subskrypcji to:

  • Wszystkie interfejsy API
  • Pojedynczy interfejs API
  • Produkt

Aplikacja, która wywołuje chroniony interfejs API, musi zawierać klucz w żądaniu.

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

Klucze subskrypcji.

Każda subskrypcja ma dwa klucze: podstawowy i 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 z włączoną subskrypcją podczas wywoływania interfejsów API w tym produkcie należy podać klucz. Jako deweloper możesz uzyskać klucz, przesyłając żądanie subskrypcji. Ten proces jest główną częścią przepływu pracy usługi API Management.

Uwaga

Tworzenie nowych użytkowników i nadawanie im kluczy subskrypcji w celu uzyskania dostępu do interfejsu API jest główną częścią przepływu pracy usługi API Management, ale wykracza poza zakres tego modułu.

Wywoływanie interfejsu API za pomocą klucza subskrypcji

Kiedy aplikacje wykonują wywołania do punktów końcowych interfejsów API chronionych za pomocą subskrypcji, muszą zawierać prawidłowy klucz we wszystkich żądaniach HTTP. Klucze można przekazywać w nagłówku żądania lub jako ciąg zapytania w adresie URL.

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

Aby przetestować wywołania interfejsu API, możesz użyć portalu dla deweloperów (jeśli jest ona dostępna w warstwie usługi), narzędzia wiersza polecenia, takiego jak curl lub inne narzędzia klienckie REST.

Oto przykład żądania GET przekazującego klucz w nagłówku żądania przy użyciu polecenia curl :

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

Oto przykładowe polecenie narzędzia curl, które przekazuje klucz w adresie URL jako ciąg zapytania:

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

Jeśli 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.