Samouczek: przekształcanie i ochrona interfejsu API

DOTYCZY: Wszystkie warstwy usługi API Management

W tym samouczku dowiesz się więcej na temat konfigurowania 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 dodać ochronę do interfejsu API zaplecza, konfigurując zasady limitu szybkości, dzięki czemu interfejs API nie jest nadmiernie zawyżone 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ń

Zasady w portalu

Wymagania wstępne

Przechodzenie do wystąpienia usługi API Management

  1. W witrynie Azure Portal wyszukaj i wybierz pozycję Usługi API Management.

    Wybieranie usług API Management

  2. Na stronie Usługi API Management wybierz wystąpienie usługi API Management.

    Wybieranie wystąpienia 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ź:

  1. W wystąpieniu usługi API Management wybierz pozycję Interfejsy API.
  2. Wybierz pozycję Pokazowy interfejs API konferencji z listy interfejsów API.
  3. Wybierz kartę Test w górnej części ekranu.
  4. Wybierz operację GetSpeakers , a następnie wybierz pozycję Wyślij.

Oryginalna odpowiedź interfejsu API powinna wyglądać podobnie do następującej odpowiedzi:

Oryginalna odpowiedź interfejsu API

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.

  1. Wybierz pozycję Demo Conference API Design>All operations (Projekt interfejsu API>konferencji demonstracyjnej Wszystkie operacje).

  2. W sekcji Przetwarzanie danych wychodzących wybierz pozycję + Dodaj zasady.

    Przejdź do zasad ruchu wychodzącego

  3. W oknie Dodawanie zasad ruchu wychodzącego wybierz pozycję Ustaw nagłówki.

    Ustawianie zasad nagłówka HTTP

  4. Aby skonfigurować zasady ustawiania nagłówków, wykonaj następujące czynności:

    1. W obszarze Nazwa wprowadź wartość X-Powered-By. W obszarze Akcja wybierz pozycję Usuń.
    2. Wybierz pozycję + Dodaj nagłówek.
    3. W obszarze Nazwa wprowadź wartość X-AspNet-Version. W obszarze Akcja wybierz pozycję Usuń.

    Ustawianie nagłówka HTTP

  5. Wybierz pozycję Zapisz. 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ź:

  1. Wybierz pozycję Pokazowy test interfejsu API>konferencji.

  2. Wybierz operację GetSpeakers , a następnie wybierz pozycję Wyślij.

    Jak widać, odpowiedź zawiera oryginalne adresy URL zaplecza:

    Oryginalne adresy URL w odpowiedzi

Ustawianie zasad przekształcania

W tym przykładzie użyjesz edytora kodu zasad, aby dodać fragment kodu XML zasad bezpośrednio do definicji zasad.

  1. Wybierz pozycję Demo Conference API Design>All operations (Projekt interfejsu API>konferencji demonstracyjnej Wszystkie operacje).

  2. W sekcji Przetwarzanie danych wychodzących wybierz ikonę edytora kodu (</>).

    Przejdź do edytora kodu zasad ruchu wychodzącego

  3. Umieść kursor wewnątrz <outbound> elementu w pustym wierszu. Następnie wybierz pozycję Pokaż fragmenty kodu w prawym górnym rogu ekranu.

    Wybierz pozycję Pokaż fragmenty kodu

  4. W prawym oknie w obszarze Zasady przekształcania wybierz pozycję Maskuj adresy URL w zawartości.

    Element <redirect-content-urls /> jest dodawany na kursorze.

    Maskuj adresy URL w zawartości

  5. 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.

  1. Wybierz pozycję Demo Conference API Design>All operations (Projekt interfejsu API>konferencji demonstracyjnej Wszystkie operacje).

  2. W sekcji Przetwarzanie przychodzące wybierz ikonę edytora kodu (</>).

    Przejdź do zasad ruchu przychodzącego

  3. Umieść kursor wewnątrz <inbound> elementu w pustym wierszu. Następnie wybierz pozycję Pokaż fragmenty kodu w prawym górnym rogu ekranu.

    Ustawianie zasad danych przychodzących

  4. 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.

    Wybieranie limitu liczby wywołań na klucz

  5. <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

  1. Wybierz pozycję Pokazowy test interfejsu API>konferencji.

  2. Wybierz operację GetSpeakers i wybierz pozycję Wyślij.

    Jak widać, nagłówki zostały usunięte:

    Usunięte nagłówki odpowiedzi

Testowanie zamienionego adresu URL

  1. Wybierz pozycję Pokazowy test interfejsu API>konferencji.

  2. Wybierz operację GetSpeakers i wybierz pozycję Wyślij.

    Jak widać, adresy URL są zastępowane.

    Zamieniono adresy URL

Testowanie limitu szybkości (ograniczania przepustowości)

  1. Wybierz pozycję Pokazowy test interfejsu API>konferencji.

  2. Wybierz operację GetSpeakers. Wybierz pozycję Wyślij trzy razy z rzędu.

    Po wysłaniu żądania trzy razy otrzymasz odpowiedź 429 Zbyt wiele żądań .

    Zbyt wiele żądań

  3. Poczekaj 15 sekund lub więcej, a następnie wybierz pozycję Wyślij ponownie. Teraz interfejs powinien zwrócić odpowiedź 200 OK.

Następne kroki

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ń

Przejdź do następnego samouczka: