Självstudie: Transformera och skydda ditt API

GÄLLER FÖR: Alla API Management-nivåer

I den här självstudien får du lära dig hur du konfigurerar vanliga principer för att transformera ditt API. Du kanske vill transformera ditt API så att det inte visar information om privata serverdelar. Genom att transformera ett API kan du dölja teknikstackens information som körs i serverdelen eller dölja de ursprungliga URL:er som visas i brödtexten i API:ets HTTP-svar.

I den här självstudien beskrivs också hur du lägger till skydd i serverdels-API:et genom att konfigurera en hastighetsbegränsningsprincip så att API:et inte överanvänds av utvecklare. Fler principalternativ finns i API Management-principer.

Kommentar

Som standard konfigurerar API Management en global forward-request princip. Principen forward-request krävs för att gatewayen ska kunna slutföra en begäran till en serverdelstjänst.

I den här självstudien lär du dig att:

  • Omvandla ett API och ta bort svarshuvuden
  • Ersätt ursprungliga URL:er i api-svarets brödtext med API Management-gateway-URL:er
  • Skydda ett API genom att lägga till en hastighetsbegränsningsprincip (begränsning)
  • Testa omvandlingarna

Principer i portalen

Förutsättningar

Gå till API Management-instansen

  1. I Azure-portalen söker du efter och väljer API Management-tjänster.

    Välj API Management-tjänster

  2. På sidan API Management-tjänster väljer du din API Management-instans.

    Välj 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. Ta till exempel bort följande rubriker i HTTP-svaret:

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

Testa det ursprungliga svaret

Visa det ursprungliga svaret:

  1. I din API Management-tjänstinstans väljer du API:er.
  2. Välj Demo Conference API i din API-lista.
  3. Välj fliken Test överst på skärmen.
  4. Välj åtgärden GetSpeakers och välj sedan Skicka.

Det ursprungliga API-svaret bör se ut ungefär så här:

Ursprungligt API-svar

Som du ser innehåller svaret rubrikerna X-AspNet-Version och X-Powered-By .

Ange en transformationsprincip

Det här exemplet visar hur du använder den formulärbaserade principredigeraren, vilket hjälper dig att konfigurera många principer utan att behöva redigera princip-XML-uttryck direkt.

  1. Välj Demo Conference API>Design>Alla åtgärder.

  2. I avsnittet Utgående bearbetning väljer du + Lägg till princip.

    Gå till utgående princip

  3. I fönstret Lägg till utgående princip väljer du Ange rubriker.

    Ange HTTP-huvudprincip

  4. Gör följande för att konfigurera principen för uppsättningsrubriker:

    1. Under Namn anger du X-Powered-By. Under Åtgärd väljer du Ta bort.
    2. Välj + Lägg till rubrik.
    3. Under Namn anger du X-AspNet-Version. Under Åtgärd väljer du Ta bort.

    Ange HTTP-huvud

  5. Välj Spara. Två principelement för set-header visas i avsnittet Utgående bearbetning .

Ersätt ursprungliga URL:er i api-svarets brödtext med API Management-gateway-URL:er

Det här avsnittet visar hur du ersätter ursprungliga URL:er som visas i brödtexten i API:ets HTTP-svar med API Management-gateway-URL:er. Du kanske vill dölja de ursprungliga url:erna för serverdelen från användare.

Testa det ursprungliga svaret

Visa det ursprungliga svaret:

  1. Välj Demo Conference API>Test.

  2. Välj åtgärden GetSpeakers och välj sedan Skicka.

    Som du ser innehåller svaret de ursprungliga url:erna för serverdelen:

    Ursprungliga URL:er som svar

Ange en transformationsprincip

I det här exemplet använder du principkodredigeraren för att lägga till princip-XML-kodfragmentet direkt i principdefinitionen.

  1. Välj Demo Conference API>Design>Alla åtgärder.

  2. I avsnittet Utgående bearbetning väljer du kodredigerarens (</>) ikon.

    Navigera till kodredigeraren för utgående princip

  3. Placera markören inuti elementet <outbound> på en tom rad. Välj sedan Visa kodfragment i det övre högra hörnet på skärmen.

    Välj visa kodfragment

  4. I det högra fönstret går du till Transformeringsprinciper och väljer Maskera URL:er i innehåll.

    Elementet <redirect-content-urls /> läggs till vid markören.

    Maskera URL:er i innehåll

  5. Välj Spara.

Skydda ett API genom att lägga till en princip för frekvensbegränsningar (begränsning)

Det här avsnittet visar hur du lägger till skydd i serverdels-API:et genom att konfigurera hastighetsgränser så att API:et inte överanvänds av utvecklare. I det här exemplet är gränsen inställd på tre anrop per 15 sekunder för varje prenumerations-ID. Efter 15 sekunder kan en utvecklare försöka anropa ett API igen.

  1. Välj Demo Conference API>Design>Alla åtgärder.

  2. I avsnittet Inkommande bearbetning väljer du kodredigerarens (</>) ikon.

    Navigera till inkommande princip

  3. Placera markören inuti elementet <inbound> på en tom rad. Välj sedan Visa kodfragment i det övre högra hörnet på skärmen.

    Ange princip för inkommande

  4. I det högra fönstret går du till Principer för åtkomstbegränsning och väljer Begränsa anropsfrekvens per nyckel.

    Elementet <rate-limit-by-key /> läggs till vid markören.

    Välj begränsa samtalsfrekvens per nyckel

  5. Ändra koden <rate-limit-by-key /> i elementet <inbound> till följande kod. Välj sedan Spara.

    <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 som följande 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>

I resten av det här avsnittet testas principtransformationer som du anger i den här övningen.

Testa borttagna svarshuvuden

  1. Välj Demo Conference API>Test.

  2. Välj åtgärden GetSpeakers och välj Skicka.

    Som du ser har rubrikerna tagits bort:

    Borttagna svarshuvuden

Testa den ersatta URL:en

  1. Välj Demo Conference API>Test.

  2. Välj åtgärden GetSpeakers och välj Skicka.

    Som du ser ersätts URL:erna.

    Ersatta URL:er

Testa frekvensgränsen (begränsningen)

  1. Välj Demo Conference API>Test.

  2. Välj åtgärden GetSpeakers. Välj Skicka tre gånger i rad.

    När du har skickat begäran tre gånger får du svaret 429 för många begäranden .

    för många begäranden

  3. Vänta i 15 sekunder eller mer och välj sedan 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 API Management-gateway-URL:er
  • Skydda ett API genom att lägga till en princip för frekvensbegränsningar (begränsning)
  • Testa omvandlingarna

Gå vidare till nästa kurs: