Kurz: Transformace a ochrana rozhraní API
Tento kurz ukazuje, jak transformovat rozhraní API, aby neodhaloval informace o privátním back-endu. Můžete například chtít skrýt informace o zásobníku technologie, který běží na back-endu. Můžete také chtít skrýt původní adresy URL, které se zobrazí v textu odpovědi HTTP rozhraní API, a místo toho je přesměrovat na bránu SLUŽBY APIM.
Tento kurz také ukazuje, jak snadné je přidat ochranu pro back-endové rozhraní API tím, že nakonfigurujete omezení rychlosti pomocí azure API Management. Můžete například chtít omezit rychlost volání rozhraní API, aby vývojáři toto rozhraní API příliš nevyužili. Další informace najdete v tématu API Management zásady.
V tomto kurzu se naučíte:
- Odebrat hlavičky odpovědi transformováním rozhraní API
- Nahradit původní adresy URL v těle odpovědi rozhraní API adresami URL brány služby APIM
- Ochrana rozhraní API přidáním zásad omezení rychlosti (omezování)
- Otestovat transformace
Požadavky
- Seznamte se s terminologií služby Azure API Management.
- Seznamte se s konceptem zásad ve službě Azure API Management.
- Proveďte následující rychlý start: Vytvoření instance API Management Azure.
- Projděte si také následující kurz: Navíc kurzu: Import a publikování vašeho prvního rozhraní API.
Přejít k instanci služby API Management
V Azure Portal vyhledejte a vyberte API Management Services.
Na stránce API Management služby vyberte svou instanci API Management.
Odebrat hlavičky odpovědi transformováním rozhraní API
Tato část ukazuje, jak skrýt hlavičky PROTOKOLU HTTP, které nechcete uživatelům zobrazovat. Tento příklad ukazuje, jak odstranit 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ě:
- Ve vaší API Management služby vyberte Rozhraní API.
- Ze seznamu rozhraní API vyberte Demo Conference API.
- V horní části obrazovky vyberte kartu Test.
- Vyberte operaci GetSpeakers a vyberte Odeslat.
Původní odpověď by měla vypadat podobně jako v následujícím příkladu:
Jak vidíte, odpověď obsahuje hlavičky X-AspNet-Version a X-Powered-By.
Nastavení zásady transformací
Vyberte Demo Conference API Design All operations ( Všechny > > operace).
V části Zpracování odchozích přenosů vyberte ikonu editoru kódu ( </> ).
Umístěte kurzor do < elementu > outbound a vyberte Zobrazit fragmenty kódu v pravém horním rohu.
V pravém okně v části Zásady transformace dvakrát vyberte Nastavit hlavičku PROTOKOLU HTTP (pokud chcete vložit dva fragmenty zásad).
Upravte kód <outbound> tak, aby vypadal takhle:
<set-header name="X-Powered-By" exists-action="delete" /> <set-header name="X-AspNet-Version" exists-action="delete" />
(Nastavit hlavičku HTTP)Vyberte Uložit.
Nahradit původní adresy URL v těle odpovědi rozhraní API adresami URL brány služby APIM
Tato část ukazuje, jak skrýt původní adresy URL, které se zobrazí v textu odpovědi HTTP rozhraní API, a místo toho je přesměrovat na bránu SLUŽBY APIM.
Test původní odpovědi
Původní odpověď zobrazíte následovně:
Vyberte Demo Conference API > Test.
Vyberte operaci GetSpeakers a vyberte Odeslat.
Jak vidíte, odpověď obsahuje původní back-endové adresy URL:
Nastavení zásady transformací
- Vyberte Demo Conference API All > operations > Design.
- V části Zpracování odchozích přenosů vyberte ikonu editoru kódu ( </> ).
- Umístěte kurzor do < elementu > outbound a vyberte Zobrazit fragmenty kódu v pravém horním rohu.
- V pravém okně v části Zásady transformace vyberte Mask URLs in content (Maskovat adresy URL v obsahu).
- Vyberte Uložit.
Ochránit rozhraní API přidáním zásady omezování četnosti (omezení využití sítě)
Tato část ukazuje, jak přidat ochranu back-endovému rozhraní API nakonfigurováním omezování četnosti. Můžete například chtít omezit rychlost volání rozhraní API, aby vývojáři rozhraní API nevyužili příliš. V tomto příkladu je limit nastavený na 3 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.
Vyberte Demo Conference API All > operations > Design.
V části Zpracování na příchozích přenosech vyberte ikonu editoru kódu ( </> ).
Umístěte kurzor do < elementu > inbound a v pravém horním rohu vyberte Zobrazit fragmenty kódu.
V pravém okně v části Zásady omezení přístupu vyberte + Omezit frekvenci volání na klíč.
Upravte kód rate-limit-by-key (v <inbound> elementu ) následujícím kódem:
<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
Otestovat transformace
Když se v tomto okamžiku podíváte na kód v editoru kódu, vaše zásady vypadají takhle:
<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
Vyberte Demo Conference API > Test.
Vyberte operaci GetSpeakers a vyberte Odeslat.
Jak vidíte, záhlaví jsou odříznutá:
Test nahrazené adresy URL
Vyberte Demo Conference API > Test.
Vyberte operaci GetSpeakers a vyberte Odeslat.
Jak vidíte, adresa URL byla nahrazena.
Test omezování četnosti (omezení využití sítě)
Vyberte Demo Conference API > Test.
Vyberte operaci GetSpeakers. Třikrát po sobě vyberte Odeslat.
Po odeslání požadavku 3krát se vám vyžádá odpověď 429 Příliš mnoho požadavků.
Počkejte asi 15 sekund a 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
- Nahradit původní adresy URL v těle odpovědi rozhraní API adresami URL brány služby APIM
- 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: