Tutorial: Transformieren und Schützen Ihrer API

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

Policies in portal

Voraussetzungen

Navigieren zur API Management-Instanz

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

    Select API Management services

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

    Select your API Management instance

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:

Original API response

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.

    Navigate to outbound policy

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

    Set HTTP header policy

  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.

    Set HTTP header

  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:

    Original URLs in response

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.

    Navigate to outbound policy code editor

  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.

    Select show snippets

  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.

    Mask URLs in content

  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.

    Navigate to inbound policy

  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.

    Set inbound policy

  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.

    Select limit call rate per key

  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:

    Stripped response headers

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.

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

    Too many requests

  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: