Dela via


Självstudie: Transformera och skydda ditt API

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

I den här självstudien lär du 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 skyddar ditt serverdels-API 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

Skärmbild av API Management-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:

Skärmbild av det ursprungliga API-svaret i portalen.

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.

    Skärmbild av hur du navigerar till en utgående princip i portalen.

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

    Skärmbild av hur du konfigurerar principen Ange rubriker i portalen.

  4. Gör följande för att konfigurera principen Ange rubriker:

    1. Under Namn anger du X-Powered-By.
    2. Lämna Värdet tomt. Om ett värde visas i listrutan tar du bort det.
    3. Under Åtgärd väljer du Ta bort.
    4. Välj Spara.
  5. Upprepa de föregående två stegen för att lägga till en princip för uppsättningsrubriker som tar bort huvudet X-AspNet-Version :

  6. Efter konfigurationen visas två principelement för set-header i avsnittet Utgående bearbetning .

    Skärmbild av utgående principer för Ange huvuden i portalen.

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:

    Skärmbild av ursprungliga URL:er som svar i portalen.

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.

    Skärmbild av hur du navigerar till redigeraren för utgående principkod i portalen.

  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.

    Skärmbild av att välja visa kodfragment i utgående principredigerare i portalen.

  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.

    Skärmbild av hur du infogar mask-URL:er i innehållsprincipen i portalen.

  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.

    Skärmbild av hur du navigerar till redigeraren för inkommande principkod i portalen.

  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.

    Skärmbild av att välja visa kodfragment i redigeraren för inkommande principer i portalen.

  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.

    Skärmbild av hur du infogar gräns för anropsfrekvens per nyckelprincip i portalen.

  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 X-AspNet-Version och X-Powered-By tagits bort:

    Skärmbild som visar borttagna svarshuvuden i portalen.

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.

    Skärmbild som visar ersatta URL:er i portalen.

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 .

    Skärmbild som visar för många begäranden i svaret i portalen.

  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.

Sammanfattning

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

Nästa steg

Gå vidare till nästa kurs: