Självstudie: Transformera och skydda ditt API

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:erna som visas i brödtexten i API:ets HTTP-svar.

Den här självstudien beskriver 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.

Anteckning

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 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 API Management gateway-URL:er
  • Skydda ett API genom att lägga till en princip för hastighetsbegränsning (begränsning)
  • Testa omvandlingarna

Principer i portalen

Förutsättningar

Gå till API Management-instansen

  1. I Azure Portal 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, som hjälper dig att konfigurera många principer utan att behöva redigera XML-principinstruktionerna direkt.

  1. Välj Demo Conference API> Design All operations (Design>all operations).

  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 princip för HTTP-sidhuvud

  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 sidhuvud.
    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 All operations (Design>all operations).

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

    Gå till redigeraren för utgående principkod

  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 under Transformeringsprinciper väljer du 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 All operations (Design>all operations).

  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, under Principer för åtkomstbegränsning, väljer du Begränsa samtalsfrekvens 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: