Tutorial: Transformieren und Schützen Ihrer API

GILT FÜR: Alle API Management-Ebenen

In diesem Tutorial erfahren Sie, wie Sie typische Richtlinien konfigurieren, um Ihre API zu transformieren. In diesem Tutorial erfahren Sie, wie Sie Ihre API so transformieren, dass sie keine privaten Back-End-Informationen preisgibt. Durch die Transformation einer API können Sie Informationen über den im Back-End ausgeführten Technologiestapel verbergen oder die ursprünglichen URLs im Textkörper der HTTP-Antwort der API verschleiern.

Das Tutorial erklärt auch, wie Sie Ihre Back-End-API schützen, indem Sie eine Richtlinie zur Ratenbegrenzung konfigurieren, damit die API von Entwicklern nicht überlastet wird. Weitere Richtlinienmöglichkeiten finden Sie unter API Management Richtlinien.

Hinweis

Standardmäßig konfiguriert API Management eine globale forward-request-Richtlinie. Die forward-request-Richtlinie ist für das Gateway erforderlich, Anforderungen an Back-End-Dienste durchzuführen.

In diesem Tutorial lernen Sie Folgendes:

  • Transformieren einer API zum Entfernen von Antwortheadern
  • Ersetzen der ursprünglichen URLs im Textkörper der API-Antwort durch API Management-Gateway-URLs
  • Schützen einer API durch das Hinzufügen einer Richtlinie für ein Aufruflimit (Drosselung)
  • Testen der Transformationen

Richtlinien im Portal

Voraussetzungen

Navigieren zur API Management-Instanz

  1. Suchen Sie im Azure-Portal nach API Management-Dienste, und wählen Sie diese Option aus.

    Auswählen von API Management-Dienste

  2. Wählen Sie auf der Seite API Management-Dienste Ihre API Management-Instanz aus.

    Auswählen Ihrer API Management-Instanz

Transformieren einer API zum Entfernen von Antwortheadern

In diesem Abschnitt wird gezeigt, wie Sie die HTTP-Header ausblenden, die für Ihre Benutzer nicht angezeigt werden sollen. Löschen Sie zum Beispiel die folgenden Header in der HTTP-Antwort:

  • X-Powered-By
  • X-AspNet-Version

Testen der ursprünglichen Antwort

So zeigen Sie die ursprüngliche Antwort an

  1. Wählen Sie in der API Management-Dienstinstanz APIs aus.
  2. Wählen Sie in der API-Liste Demo Conference API aus.
  3. Wählen Sie oben auf der Seite die Registerkarte Testen aus.
  4. Wählen Sie den Vorgang GetSpeakers und dann Senden aus.

Die ursprüngliche API-Antwort sollte etwa wie folgende Antwort aussehen:

Ursprüngliche API-Antwort

Wie Sie sehen, enthält die Antwort die Header X-AspNet-Version und X-Powered-By.

Festlegen der Transformationsrichtlinie

In diesem Beispiel wird gezeigt, wie Sie den formularbasierten Richtlinien-Editor verwenden, mit dem Sie viele Richtlinien ohne direktes Bearbeiten von XML-Anweisungen konfigurieren können.

  1. Wählen Sie Demo Conference API>Entwurf>Alle Vorgänge aus.

  2. Klicken Sie im Abschnitt Ausgehende Verarbeitung auf Richtlinie hinzufügen.

    Zu ausgehender Richtlinie navigieren

  3. Wählen Sie im Fenster Ausgehende Richtlinie hinzufügen die Option Header festlegen aus.

    Richtlinie für HTTP-Header festlegen

  4. So konfigurieren Sie die Richtlinie zum Festlegen von Headern:

    1. Geben Sie unter NameX-Powered-By ein. Wählen Sie für Aktion die Option Löschen aus.
    2. Wählen Sie + Header hinzufügen aus.
    3. Geben Sie unter NameX-AspNet-Version ein. Wählen Sie für Aktion die Option Löschen aus.

    HTTP-Header setzen

  5. Wählen Sie Speichern aus. Zwei set-header-Richtlinienelemente erscheinen im Abschnitt Ausgehende Verarbeitung.

Ersetzen der ursprünglichen URLs im Textkörper der API-Antwort durch API Management-Gateway-URLs

In diesem Abschnitt wird gezeigt, wie Sie die ursprünglich im Textkörper der HTTP-Antwort der API angezeigten URLs durch API Management-Gateway-URLs ersetzen. Möglicherweise möchten Sie die ursprünglichen Back-End-URLs vor Benutzern verbergen.

Testen der ursprünglichen Antwort

So zeigen Sie die ursprüngliche Antwort an

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

  2. Wählen Sie den Vorgang GetSpeakers und dann Senden aus.

    Wie Sie sehen, enthält die Antwort die ursprünglichen Back-End-URLs:

    Ursprüngliche URLs in der Antwort

Festlegen der Transformationsrichtlinie

In diesem Beispiel verwenden Sie den Richtliniencode-Editor, um den XML-Codeausschnitt für die Richtlinie direkt zur Richtliniendefinition hinzuzufügen.

  1. Wählen Sie Demo Conference API>Entwurf>Alle Vorgänge aus.

  2. Wählen Sie im Abschnitt Ausgehende Verarbeitung das Code-Editor-Symbol (</>) aus.

    Navigation zum Code-Editor für ausgehende Richtlinien

  3. Positionieren Sie den Cursor innerhalb des <outbound>-Elements in einer leeren Zeile. Wählen Sie dann Codeausschnitte anzeigen in der oberen rechten Ecke des Bildschirms aus.

    Auswählen der Option zur Anzeige von Codeschnipseln

  4. Wählen Sie im rechten Fenster unter Transformationsrichtlinien die Option URLs in Inhalt maskieren aus.

    Das Element <redirect-content-urls /> wird an der Position des Cursors hinzugefügt.

    URLs in Inhalt maskieren

  5. Wählen Sie Speichern aus.

Schützen einer API durch das Hinzufügen einer Richtlinie für ein Aufruflimit (Drosselung)

In diesem Abschnitt wird gezeigt, wie Sie Ihre Back-End-API schützen, indem Sie Ratenbegrenzungen konfigurieren, sodass die API von Entwicklern nicht überlastet ist. In diesem Beispiel wird das Limit für jede Abonnement-ID auf drei Aufrufe pro 15 Sekunden festgelegt. Nach 15 Sekunden kann ein Entwickler eine API erneut aufrufen.

  1. Wählen Sie Demo Conference API>Entwurf>Alle Vorgänge aus.

  2. Wählen Sie im Abschnitt Eingehende Verarbeitung das Code-Editor-Symbol (</>) aus.

    Navigation zur eingehenden Richtlinie

  3. Positionieren Sie den Cursor innerhalb des <inbound>-Elements in einer leeren Zeile. Wählen Sie dann Codeausschnitte anzeigen in der oberen rechten Ecke des Bildschirms aus.

    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.

    Das Element <rate-limit-by-key /> wird an der Position des Cursors hinzugefügt.

    Auswählen von „Aufrufrate pro Schlüssel beschränken“

  5. Ändern Sie Ihren <rate-limit-by-key />-Code im Element <inbound> folgendermaßen ab: Klicken Sie dann auf Speichern.

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

Testen der Transformationen

Zu diesem Zeitpunkt sieht Ihre Richtlinie in etwa wie folgt aus, wenn Sie den Code im Code-Editor betrachten:

<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.

Testen der entfernten Antwortheader

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

  2. Wählen Sie den Vorgang GetSpeakers und dann Senden aus.

    Wie Sie sehen, wurden die Header entfernt:

    Entfernte Antwortheader

Testen der ersetzten URL

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

  2. Wählen Sie den Vorgang GetSpeakers und dann Senden aus.

    Wie Sie sehen können, werden die URLs ersetzt.

    Ersetzte URLs

Testen des Aufruflimits (Drosselung)

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

  2. Wählen Sie den Vorgang GetSpeakers aus. Wählen Sie dreimal hintereinander Senden aus.

    Nachdem Sie die Anforderung dreimal gesendet haben, erhalten Sie die Antwort 429 Zu viele Anforderungen.

    Zu viele Anforderungen

  3. Warten Sie 15 Sekunden oder länger, und wählen Sie dann erneut Senden aus. Jetzt sollten Sie die Antwort 200 OK erhalten.

Nächste Schritte

In diesem Tutorial haben Sie Folgendes gelernt:

  • Transformieren einer API zum Entfernen von Antwortheadern
  • Ersetzen der ursprünglichen URLs im Textkörper der API-Antwort durch API Management-Gateway-URLs
  • Schützen einer API durch das Hinzufügen einer Richtlinie für ein Aufruflimit (Drosselung)
  • Testen der Transformationen

Fahren Sie mit dem nächsten Tutorial fort: