Transformieren und Schützen Ihrer APITransform and protect your API

Das Tutorial zeigt, wie Sie Ihre API so transformieren, dass keine Informationen zu einem privaten Back-End offengelegt werden.The tutorial shows how to transform your API so it does not reveal a private backend info. Beispielsweise möchten Sie vielleicht die Informationen zum Technologiestapel ausblenden, der auf dem Back-End ausgeführt wird.For example, you might want to hide the info about technology stack that is running on the backend. Sie können auch die ursprünglich im Textkörper der HTTP-Antwort der API angezeigten URLs ausblenden und stattdessen eine Umleitung an das APIM-Gateway durchführen.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.

In diesem Tutorial wird außerdem veranschaulicht, wie einfach Sie Ihre Back-End-API schützen können, indem Sie ein Aufruflimit mithilfe von API Management konfigurieren.This tutorial also shows you how easy it is to add protection for your backend API by configuring rate limit with Azure API Management. Beispielsweise können Sie die Anzahl von API-Aufrufen begrenzen, damit die API nicht übermäßig von den Entwicklern verwendet wird.For example, you may want to limit a number of calls the API is called so it is not overused by developers. Weitere Informationen finden Sie unter API Management-Richtlinien.For more information, see API Management policies

In diesem Tutorial lernen Sie Folgendes:In this tutorial, you learn how to:

  • Transformieren einer API zum Entfernen von AntwortheadernTransform an API to strip response headers
  • Ersetzen der ursprünglichen URLs im Textkörper der API-Antwort durch APIM-Gateway-URLsReplace original URLs in the body of the API response with APIM gateway URLs
  • Schützen einer API durch das Hinzufügen einer Richtlinie für ein Aufruflimit (Drosselung)Protect an API by adding rate limit policy (throttling)
  • Testen der TransformationenTest the transformations

Richtlinien

VoraussetzungenPrerequisites

Navigieren zur API Management-InstanzGo to your API Management instance

Navigieren zur API Management-Instanz

  1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal.

  2. Wählen Sie Alle Dienste aus.Select All services.

  3. Geben Sie im Suchfeld api managementein.In the search box, enter api management.

  4. Klicken Sie in den Suchergebnissen auf API Management-Dienste.In the search results, select API Management services.

  5. Wählen Sie Ihre API Management-Dienstinstanz aus.Select your API Management service instance.

Tipp

Klicken Sie auf den Stern, um API Management zu Ihren Favoriten im Azure-Portal hinzuzufügen.To add API Management to your favorites in the Azure portal, select the star.

Das API Management-Symbol (The API Management icon (API Management-Symbol) wird nun im linken Menü im Portal angezeigt.) now appears in the left menu in the portal.

Transformieren einer API zum Entfernen von AntwortheadernTransform an API to strip response headers

In diesem Abschnitt wird gezeigt, wie Sie die HTTP-Header ausblenden, die Sie nicht für Ihre Benutzer anzeigen möchten.This section shows how to hide the HTTP headers that you do not want to show to your users. In diesem Beispiel werden die folgenden Header in der HTTP-Antwort gelöscht:In this example, the following headers get deleted in the HTTP response:

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

Testen der ursprünglichen AntwortTest the original response

So zeigen Sie die ursprüngliche Antwort anTo see the original response:

  1. Wählen Sie in Ihrer APIM-Dienstinstanz APIs aus (unter API-VERWALTUNG).In your APIM service instance, select APIs (under API MANAGEMENT).
  2. Klicken Sie in der API-Liste auf Demo Conference API.Click Demo Conference API from your API list.
  3. Klicken Sie oben auf der Seite auf die Registerkarte Testen.Click the Test tab, on the top of the screen.
  4. Wählen Sie den Vorgang GetSpeakers aus.Select the GetSpeakers operation.
  5. Klicken Sie unten auf der Seite auf die Schaltfläche Senden.Press the Send button, at the bottom of the screen.

Die ursprüngliche Antwort sieht in etwa wie folgt aus:The original response should look like this:

Richtlinien

Festlegen der TransformationsrichtlinieSet the transformation policy

Festlegen der Richtlinie für ausgehenden Datenverkehr

  1. Wählen Sie Demo Conference API aus.Select Demo Conference API.

  2. Klicken Sie im oberen Seitenbereich auf die Registerkarte Entwurf.On the top of the screen, select Design tab.

  3. Wählen Sie Alle Vorgänge aus.Select All operations.

  4. Klicken Sie im Abschnitt Ausgehende Verarbeitung auf das Symbol </>.In the Outbound processing section, click the </> icon.

  5. Positionieren Sie den Cursor im <outbound>-Element.Position the cursor inside the <outbound> element.

  6. Klicken Sie im rechten Fenster unter Transformationsrichtlinien zweimal auf + HTTP-Header festlegen (um zwei Richtlinienausschnitte einzufügen).In the right window, under Transformation policies, click + Set HTTP header twice (to insert two policy snippets).

    Richtlinien

  7. Ändern Sie Ihren <outbound>-Code, sodass er folgendermaßen aussieht: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" />
    

    Richtlinien

  8. Klicken Sie auf die Schaltfläche Save .Click the Save button.

Ersetzen der ursprünglichen URLs im Textkörper der API-Antwort durch APIM-Gateway-URLsReplace original URLs in the body of the API response with APIM gateway URLs

In diesem Abschnitt wird gezeigt, wie Sie die ursprünglich im Textkörper der HTTP-Antwort der API angezeigten URLs ausblenden und stattdessen eine Umleitung an das APIM-Gateway durchführen.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.

Testen der ursprünglichen AntwortTest the original response

So zeigen Sie die ursprüngliche Antwort anTo see the original response:

  1. Wählen Sie Demo Conference API aus.Select Demo Conference API.

  2. Klicken Sie oben auf der Seite auf die Registerkarte Testen.Click the Test tab, on the top of the screen.

  3. Wählen Sie den Vorgang GetSpeakers aus.Select the GetSpeakers operation.

  4. Klicken Sie unten auf der Seite auf die Schaltfläche Senden.Press the Send button, at the bottom of the screen.

    Wie Sie sehen können, sieht die ursprüngliche Antwort so aus:As you can see the original response looks like this:

    Richtlinien

Festlegen der TransformationsrichtlinieSet the transformation policy

  1. Wählen Sie Demo Conference API aus.Select Demo Conference API.

  2. Wählen Sie Alle Vorgänge aus.Select All operations.

  3. Klicken Sie im oberen Seitenbereich auf die Registerkarte Entwurf.On the top of the screen, select Design tab.

  4. Klicken Sie im Abschnitt Ausgehende Verarbeitung auf das Symbol </>.In the Outbound processing section, click the </> icon.

  5. Positionieren Sie den Cursor im <outbound>-Element.Position the cursor inside the <outbound> element.

  6. Klicken Sie im rechten Fenster unter Transformationsrichtlinien auf + Zeichenfolge im Text suchen und ersetzen.In the right window, under Transformation policies, click + Find and replace string in body.

  7. Ändern Sie Ihren find-and-replace-Code (im Element <outbound>) ab, um die URL durch eine URL zu Ihrem APIM-Gateway zu ersetzen.Modify your find-and-replace code (in the <outbound> element) to replace the URL to match your APIM gateway. Beispiel: For example:

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

Schützen einer API durch das Hinzufügen einer Richtlinie für ein Aufruflimit (Drosselung)Protect an API by adding rate limit policy (throttling)

In diesem Abschnitt wird gezeigt, wie Sie Ihre Back-End-API schützen, indem Sie Aufruflimits konfigurieren.This section shows how to add protection for your backend API by configuring rate limits. Beispielsweise können Sie die Anzahl von API-Aufrufen begrenzen, damit die API nicht übermäßig von den Entwicklern verwendet wird.For example, you may want to limit a number of calls the API is called so it is not overused by developers. In diesem Beispiel wird das Limit für jede Abonnement-ID auf 3 Aufrufe pro 15 Sekunden festgelegt. Nach 15 Sekunden kann ein Entwickler die API erneut aufrufen.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.

Festlegen der Richtlinie für eingehenden Datenverkehr

  1. Wählen Sie Demo Conference API aus.Select Demo Conference API.

  2. Wählen Sie Alle Vorgänge aus.Select All operations.

  3. Klicken Sie im oberen Seitenbereich auf die Registerkarte Entwurf.On the top of the screen, select Design tab.

  4. Klicken Sie im Abschnitt Eingehende Verarbeitung auf das Symbol </>.In the Inbound processing section, click the </> icon.

  5. Positionieren Sie den Cursor im <inbound>-Element.Position the cursor inside the <inbound> element.

  6. Klicken Sie im rechten Fenster unter Richtlinien für die Zugriffsbeschränkung auf + Aufrufrate pro Schlüssel einschränken.In the right window, under Access restriction policies, click + Limit call rate per key.

  7. Modifizieren Sie Ihren rate-limit-by-key-Code (im <inbound>-Element) folgendermaßen: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)" />
    

Testen der TransformationenTest the transformations

Zu diesem Zeitpunkt sieht Ihre Richtlinie in etwa wie folgt aus, wenn Sie den Code im Code-Editor betrachten: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>

Im verbleibenden Teil dieses Abschnitts werden die Richtlinientransformationen getestet, die Sie in diesem Artikel festgelegt haben.The rest of this section tests policy transformations that you set in this article.

Testen der entfernten AntwortheaderTest the stripped response headers

  1. Wählen Sie Demo Conference API aus.Select Demo Conference API.

  2. Wählen Sie die Registerkarte Testen aus.Select the Test tab.

  3. Klicken Sie auf den Vorgang GetSpeakers.Click the GetSpeakers operation.

  4. Klicken Sie auf Senden.Press Send.

    Wie Sie sehen können, wurden die Header entfernt:As you can see the headers have been stripped:

    Richtlinien

Testen der ersetzten URLTest the replaced URL

  1. Wählen Sie Demo Conference API aus.Select Demo Conference API.

  2. Wählen Sie die Registerkarte Testen aus.Select the Test tab.

  3. Klicken Sie auf den Vorgang GetSpeakers.Click the GetSpeakers operation.

  4. Klicken Sie auf Senden.Press Send.

    Wie Sie sehen können, wurde die URL ersetzt.As you can see the URL has been replaced.

    Richtlinien

Testen des Aufruflimits (Drosselung)Test the rate limit (throttling)

  1. Wählen Sie Demo Conference API aus.Select Demo Conference API.

  2. Wählen Sie die Registerkarte Testen aus.Select the Test tab.

  3. Klicken Sie auf den Vorgang GetSpeakers.Click the GetSpeakers operation.

  4. Klicken Sie dreimal hintereinander auf Senden.Press Send three times in a row.

    Nachdem Sie die Anforderung dreimal gesendet haben, erhalten Sie die Antwort 429 Zu viele Anforderungen.After sending the request 3 times, you get 429 Too many requests response.

  5. Warten Sie etwa 15 Sekunden ab, und klicken Sie erneut auf Senden.Wait 15 seconds or so and press Send again. Jetzt sollten Sie die Antwort 200 OK erhalten.This time you should get a 200 OK response.

    Drosselung

VideoVideo

Nächste SchritteNext steps

In diesem Tutorial haben Sie Folgendes gelernt:In this tutorial, you learned how to:

  • Transformieren einer API zum Entfernen von AntwortheadernTransform an API to strip response headers
  • Ersetzen der ursprünglichen URLs im Textkörper der API-Antwort durch APIM-Gateway-URLsReplace original URLs in the body of the API response with APIM gateway URLs
  • Schützen einer API durch das Hinzufügen einer Richtlinie für ein Aufruflimit (Drosselung)Protect an API by adding rate limit policy (throttling)
  • Testen der TransformationenTest the transformations

Fahren Sie mit dem nächsten Tutorial fort:Advance to the next tutorial: