Teilen über


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

Screenshot: API Management-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:

Screenshot: Ursprüngliche API-Antwort im Portal

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.

    Screenshot: Navigation zur Richtlinie für ausgehenden Datenverkehr im Portal

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

    Screenshot: Konfigurieren der Richtlinie zum Festlegen von Headern im Portal

  4. Gehen Sie zum Konfigurieren der Richtlinie zum Festlegen von Headern wie folgt vor:

    1. Geben Sie unter NameX-Powered-By ein.
    2. Lassen Sie Wert leer. Wenn ein Wert in der Dropdownliste angezeigt wird, löschen Sie ihn.
    3. Wählen Sie für Aktion die Option Löschen aus.
    4. Wählen Sie Speichern.
  5. Wiederholen Sie die beiden vorherigen Schritte, um eine Richtlinie zum Festlegen von Headern hinzuzufügen, die den Header X-AspNet-Version löscht:

  6. Nach der Konfiguration werden zwei set-header-Richtlinienelemente im Abschnitt Ausgehende Verarbeitung angezeigt.

    Screenshot: Richtlinien für ausgehenden Datenverkehr zum Festlegen von Headern im Portal

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:

    Screenshot: Ursprüngliche URLs in der Antwort im Portal

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.

    Screenshot: Navigation zum Code-Editor für die Richtlinie für ausgehenden Datenverkehr im Portal

  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.

    Screenshot: Auswählen von „Codeausschnitte anzeigen“ im Editor der Richtlinie für ausgehenden Datenverkehr im Portal

  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.

    Screenshot: Einfügen von „URLs maskieren“ in die Inhaltsrichtlinie im Portal

  5. Wählen Sie Speichern.

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.

    Screenshot: Navigation zum Code-Editor für die Richtlinie für eingehenden Datenverkehr im Portal

  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.

    Screenshot: Auswählen von „Codeausschnitte anzeigen“ im Editor der Richtlinie für eingehenden Datenverkehr im Portal

  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.

    Screenshot: Einfügen einer Richtlinie für Grenzwerte für Aufrufraten pro Schlüssel im Portal

  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 X-AspNet-Version und X-Powered-By entfernt:

    Screenshot: Entfernte Antwortheader im Portal

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.

    Screenshot: Ersetzte URLs im Portal

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.

    Screenshot: „Too Many Requests“ in der Antwort im Portal

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

Zusammenfassung

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

Nächste Schritte

Fahren Sie mit dem nächsten Tutorial fort: