Sdílet prostřednictvím


Kurz: Transformace a ochrana rozhraní API

PLATÍ PRO: Všechny úrovně služby API Management

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, aby nezorazovala privátní back-endové informace. Transformace rozhraní API vám může pomoct skrýt informace o zásobníku technologií 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 chránit back-endové rozhraní API tím, že nakonfigurujete zásady omezení rychlosti, aby rozhraní API nebylo příliš nadměrné. Další možnosti zásad najdete v tématu Zásady služby API Management.

Poznámka:

Ve výchozím nastavení služba API Management konfiguruje globální forward-request zásady. K forward-request dokončení požadavku na back-endovou službu je potřeba, aby brána dokončila požadavek.

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 adresami URL brány služby API Management
  • Ochrana rozhraní API přidáním zásad omezení rychlosti (omezování)
  • Testovat transformace

Snímek obrazovky se zásadami služby API Management na portálu

Požadavky

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

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

    Výběr služeb API Management

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

    Výběr instance služby API Management

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. Odstraňte například 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ěď:

Snímek obrazovky s původní odpovědí rozhraní API na portálu

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áři, který vám pomůže nakonfigurovat mnoho zásad, aniž byste museli upravovat příkazy XML zásad přímo.

  1. Vyberte Ukázkové konferenční rozhraní API>– Návrh>všech operací.

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

    Snímek obrazovky s přechodem na odchozí zásady na portálu

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

    Snímek obrazovky s konfigurací zásad nastavení hlaviček na portálu

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

    1. V části Název zadejte X-Powered-By.
    2. Ponechte hodnotu prázdnou. Pokud se v rozevíracím seznamu zobrazí hodnota, odstraňte ji.
    3. V části Akce vyberte odstranit.
    4. Zvolte Uložit.
  5. Opakujte předchozí dva kroky a přidejte zásadu hlavičky Set, která odstraní hlavičku X-AspNet-Version :

  6. Po konfiguraci se v části Zpracování odchozích přenosů zobrazí dva elementy zásad hlavičky sady.

    Snímek obrazovky se zásadami nastavení odchozích přenosů na portálu

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

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

Test původní odpovědi

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

  1. Vyberte Ukázkový test rozhraní API>konference.

  2. Vyberte operaci GetSpeakers a pak vyberte Odeslat.

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

    Snímek obrazovky s původními adresami URL v odpovědi na portálu

Nastavení zásady transformací

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

  1. Vyberte Ukázkové konferenční rozhraní API>– Návrh>všech operací.

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

    Snímek obrazovky s přechodem na editor kódu odchozích zásad na portálu

  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.

    Snímek obrazovky s výběrem možnosti Zobrazit fragmenty kódu v editoru odchozích zásad na portálu

  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.

    Snímek obrazovky s vložením adres URL masky do zásad obsahu na portálu

  5. Zvolte 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 tím, že nakonfigurujete omezení rychlosti, aby rozhraní API nepřehledlo vývojářům. 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 znovu volat rozhraní API.

  1. Vyberte Ukázkové konferenční rozhraní API>– Návrh>všech operací.

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

    Snímek obrazovky s přechodem na editor kódu příchozích zásad na portálu

  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.

    Snímek obrazovky s výběrem možnosti Zobrazit fragmenty kódu v editoru příchozích zásad na portálu

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

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

    Snímek obrazovky s vložením limitu četnosti volání na zásadu klíče na portálu

  5. Upravte <rate-limit-by-key /> kód 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)" />
    

Testovat transformace

Pokud se v tomto okamžiku 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 Ukázkový test rozhraní API>konference.

  2. Vyberte operaci GetSpeakers a vyberte Odeslat.

    Jak vidíte, záhlaví X-AspNet-Version a X-Powered-By byla odebrána:

    Snímek obrazovky znázorňující proříznuté hlavičky odpovědi na portálu

Test nahrazené adresy URL

  1. Vyberte Ukázkový test rozhraní API>konference.

  2. Vyberte operaci GetSpeakers a vyberte Odeslat.

    Jak vidíte, adresy URL se nahradí.

    Snímek obrazovky znázorňující nahrazené adresy URL na portálu

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

  1. Vyberte Ukázkový test rozhraní API>konference.

  2. Vyberte operaci GetSpeakers. V řádku vyberte Odeslat čtyřikrát.

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

    Snímek obrazovky znázorňující příliš mnoho požadavků v odpovědi na portálu

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

Shrnutí

V tomto kurzu jste se naučili, jak:

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

Další kroky

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