Kurz: Transformace a ochrana rozhraní API

V tomto kurzu se dozvíte o konfiguraci běžných zásad pro transformaci rozhraní API. Možná budete chtít transformovat rozhraní API tak, aby nezojevovala privátní back-endové informace. Transformace rozhraní API vám může pomoct skrýt informace o technologii spuštěné v back-endu nebo skrýt původní adresy URL, které se zobrazí v textu odpovědi HTTP rozhraní API.

Tento kurz také vysvětluje, jak přidat ochranu do back-endového rozhraní API konfigurací zásad omezení rychlosti, aby rozhraní API vývojáři nepřehledli. Další možnosti zásad najdete v tématu API Management zásady.

Poznámka

Ve výchozím nastavení API Management nakonfiguruje globální forward-request zásady. Zásady forward-request jsou potřeba k dokončení požadavku na back-endovou službu brány.

V tomto kurzu se naučíte:

  • Odebrat hlavičky odpovědi transformováním rozhraní API
  • Nahrazení původních adres URL v textu odpovědi rozhraní API API Management adresami URL brány
  • Ochrana rozhraní API přidáním zásad omezení rychlosti (omezování)
  • Otestovat transformace

Policies in portal

Požadavky

Přejít k instanci služby API Management

  1. V Azure Portal vyhledejte a vyberte služby API Management.

    Select API Management services

  2. Na stránce služby API Management vyberte instanci API Management.

    Select your API Management instance

Odebrat hlavičky odpovědi transformováním rozhraní API

Tato část ukazuje, jak skrýt hlavičky HTTP, které nechcete uživatelům zobrazovat. Například odstraňte následující hlavičky v odpovědi HTTP:

  • X-Powered-By
  • X-AspNet-Version

Test původní odpovědi

Původní odpověď zobrazíte následovně:

  1. V instanci služby API Management vyberte rozhraní API.
  2. Ze seznamu rozhraní API vyberte ukázkové rozhraní API konference .
  3. Vyberte kartu Test v horní části obrazovky.
  4. Vyberte operaci GetSpeakers a pak vyberte Odeslat.

Původní odpověď rozhraní API by měla vypadat podobně jako následující odpověď:

Original API response

Jak vidíte, odpověď obsahuje hlavičky X-AspNet-Version a X-Powered-By .

Nastavení zásady transformací

Tento příklad ukazuje, jak používat editor zásad založený na formulářích, který vám pomůže nakonfigurovat mnoho zásad, aniž byste museli upravovat příkazy XML zásad přímo.

  1. Vyberte ukázkovéoperaceAPIDesignAll>> konference.

  2. V části Zpracování odchozích přenosů vyberte + Přidat zásadu.

    Navigate to outbound policy

  3. V okně Přidat odchozí zásady vyberte Nastavit záhlaví.

    Set HTTP header policy

  4. Pokud chcete nakonfigurovat zásadu nastavení hlaviček, postupujte takto:

    1. V části Název zadejte X-Powered-By. V části Akce vyberte odstranit.
    2. Vyberte + Přidat záhlaví.
    3. V části Název zadejte X-AspNet-Version. V části Akce vyberte odstranit.

    Set HTTP header

  5. Vyberte Uložit. V části Zpracování odchozích přenosů se zobrazí dva elementy zásad hlavičky sady.

Nahrazení původních adres URL v textu odpovědi rozhraní API API Management adresami URL brány

V této části se dozvíte, jak nahradit původní adresy URL, které se zobrazují v textu odpovědi HTTP rozhraní API API Management adresami URL brány. Můžete chtít skrýt původní back-endové adresy URL uživatelů.

Test původní odpovědi

Původní odpověď zobrazíte následovně:

  1. Vyberte Demo Conference APITest>.

  2. Vyberte operaci GetSpeakers a pak vyberte Odeslat.

    Jak vidíte, odpověď obsahuje původní back-endové adresy URL:

    Original URLs in response

Nastavení zásady transformací

V tomto příkladu použijete editor kódu zásad k přidání fragmentu kódu ZÁSAD XML přímo do definice zásady.

  1. Vyberte ukázkovéoperaceAPIDesignAll>> konference.

  2. V části Zpracování odchozích přenosů vyberte ikonu editoru kódu (</>).

    Navigate to outbound policy code editor

  3. Umístěte kurzor uvnitř <outbound> prvku na prázdný řádek. Pak vyberte Zobrazit fragmenty kódu v pravém horním rohu obrazovky.

    Select show snippets

  4. V pravém okně v části Zásady transformace vyberte Maskovat adresy URL v obsahu.

    Prvek <redirect-content-urls /> se přidá na kurzor.

    Mask URLs in content

  5. Vyberte Uložit.

Ochránit rozhraní API přidáním zásady omezování četnosti (omezení využití sítě)

V této části se dozvíte, jak do back-endového rozhraní API přidat ochranu konfigurací omezení rychlosti, aby rozhraní API nebylo příliš nadměrné pro vývojáře. V tomto příkladu je limit nastavený na tři volání za 15 sekund pro každé ID předplatného. Po 15 sekundách může vývojář zkusit volat rozhraní API znovu.

  1. Vyberte ukázkovéoperaceAPIDesignAll>> konference.

  2. V části Zpracování příchozích dat vyberte ikonu editoru kódu (</>).

    Navigate to inbound policy

  3. Umístěte kurzor uvnitř <inbound> prvku na prázdný řádek. Pak vyberte Zobrazit fragmenty kódu v pravém horním rohu obrazovky.

    Set inbound policy

  4. V pravém okně vyberte v části Zásady omezení přístupumožnost Omezit četnost volání na klíč.

    Prvek <rate-limit-by-key /> se přidá na kurzor.

    Select limit call rate per key

  5. Upravte kód <rate-limit-by-key /> v elementu <inbound> na následující kód. Pak vyberte Uložit.

    <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
    

Otestovat transformace

V tomto okamžiku, pokud se podíváte na kód v editoru kódu, vaše zásady vypadají jako následující kód:

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

Zbývající část článku testuje transformace zásad, které jste nastavili.

Test odebraných hlaviček odpovědi

  1. Vyberte Demo Conference APITest>.

  2. Vyberte operaci GetSpeakers a vyberte Odeslat.

    Jak vidíte, záhlaví byla odstraněna:

    Stripped response headers

Test nahrazené adresy URL

  1. Vyberte Demo Conference APITest>.

  2. Vyberte operaci GetSpeakers a vyberte Odeslat.

    Jak vidíte, adresy URL se nahradí.

    Replaced URLs

Test omezování četnosti (omezení využití sítě)

  1. Vyberte Demo Conference APITest>.

  2. Vyberte operaci GetSpeakers. V řádku vyberte Možnost Odeslat třikrát.

    Po odeslání požadavku třikrát získáte odpověď 429 Příliš mnoho požadavků .

    Too many requests

  3. Počkejte 15 sekund nebo více a pak znovu vyberte Odeslat . Tentokrát by se už měla objevit odpověď 200 OK.

Další kroky

V tomto kurzu jste se naučili:

  • Odebrat hlavičky odpovědi transformováním rozhraní API
  • Nahrazení původních adres URL v textu odpovědi rozhraní API API Management adresami URL brány
  • Ochránit rozhraní API přidáním zásady omezování četnosti (omezení využití sítě)
  • Otestovat transformace

Přejděte k dalšímu kurzu: