Samouczek: przekształcanie i ochrona interfejsu API
DOTYCZY: Wszystkie warstwy usługi API Management
Z tego samouczka dowiesz się więcej o konfigurowaniu typowych zasad w celu przekształcenia interfejsu API. Możesz chcieć przekształcić interfejs API, aby nie ujawniał prywatnych informacji zaplecza. Przekształcanie interfejsu API może pomóc w ukryciu informacji o stosie technologii uruchomionych w zapleczu lub ukryciu oryginalnych adresów URL wyświetlanych w treści odpowiedzi HTTP interfejsu API.
W tym samouczku wyjaśniono również, jak chronić interfejs API zaplecza, konfigurując zasady limitu szybkości, dzięki czemu interfejs API nie jest nadmiernie nadmierny przez deweloperów. Aby uzyskać więcej opcji zasad, zobacz Api Management policies (Zasady usługi API Management).
Uwaga
Domyślnie usługa API Management konfiguruje zasady globalne forward-request
. Aby forward-request
brama ukończyła żądanie do usługi zaplecza, potrzebne są zasady.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Przekształcanie interfejsu API w celu usuwania nagłówków odpowiedzi
- Zastąp oryginalne adresy URL w treści odpowiedzi interfejsu API adresami URL bramy usługi API Management
- Ochrona interfejsu API przez dodanie zasad limitu szybkości (ograniczanie przepustowości)
- Testowanie przekształceń
Wymagania wstępne
- Poznaj terminologię dotyczącą usługi Azure API Management.
- Zapoznaj się z koncepcją zasad w usłudze Azure API Management.
- Wykonaj procedury przedstawione w następującym przewodniku Szybki start: Tworzenie wystąpienia usługi Azure API Management.
- Ponadto wykonaj zadania z następującego samouczka: Importowanie i publikowanie pierwszego interfejsu API.
Przechodzenie do wystąpienia usługi API Management
W witrynie Azure Portal wyszukaj i wybierz pozycję Usługi API Management.
Na stronie Usługi API Management wybierz wystąpienie usługi API Management.
Przekształcanie interfejsu API w celu usuwania nagłówków odpowiedzi
W tej sekcji pokazano, jak ukryć nagłówki HTTP, których nie chcesz wyświetlać użytkownikom. Na przykład usuń następujące nagłówki w odpowiedzi HTTP:
- X-Powered-By
- X-AspNet-Version
Testowanie oryginalnej odpowiedzi
Aby zobaczyć oryginalną odpowiedź:
- W wystąpieniu usługi API Management wybierz pozycję Interfejsy API.
- Wybierz pozycję Pokazowy interfejs API konferencji z listy interfejsów API.
- Wybierz kartę Test w górnej części ekranu.
- Wybierz operację GetSpeakers , a następnie wybierz pozycję Wyślij.
Oryginalna odpowiedź interfejsu API powinna wyglądać podobnie do następującej odpowiedzi:
Jak widać, odpowiedź zawiera nagłówki X-AspNet-Version i X-Powered-By .
Ustawianie zasad przekształcania
W tym przykładzie pokazano, jak używać edytora zasad opartych na formularzach, który pomaga skonfigurować wiele zasad bez konieczności bezpośredniego edytowania instrukcji XML zasad.
Wybierz pozycję Demo Conference API Design>All operations (Projekt interfejsu API>konferencji demonstracyjnej Wszystkie operacje).
W sekcji Przetwarzanie danych wychodzących wybierz pozycję + Dodaj zasady.
W oknie Dodawanie zasad ruchu wychodzącego wybierz pozycję Ustaw nagłówki.
Aby skonfigurować zasady Ustawianie nagłówków, wykonaj następujące czynności:
- W obszarze Nazwa wprowadź wartość X-Powered-By.
- Pozostaw wartość pustą. Jeśli wartość pojawi się na liście rozwijanej, usuń ją.
- W obszarze Akcja wybierz pozycję Usuń.
- Wybierz pozycję Zapisz.
Powtórz dwa poprzednie kroki, aby dodać zasady Ustaw nagłówki , które usuwają nagłówek X-AspNet-Version :
Po konfiguracji w sekcji Przetwarzanie danych wychodzących są wyświetlane dwa elementy zasad set-header.
Zastąp oryginalne adresy URL w treści odpowiedzi interfejsu API adresami URL bramy usługi API Management
W tej sekcji pokazano, jak zastąpić oryginalne adresy URL wyświetlane w treści odpowiedzi HTTP interfejsu API przy użyciu adresów URL bramy usługi API Management. Możesz ukryć oryginalne adresy URL zaplecza przed użytkownikami.
Testowanie oryginalnej odpowiedzi
Aby zobaczyć oryginalną odpowiedź:
Wybierz pozycję Pokazowy test interfejsu API>konferencji.
Wybierz operację GetSpeakers , a następnie wybierz pozycję Wyślij.
Jak widać, odpowiedź zawiera oryginalne adresy URL zaplecza:
Ustawianie zasad przekształcania
W tym przykładzie użyjesz edytora kodu zasad, aby dodać fragment kodu XML zasad bezpośrednio do definicji zasad.
Wybierz pozycję Demo Conference API Design>All operations (Projekt interfejsu API>konferencji demonstracyjnej Wszystkie operacje).
W sekcji Przetwarzanie danych wychodzących wybierz ikonę edytora kodu (</>).
Umieść kursor wewnątrz
<outbound>
elementu w pustym wierszu. Następnie wybierz pozycję Pokaż fragmenty kodu w prawym górnym rogu ekranu.W prawym oknie w obszarze Zasady przekształcania wybierz pozycję Maskuj adresy URL w zawartości.
Element
<redirect-content-urls />
jest dodawany na kursorze.Wybierz pozycję Zapisz.
Ochrona interfejsu API poprzez dodanie zasad limitu szybkości (ograniczanie przepustowości)
W tej sekcji pokazano, jak dodać ochronę do interfejsu API zaplecza, konfigurując limity szybkości, aby interfejs API nie był nadmiernie zawyżone przez deweloperów. W tym przykładzie limit jest ustawiony na trzy wywołania na 15 sekund dla każdego identyfikatora subskrypcji. Po 15 sekundach deweloper może ponowić próbę wywołania interfejsu API.
Wybierz pozycję Demo Conference API Design>All operations (Projekt interfejsu API>konferencji demonstracyjnej Wszystkie operacje).
W sekcji Przetwarzanie przychodzące wybierz ikonę edytora kodu (</>).
Umieść kursor wewnątrz
<inbound>
elementu w pustym wierszu. Następnie wybierz pozycję Pokaż fragmenty kodu w prawym górnym rogu ekranu.W prawym oknie w obszarze Zasady ograniczeń dostępu wybierz pozycję Ogranicz częstotliwość wywołań na klucz.
Element
<rate-limit-by-key />
jest dodawany na kursorze.<rate-limit-by-key />
Zmodyfikuj kod w elemecie<inbound>
na następujący kod. Następnie wybierz opcję Zapisz.<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
Testowanie przekształceń
Na tym etapie, jeśli spojrzysz na kod w edytorze kodu, zasady wyglądają jak następujący kod:
<policies>
<inbound>
<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
<base />
</inbound>
<backend>
<base />
</backend>
<outbound>
<set-header name="X-Powered-By" exists-action="delete" />
<set-header name="X-AspNet-Version" exists-action="delete" />
<redirect-content-urls />
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
Pozostała część tej sekcji testuje przekształcenia zasad ustawione w tym artykule.
Testowanie usuniętych nagłówków odpowiedzi
Wybierz pozycję Pokazowy test interfejsu API>konferencji.
Wybierz operację GetSpeakers i wybierz pozycję Wyślij.
Jak widać, nagłówki X-AspNet-Version i X-Powered-By zostały usunięte:
Testowanie zamienionego adresu URL
Wybierz pozycję Pokazowy test interfejsu API>konferencji.
Wybierz operację GetSpeakers i wybierz pozycję Wyślij.
Jak widać, adresy URL są zastępowane.
Testowanie limitu szybkości (ograniczania przepustowości)
Wybierz pozycję Pokazowy test interfejsu API>konferencji.
Wybierz operację GetSpeakers. Wybierz pozycję Wyślij cztery razy z rzędu.
Po wysłaniu żądania cztery razy otrzymasz odpowiedź 429 Zbyt wiele żądań .
Poczekaj 15 sekund lub więcej, a następnie wybierz pozycję Wyślij ponownie. Teraz interfejs powinien zwrócić odpowiedź 200 OK.
Podsumowanie
W tym samouczku zawarto informacje na temat wykonywania następujących czynności:
- Przekształcanie interfejsu API w celu usuwania nagłówków odpowiedzi
- Zastąp oryginalne adresy URL w treści odpowiedzi interfejsu API adresami URL bramy usługi API Management
- Ochrona interfejsu API poprzez dodanie zasad limitu szybkości (ograniczanie przepustowości)
- Testowanie przekształceń
Następne kroki
Przejdź do następnego samouczka: