Transformera och skydda ditt APITransform and protect your API

I kursen visas hur du kan transformera ditt API så att det inte avslöjar någon privat serverdelsinformation.The tutorial shows how to transform your API so it does not reveal a private backend info. Du vill kanske dölja information om teknikstacken som körs på serverdelen.For example, you might want to hide the info about technology stack that is running on the backend. Kanske vill du också dölja de ursprungliga URL:er som visas i brödtexten i API:ets HTTP-svar och istället omdirigera dem till APIM-gatewayen.You might also want to hide original URLs that appear in the body of API's HTTP response and instead redirect them to the APIM gateway.

Den här självstudiekursen beskriver också hur du enkelt kan skydda ditt serverdels-API genom att konfigurera frekvensbegränsningar med Azure API Management.This tutorial also shows you how easy it is to add protection for your backend API by configuring rate limit with Azure API Management. Du vill kanske t.ex. begränsa det antal gånger som API:et anropas, så att det inte överutnyttjas av utvecklarna.For example, you may want to limit a number of calls the API is called so it is not overused by developers. Mer information finns i API Management-principerFor more information, see API Management policies

I den här guiden får du lära dig att:In this tutorial, you learn how to:

  • Omvandla ett API och ta bort svarshuvudenTransform an API to strip response headers
  • Ersätt ursprungliga URL:er i API-svarets brödtext med URL:er för APIM-gatewayenReplace original URLs in the body of the API response with APIM gateway URLs
  • Skydda ett API genom att lägga till en princip för frekvensbegränsningar (begränsning)Protect an API by adding rate limit policy (throttling)
  • Testa omvandlingarnaTest the transformations

Principer

KravPrerequisites

Gå till API Management-instansenGo to your API Management instance

  1. I Azure Portal söker du efter och väljer API Management Services.In the Azure portal, search for and select API Management services.

    Välj API Management tjänster

  2. På skärmen API Management väljer du API Management-instansen.On the API Management screen, select your API Management instance.

    Välj din API Management-instans

Omvandla ett API och ta bort svarshuvudenTransform an API to strip response headers

Det här avsnittet visar hur du kan dölja HTTP-huvuden som du inte vill visa för användarna.This section shows how to hide the HTTP headers that you do not want to show to your users. Följande huvuden tas bort i HTTP-svaret i det här exemplet:In this example, the following headers get deleted in the HTTP response:

  • X-Powered-ByX-Powered-By
  • X-AspNet-VersionX-AspNet-Version

Testa det ursprungliga svaretTest the original response

Visa det ursprungliga svaret:To see the original response:

  1. I din APIM-tjänstinstans väljer du APIs (API:er) under API MANAGEMENT (API-HANTERING).In your APIM service instance, select APIs (under API MANAGEMENT).
  2. Klicka på Demo Conference API i API-listan.Click Demo Conference API from your API list.
  3. Klicka på fliken Test överst på skärmen.Click the Test tab, on the top of the screen.
  4. Välj åtgärden GetSpeakers.Select the GetSpeakers operation.
  5. Klicka på knappen Skicka längst ned på skärmen.Press the Send button, at the bottom of the screen.

Det ursprungliga svaret ska se ut så här:The original response should look like this:

Principer

Ange en transformationsprincipSet the transformation policy

Ange utgående princip

  1. Välj Demokonferens-API.Select Demo Conference API.

  2. Överst på skärmen väljer du fliken Design.On the top of the screen, select Design tab.

  3. Välj alla åtgärder.Select All operations.

  4. I avsnittet Utgående bearbetning klickar du på ikonen </>.In the Outbound processing section, click the </> icon.

  5. Placera markören inuti det ** <utgående> ** elementet.Position the cursor inside the <outbound> element.

  6. Klicka på + Konfigurera HTTP-huvud två gånger under Transformationsprinciper i det högra fönstret (så infogas två principkodavsnitt).In the right window, under Transformation policies, click + Set HTTP header twice (to insert two policy snippets).

    Principer

  7. Ändra den ** <utgående>** koden så att den ser ut så här:Modify your <outbound> code to look like this:

    <set-header name="X-Powered-By" exists-action="delete" />
    <set-header name="X-AspNet-Version" exists-action="delete" />
    

    Principer

  8. Klicka på knappen Spara.Click the Save button.

Ersätt ursprungliga URL:er i API-svarets brödtext med URL:er för APIM-gatewayenReplace original URLs in the body of the API response with APIM gateway URLs

I det här avsnittet visas hur du kan dölja de ursprungliga URL:er som visas i brödtexten i API:ets HTTP-svar och istället omdirigera dem till APIM-gatewayen.This section shows how to hide original URLs that appear in the body of API's HTTP response and instead redirect them to the APIM gateway.

Testa det ursprungliga svaretTest the original response

Visa det ursprungliga svaret:To see the original response:

  1. Välj Demokonferens-API.Select Demo Conference API.

  2. Klicka på fliken Test överst på skärmen.Click the Test tab, on the top of the screen.

  3. Välj åtgärden GetSpeakers.Select the GetSpeakers operation.

  4. Klicka på knappen Skicka längst ned på skärmen.Press the Send button, at the bottom of the screen.

    Som du kan se så ser det ursprungliga svaret ut så här:As you can see the original response looks like this:

    Principer

Ange en transformationsprincipSet the transformation policy

  1. Välj Demokonferens-API.Select Demo Conference API.

  2. Välj alla åtgärder.Select All operations.

  3. Överst på skärmen väljer du fliken Design.On the top of the screen, select Design tab.

  4. I avsnittet Utgående bearbetning klickar du på ikonen </>.In the Outbound processing section, click the </> icon.

  5. Placera markören inuti det ** <> utgående** elementet och klicka på knappen Infoga princip i det övre högra hörnet.Position the cursor inside the <outbound> element and click Insert policy button at the top right corner.

  6. Klicka på + Sök och ersätt sträng i brödtext under Transformationsprinciper i det högra fönstret.In the right window, under Transformation policies, click + Find and replace string in body.

  7. Ersätt URL:en så att den matchar APIM-gatewayen genom att ändra din find-and-replace-kod (i <outbound>-elementet).Modify your find-and-replace code (in the <outbound> element) to replace the URL to match your APIM gateway. Ett exempel:For example:

    <find-and-replace from="://conferenceapi.azurewebsites.net" to="://apiphany.azure-api.net/conference"/>
    

Skydda ett API genom att lägga till en princip för frekvensbegränsningar (begränsning)Protect an API by adding rate limit policy (throttling)

I det här avsnittet visas hur du lägger till skydd för ditt serverdels-API genom att konfigurera frekvensbegränsningar.This section shows how to add protection for your backend API by configuring rate limits. Du vill kanske t.ex. begränsa det antal gånger som API:et anropas, så att det inte överutnyttjas av utvecklarna.For example, you may want to limit a number of calls the API is called so it is not overused by developers. I det här exemplet har gränsen angetts till 3 anrop per 15 sekunder för varje prenumerations-ID. Efter 15 sekunder kan en utvecklare försöka anropa API: et igen.In this example, the limit is set to 3 calls per 15 seconds for each subscription Id. After 15 seconds, a developer can retry calling the API.

Ange princip för inkommande

  1. Välj Demokonferens-API.Select Demo Conference API.

  2. Välj alla åtgärder.Select All operations.

  3. Överst på skärmen väljer du fliken Design.On the top of the screen, select Design tab.

  4. I avsnittet Inkommande bearbetning klickar du på ikonen </>.In the Inbound processing section, click the </> icon.

  5. Placera markören inuti det ** <inkommande> ** elementet.Position the cursor inside the <inbound> element.

  6. Klicka på + Begränsa anropsfrekvens per nyckel under Principer för åtkomstbegränsning i det högra fönstret.In the right window, under Access restriction policies, click + Limit call rate per key.

  7. Ändra din rate-limit-by-key-kod (i <inbound>-elementet) till följande kod:Modify your rate-limit-by-key code (in the <inbound> element) to the following code:

    <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
    

Testa omvandlingarnaTest the transformations

Nu ser dina principer ut så här i kodredigeraren:At this point if you look at the code in the code editor, your policies look like this:

<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" />
        <find-and-replace from="://conferenceapi.azurewebsites.net:443" to="://apiphany.azure-api.net/conference"/>
        <find-and-replace from="://conferenceapi.azurewebsites.net" to="://apiphany.azure-api.net/conference"/>
        <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.The rest of this section tests policy transformations that you set in this article.

Testa borttagna svarshuvudenTest the stripped response headers

  1. Välj Demokonferens-API.Select Demo Conference API.

  2. Välj fliken Test.Select the Test tab.

  3. Klicka på åtgärden GetSpeakers.Click the GetSpeakers operation.

  4. Tryck på Skicka.Press Send.

    Som du ser så har rubrikerna tagits bort:As you can see the headers have been stripped:

    Principer

Testa den ersatta URL:enTest the replaced URL

  1. Välj Demokonferens-API.Select Demo Conference API.

  2. Välj fliken Test.Select the Test tab.

  3. Klicka på åtgärden GetSpeakers.Click the GetSpeakers operation.

  4. Tryck på Skicka.Press Send.

    Som du ser har URL:en ersatts.As you can see the URL has been replaced.

    Principer

Testa frekvensgränsen (begränsningen)Test the rate limit (throttling)

  1. Välj Demokonferens-API.Select Demo Conference API.

  2. Välj fliken Test.Select the Test tab.

  3. Klicka på åtgärden GetSpeakers.Click the GetSpeakers operation.

  4. Tryck på Skicka tre gånger i rad.Press Send three times in a row.

    När du har skickat förfrågan 3 gånger får du svaret 429 För många förfrågningar.After sending the request 3 times, you get 429 Too many requests response.

  5. Vänta 15 sekunder eller så och tryck på Skicka igen.Wait 15 seconds or so and press Send again. Den här gången bör få svaret 200 OK.This time you should get a 200 OK response.

    Begränsning

VideoVideo

Nästa stegNext steps

I den här självstudiekursen lärde du dig att:In this tutorial, you learned how to:

  • Omvandla ett API och ta bort svarshuvudenTransform an API to strip response headers
  • Ersätt ursprungliga URL:er i API-svarets brödtext med URL:er för APIM-gatewayenReplace original URLs in the body of the API response with APIM gateway URLs
  • Skydda ett API genom att lägga till en princip för frekvensbegränsningar (begränsning)Protect an API by adding rate limit policy (throttling)
  • Testa omvandlingarnaTest the transformations

Gå vidare till nästa kurs:Advance to the next tutorial: