Tutorial: Transformieren und Schützen Ihrer APITutorial: Transform and protect your API

Das Tutorial zeigt, wie Sie Ihre API so transformieren, dass keine Informationen zum privaten Back-End offengelegt werden.The tutorial shows how to transform your API so it does not reveal info about the private backend. 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 the 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 the 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 Azure API Management konfigurieren.This tutorial also shows you how easy it is to add protection for your backend API by configuring a rate limit with Azure API Management. Beispielsweise können Sie die Häufigkeit von API-Aufrufen begrenzen, damit die API von Entwicklern nicht übermäßig genutzt wird.For example, you may want to limit the rate of API calls so the API isn't 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 a rate limit policy (throttling)
  • Testen der TransformationenTest the transformations

Richtlinien im Portal

VoraussetzungenPrerequisites

Navigieren zur API Management-InstanzGo to your API Management instance

  1. Suchen Sie im Azure-Portal nach API Management-Dienste, und wählen Sie die entsprechende Option aus.In the Azure portal, search for and select API Management services.

    Auswählen von API Management-Dienste

  2. Wählen Sie auf der Seite API Management-Dienste Ihre API Management-Instanz aus.On the API Management services page, select your API Management instance.

    Auswählen Ihrer API Management-Instanz

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 für Ihre Benutzer nicht angezeigt werden sollen.This section shows how to hide the HTTP headers that you don't want to show to your users. Dieses Beispiel zeigt, wie Sie die folgenden Header in der HTTP-Antwort löschen:This example shows how to delete the following headers 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 der API Management-Dienstinstanz APIs aus.In your API Management service instance, select APIs.
  2. Wählen Sie in der API-Liste Demo Conference API aus.Select Demo Conference API from your API list.
  3. Wählen Sie oben auf der Seite die Registerkarte Testen aus.Select the Test tab, on the top of the screen.
  4. Wählen Sie den Vorgang GetSpeakers und dann Senden aus.Select the GetSpeakers operation and select Send.

Die ursprüngliche Antwort sollte etwa wie folgt aussehen:The original response should look similar to the following:

Ursprüngliche API-Antwort

Wie Sie sehen, enthält die Antwort die Header X-AspNet-Version und X-Powered-By.As you can see, the response includes the X-AspNet-Version and X-Powered-By headers.

Festlegen der TransformationsrichtlinieSet the transformation policy

  1. Wählen Sie Demo Conference API > Entwurf > Alle Vorgänge aus.Select Demo Conference API > Design > All operations.

  2. Wählen Sie im Abschnitt Ausgehende Verarbeitung das Code-Editor-Symbol ( </> ) aus.In the Outbound processing section, select the code editor (</>) icon.

    Zu ausgehender Richtlinie navigieren

  3. Positionieren Sie den Cursor im Element <outbound> , und wählen Sie in der oberen rechten Ecke die Schaltfläche Codeausschnitte anzeigen aus.Position the cursor inside the <outbound> element and select Show snippets at the top right corner.

  4. Wählen Sie im rechten Fenster unter Transformationsrichtlinien zweimal die Option HTTP-Header festlegen aus (um zwei Richtlinienausschnitte einzufügen).In the right window, under Transformation policies, select Set HTTP header twice (to insert two policy snippets).

    Richtlinie für HTTP-Header festlegen

  5. Ä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" />
    

    HTTP-Header setzen

  6. Wählen Sie Speichern aus.Select Save.

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 the 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 > Testen aus.Select Demo Conference API > Test.

  2. Wählen Sie den Vorgang GetSpeakers und dann Senden aus.Select the GetSpeakers operation and select Send.

    Wie Sie sehen, enthält die Antwort die ursprünglichen Back-End-URLs:As you can see, the response includes the original backend URLs:

    Ursprüngliche URLs in der Antwort

Festlegen der TransformationsrichtlinieSet the transformation policy

  1. Wählen Sie Demo Conference API > Alle Vorgänge > Entwurf aus.Select Demo Conference API > All operations > Design.
  2. Wählen Sie im Abschnitt Ausgehende Verarbeitung das Code-Editor-Symbol ( </> ) aus.In the Outbound processing section, select the code editor (</>) icon.
  3. Positionieren Sie den Cursor im Element <outbound> , und wählen Sie in der oberen rechten Ecke die Schaltfläche Codeausschnitte anzeigen aus.Position the cursor inside the <outbound> element and select Show snippets at the top right corner.
  4. Wählen Sie im rechten Fenster unter Transformationsrichtlinien die Option URLs in Inhalt maskieren aus.In the right window, under Transformation policies, select Mask URLs in content.
  5. Wählen Sie Speichern aus.Select Save.

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 Häufigkeit von API-Aufrufen begrenzen, damit die API von Entwicklern nicht übermäßig genutzt wird.For example, you may want to limit the rate of API calls so that the API isn't overused by developers. In diesem Beispiel wird das Limit für jede Abonnement-ID auf 3 Aufrufe pro 15 Sekunden festgelegt.In this example, the limit is set to 3 calls per 15 seconds for each subscription ID. Nach 15 Sekunden kann ein Entwickler die API erneut aufrufen.After 15 seconds, a developer can retry calling the API.

  1. Wählen Sie Demo Conference API > Alle Vorgänge > Entwurf aus.Select Demo Conference API > All operations > Design.

  2. Wählen Sie im Abschnitt Eingehende Verarbeitung das Code-Editor-Symbol ( </> ) aus.In the Inbound processing section, select the code editor (</>) icon.

  3. Positionieren Sie den Cursor im Element <inbound> , und wählen Sie in der oberen rechten Ecke die Schaltfläche Codeausschnitte anzeigen aus.Position the cursor inside the <inbound> element and select Show snippets at the top right corner.

    Festlegen der Richtlinie für eingehenden Datenverkehr

  4. Wählen Sie im rechten Fenster unter Richtlinien für die Zugriffsbeschränkung die Option + Aufrufrate pro Schlüssel einschränken.In the right window, under Access restriction policies, select + Limit call rate per key.

  5. Ändern Sie Ihren rate-limit-by-key-Code (im <inbound> -Element) folgendermaßen ab: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" />
     <redirect-content-urls />
     <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 > Testen aus.Select Demo Conference API > Test.

  2. Wählen Sie den Vorgang GetSpeakers und dann Senden aus.Select the GetSpeakers operation and select Send.

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

    Entfernte Antwortheader

Testen der ersetzten URLTest the replaced URL

  1. Wählen Sie Demo Conference API > Testen aus.Select Demo Conference API > Test.

  2. Wählen Sie den Vorgang GetSpeakers und dann Senden aus.Select the GetSpeakers operation and select Send.

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

    Ersetzte URL

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

  1. Wählen Sie Demo Conference API > Testen aus.Select Demo Conference API > Test.

  2. Wählen Sie den Vorgang GetSpeakers aus.Select the GetSpeakers operation. Wählen Sie dreimal hintereinander Senden aus.Select 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 the 429 Too many requests response.

    Zu viele Anforderungen

  3. Warten Sie etwa 15 Sekunden, und wählen Sie erneut Senden aus.Wait 15 seconds or so and select Send again. Jetzt sollten Sie die Antwort 200 OK erhalten.This time you should get a 200 OK response.

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: