Az API-k átalakítása és védelmeTransform and protect your API

Az oktatóanyag bemutatja, hogyan alakíthatja át úgy az API-kat, hogy azok ne fedjenek fel privát háttérinformációkat.The tutorial shows how to transform your API so it does not reveal a private backend info. Előfordulhat például, hogy szeretné elrejteni a háttérrendszeren futó technológiával kapcsolatos információkat.For example, you might want to hide the info about technology stack that is running on the backend. Vagy az is lehet, hogy el kívánja rejteni az API-k HTTP-válaszának szövegtörzsében megjelenő URL-címeket, és átirányítani azokat az APIM-átjáróhoz.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.

Ez az oktatóanyag továbbá ismerteti, milyen könnyű védelmet biztosítani a háttérbeli API-k számára a hívásszám korlátjának konfigurálásával az Azure API Management segítségével.This tutorial also shows you how easy it is to add protection for your backend API by configuring rate limit with Azure API Management. Korlátozhatja például az API hívásainak számát, hogy a fejlesztők ne vegyék túlzottan igénybe.For example, you may want to limit a number of calls the API is called so it is not overused by developers. További információt az API Management-szabályzatokkal kapcsolatos cikkben olvashat.For more information, see API Management policies

Eben az oktatóanyagban az alábbiakkal fog megismerkedni:In this tutorial, you learn how to:

  • Az API átalakítása a válaszfejlécek eltávolításáhozTransform an API to strip response headers
  • Az API-válasz szövegtörzsében szereplő eredeti URL-címek lecserélése az APIM-átjáró URL-címeireReplace original URLs in the body of the API response with APIM gateway URLs
  • API-k védelme hívásszám-korlátozási szabályzat (szabályozás) hozzáadásávalProtect an API by adding rate limit policy (throttling)
  • Az átalakítások teszteléseTest the transformations

Házirendek

ElőfeltételekPrerequisites

Nyissa meg az API Management-példányátGo to your API Management instance

  1. A Azure Portal keresse meg és válassza ki API Management szolgáltatásokelemet.In the Azure portal, search for and select API Management services.

    API Management szolgáltatások kiválasztása

  2. A API Management képernyőn válassza ki a API Management példányt.On the API Management screen, select your API Management instance.

    API Management példány kiválasztása

Az API átalakítása a válaszfejlécek eltávolításáhozTransform an API to strip response headers

Ez a szakasz azt mutatja be, hogyan rejtheti el a HTTP-fejléceket, amelyeket nem kíván megjeleníteni a felhasználók számára.This section shows how to hide the HTTP headers that you do not want to show to your users. Ebben a példában a következő fejlécek lesznek törölve a HTTP-válaszból:In this example, the following headers get deleted in the HTTP response:

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

Az eredeti válasz teszteléseTest the original response

Az eredeti válasz megtekintése:To see the original response:

  1. Az APIM-szolgáltatáspéldányban válassza az API-k lehetőséget (az API Management területen).In your APIM service instance, select APIs (under API MANAGEMENT).
  2. Kattintson a Demo Conference API elemre az API-k listájában.Click Demo Conference API from your API list.
  3. A képernyő felső részén kattintson a Teszt fülre.Click the Test tab, on the top of the screen.
  4. Válassza a GetSpeakers műveletet.Select the GetSpeakers operation.
  5. A képernyő alján kattintson a Küldés gombra.Press the Send button, at the bottom of the screen.

Az eredeti válasznak így kell kinéznie:The original response should look like this:

Házirendek

Az átalakítási szabályzat beállításaSet the transformation policy

Kimenő szabályzat beállítása

  1. Válassza a Demo Conference API lehetőséget.Select Demo Conference API.

  2. A képernyő felső részén válassza a Tervezés lapot.On the top of the screen, select Design tab.

  3. Válassza az összes műveletlehetőséget.Select All operations.

  4. A Kimenő feldolgozás szakaszban kattintson a </> ikonra.In the Outbound processing section, click the </> icon.

  5. Vigye a kurzort a ** <kimenő> ** elemen belülre.Position the cursor inside the <outbound> element.

  6. A jobb oldali ablak Átalakítási szabályzatok területén kattintson kétszer a + HTTP-fejléc beállítása elemre (két szabályzatkódrészlet beszúrásához).In the right window, under Transformation policies, click + Set HTTP header twice (to insert two policy snippets).

    Házirendek

  7. Módosítsa a ** <kimenő>** kódot a következőképpen: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" />
    

    Házirendek

  8. Kattintson a Mentés gombra.Click the Save button.

Az API-válasz szövegtörzsében szereplő eredeti URL-címek lecserélése az APIM-átjáró URL-címeireReplace original URLs in the body of the API response with APIM gateway URLs

Ez a szakasz bemutatja, hogy az API HTTP-válaszának szövegtörzsében megjelenő URL-címek hogyan rejthetőek el és irányíthatóak át az APIM-átjáróhoz.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.

Az eredeti válasz teszteléseTest the original response

Az eredeti válasz megtekintése:To see the original response:

  1. Válassza a Demo Conference API lehetőséget.Select Demo Conference API.

  2. A képernyő felső részén kattintson a Teszt fülre.Click the Test tab, on the top of the screen.

  3. Válassza a GetSpeakers műveletet.Select the GetSpeakers operation.

  4. A képernyő alján kattintson a Küldés gombra.Press the Send button, at the bottom of the screen.

    Az eredeti válasz a következőhöz hasonló:As you can see the original response looks like this:

    Házirendek

Az átalakítási szabályzat beállításaSet the transformation policy

  1. Válassza a Demo Conference API lehetőséget.Select Demo Conference API.

  2. Válassza az összes műveletlehetőséget.Select All operations.

  3. A képernyő felső részén válassza a Tervezés lapot.On the top of the screen, select Design tab.

  4. A Kimenő feldolgozás szakaszban kattintson a </> ikonra.In the Outbound processing section, click the </> icon.

  5. Vigye a kurzort a ** <kimenő> ** elembe, és kattintson a jobb felső sarokban található házirend beszúrása gombra.Position the cursor inside the <outbound> element and click Insert policy button at the top right corner.

  6. A jobb oldali ablak Átalakítási szabályzatok területén kattintson a + Sztring keresése és cseréje a szövegtörzsben elemre.In the right window, under Transformation policies, click + Find and replace string in body.

  7. A find-and-replace kódban (az <outbound> elemben) cserélje le az URL-címet az APIM-átjáróéra.Modify your find-and-replace code (in the <outbound> element) to replace the URL to match your APIM gateway. Például:For example:

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

API-k védelme hívásszám-korlátozási szabályzat (szabályozás) hozzáadásávalProtect an API by adding rate limit policy (throttling)

Ez a szakasz bemutatja, hogyan lehet védelmet biztosítani a háttérbeli API-k számára a hívásszám korlátjának konfigurálásával.This section shows how to add protection for your backend API by configuring rate limits. Korlátozhatja például az API hívásainak számát, hogy a fejlesztők ne vegyék túlzottan igénybe.For example, you may want to limit a number of calls the API is called so it is not overused by developers. Ebben a példában a korlátot a rendszer 15 másodpercenként 3 hívásra állítja az egyes előfizetés-azonosítók esetében. 15 másodperc elteltével a fejlesztők újra meghívhatják az API-t.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.

Bejövő szabályzat beállítása

  1. Válassza a Demo Conference API lehetőséget.Select Demo Conference API.

  2. Válassza az összes műveletlehetőséget.Select All operations.

  3. A képernyő felső részén válassza a Tervezés lapot.On the top of the screen, select Design tab.

  4. A Bejövő feldolgozás szakaszban kattintson a </> ikonra.In the Inbound processing section, click the </> icon.

  5. Vigye a kurzort a ** <bejövő> ** elemen belülre.Position the cursor inside the <inbound> element.

  6. A jobb oldali ablak Hozzáférés-korlátozási szabályzatok területén kattintson a + Hívások számának korlátozása kulcsonként elemre.In the right window, under Access restriction policies, click + Limit call rate per key.

  7. Módosítsa a rate-limit-by-key kódot (az <inbound> elemben) a következőre: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)" />
    

Az átalakítások teszteléseTest the transformations

Jelenleg, ha a kódszerkesztőben megtekinti a kódot, a szabályzatok így néznek ki: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>

A szakasz további részében teszteljük a szabályzatátalakításokat, amelyeket beállítottunk.The rest of this section tests policy transformations that you set in this article.

Az eltávolított válaszfejlécek teszteléseTest the stripped response headers

  1. Válassza a Demo Conference API lehetőséget.Select Demo Conference API.

  2. Kattintson a Teszt fülre.Select the Test tab.

  3. Kattintson a GetSpeakers műveletre.Click the GetSpeakers operation.

  4. Kattintson a Küldés gombra.Press Send.

    Láthatja, hogy a fejlécek el lettek távolítva:As you can see the headers have been stripped:

    Házirendek

A lecserélt URL-cím teszteléseTest the replaced URL

  1. Válassza a Demo Conference API lehetőséget.Select Demo Conference API.

  2. Kattintson a Teszt fülre.Select the Test tab.

  3. Kattintson a GetSpeakers műveletre.Click the GetSpeakers operation.

  4. Kattintson a Küldés gombra.Press Send.

    Láthatja, hogy az URL-cím le lett cserélve.As you can see the URL has been replaced.

    Házirendek

Hívásszám-korlát (szabályozás) teszteléseTest the rate limit (throttling)

  1. Válassza a Demo Conference API lehetőséget.Select Demo Conference API.

  2. Kattintson a Teszt fülre.Select the Test tab.

  3. Kattintson a GetSpeakers műveletre.Click the GetSpeakers operation.

  4. Kattintson a Küldés gombra háromszor egymás után.Press Send three times in a row.

    Miután 3 alkalommal elküldte a kérelmet, a 429 Túl sok kérelem választ kapja.After sending the request 3 times, you get 429 Too many requests response.

  5. Várjon 15 másodpercet, majd kattintson ismét a Küldés gombra.Wait 15 seconds or so and press Send again. Ezúttal a 200 OK választ kapja.This time you should get a 200 OK response.

    Throttling

VideóVideo

További lépésekNext steps

Ez az oktatóanyag bemutatta, hogyan végezheti el az alábbi műveleteket:In this tutorial, you learned how to:

  • Az API átalakítása a válaszfejlécek eltávolításáhozTransform an API to strip response headers
  • Az API-válasz szövegtörzsében szereplő eredeti URL-címek lecserélése az APIM-átjáró URL-címeireReplace original URLs in the body of the API response with APIM gateway URLs
  • API-k védelme hívásszám-korlátozási szabályzat (szabályozás) hozzáadásávalProtect an API by adding rate limit policy (throttling)
  • Az átalakítások teszteléseTest the transformations

Folytassa a következő oktatóanyaggal:Advance to the next tutorial: