Självstudie: Transformera och skydda ditt API
Självstudien visar hur du transformerar ditt API så att det inte visar information om den privata backend-enheten. Du kanske till exempel vill dölja informationen om teknikstacken som körs på backend. Du kanske också vill dölja ursprungliga URL:er som visas i brödtexten i API:ets HTTP-svar och i stället omdirigera dem till APIM-gatewayen.
Den här självstudien visar också hur enkelt det är att lägga till skydd för server-API:et genom att konfigurera en hastighetsbegränsning med Azure API Management. Du kanske till exempel vill begränsa frekvensen för API-anrop så att API:et inte överanvänds av utvecklare. Mer information finns i API Management principer.
I den här guiden får du lära dig att:
- Omvandla ett API och ta bort svarshuvuden
- Ersätt ursprungliga URL:er i API-svarets brödtext med URL:er för APIM-gatewayen
- Skydda ett API genom att lägga till en princip för hastighetsbegränsning (begränsning)
- Testa omvandlingarna
Förutsättningar
- Lär dig Azure API Management-terminologin.
- Förstå begreppet principer i Azure API Management.
- Slutför följande snabbstart: Skapa en Azure API Management instans.
- Slutför även följande självstudie: Importera och publicera ditt första API.
Gå till API Management-instansen
I Azure Portal du efter och väljer API Management tjänster.
På sidan API Management tjänster väljer du din API Management instans.
Omvandla ett API och ta bort svarshuvuden
Det här avsnittet visar hur du döljer DE HTTP-huvuden som du inte vill visa för användarna. Det här exemplet visar hur du tar bort följande huvuden i HTTP-svaret:
- X-Powered-By
- X-AspNet-Version
Testa det ursprungliga svaret
Visa det ursprungliga svaret:
- I din API Management-tjänstinstans väljer du API:er.
- Välj Demo Conference API (Demokonferens-API) i din API-lista.
- Välj fliken Test överst på skärmen.
- Välj åtgärden GetSpeakers och välj Skicka.
Det ursprungliga svaret bör se ut ungefär så här:
Som du ser innehåller svaret huvudena X-AspNet-Version och X-Powered-By.
Ange en transformationsprincip
Välj Demo Conference API Design All operations > > (Designa alla åtgärder för DemoKonferens-API).
I avsnittet Utgående bearbetning väljer du kodredigeraren ( </> ).
Placera markören i det < utgående > elementet och välj Visa kodfragment i det övre högra hörnet.
I det högra fönstret, under Transformeringsprinciper, väljer du Ange HTTP-huvud två gånger (för att infoga två principfragment).
Ändra koden <outbound> så här:
<set-header name="X-Powered-By" exists-action="delete" /> <set-header name="X-AspNet-Version" exists-action="delete" />
Välj Spara.
Ersätt ursprungliga URL:er i API-svarets brödtext med URL:er för APIM-gatewayen
Det här avsnittet visar hur du döljer ursprungliga URL:er som visas i brödtexten i API:ets HTTP-svar och i stället omdirigerar dem till APIM-gatewayen.
Testa det ursprungliga svaret
Visa det ursprungliga svaret:
Välj Demo Conference API Test (Testa demokonferens-API). >
Välj åtgärden GetSpeakers och välj Skicka.
Som du ser innehåller svaret url:erna för den ursprungliga backend-versionen:
Ange en transformationsprincip
- Välj Demo Conference API All operations Design (Design av alla > > åtgärder).
- I avsnittet Utgående bearbetning väljer du kodredigeraren ( </> ).
- Placera markören i det < utgående > elementet och välj Visa kodfragment i det övre högra hörnet.
- I det högra fönstret, under Transformeringsprinciper, väljer du Maskera URL:er i innehåll.
- Välj Spara.
Skydda ett API genom att lägga till en princip för frekvensbegränsningar (begränsning)
I det här avsnittet visas hur du lägger till skydd för ditt serverdels-API genom att konfigurera frekvensbegränsningar. Du kanske till exempel vill begränsa frekvensen för API-anrop så att API:et inte överanvänds av utvecklare. I det här exemplet är gränsen inställd på 3 anrop per 15 sekunder för varje prenumerations-ID. Efter 15 sekunder kan en utvecklare försöka att anropa API:et igen.
Välj Demo Conference API All operations Design (Design av alla > > åtgärder).
I avsnittet Inkommande bearbetning väljer du kodredigeraren ( </> ) ikon.
Placera markören i < det inkommande > elementet och välj Visa kodfragment i det övre högra hörnet.
I det högra fönstret under Principer för åtkomstbegränsning väljer du + Begränsa anropsfrekvensen per nyckel.
Ändra rate-limit-by-key-koden <inbound> (i -elementet) till följande kod:
<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
Testa omvandlingarna
Om du nu tittar på koden i kodredigeraren ser dina principer ut så här:
<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>
I resten av det här avsnittet testas principtransformationer som du anger i den här övningen.
Testa borttagna svarshuvuden
Välj Demo Conference API Test (Testa demokonferens-API). >
Välj åtgärden GetSpeakers och välj Skicka.
Som du ser har huvudena tagits bort:
Testa den ersatta URL:en
Välj Demo Conference API Test (Testa demokonferens-API). >
Välj åtgärden GetSpeakers och välj Skicka.
Som du ser har URL:en ersatts.
Testa frekvensgränsen (begränsningen)
Välj Demo Conference API Test (Testa demokonferens-API). >
Välj åtgärden GetSpeakers. Välj Skicka tre gånger i rad.
När du har skickat begäran 3 gånger får du svaret 429 För många begäranden.
Vänta i 15 sekunder och välj Skicka igen. Den här gången bör få svaret 200 OK.
Nästa steg
I den här självstudiekursen lärde du dig att:
- Omvandla ett API och ta bort svarshuvuden
- Ersätt ursprungliga URL:er i API-svarets brödtext med URL:er för APIM-gatewayen
- Skydda ett API genom att lägga till en princip för frekvensbegränsningar (begränsning)
- Testa omvandlingarna
Gå vidare till nästa kurs: