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
Voraussetzungen
- Machen Sie sich mit der Azure API Management-Terminologie vertraut.
- Machen Sie sich mit dem Konzept von Richtlinien in Azure API Management vertraut.
- Bearbeiten Sie den folgenden Schnellstart: Erstellen einer neuen Azure API Management-Dienstinstanz
- Absolvieren Sie außerdem das folgende Tutorial: Importieren und Veröffentlichen Ihrer ersten API.
Navigieren zur API Management-Instanz
Suchen Sie im Azure-Portal nach API Management-Dienste, und wählen Sie diese Option aus.
Wählen Sie auf der Seite API Management-Dienste Ihre API Management-Instanz aus.
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
- Wählen Sie in der API Management-Dienstinstanz APIs aus.
- Wählen Sie in der API-Liste Demo Conference API aus.
- Wählen Sie oben auf der Seite die Registerkarte Testen aus.
- Wählen Sie den Vorgang GetSpeakers und dann Senden aus.
Die ursprüngliche API-Antwort sollte etwa wie folgende Antwort aussehen:
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.
Wählen Sie Demo Conference API>Entwurf>Alle Vorgänge aus.
Klicken Sie im Abschnitt Ausgehende Verarbeitung auf Richtlinie hinzufügen.
Wählen Sie im Fenster Ausgehende Richtlinie hinzufügen die Option Header festlegen aus.
Gehen Sie zum Konfigurieren der Richtlinie zum Festlegen von Headern wie folgt vor:
- Geben Sie unter NameX-Powered-By ein.
- Lassen Sie Wert leer. Wenn ein Wert in der Dropdownliste angezeigt wird, löschen Sie ihn.
- Wählen Sie für Aktion die Option Löschen aus.
- Wählen Sie Speichern.
Wiederholen Sie die beiden vorherigen Schritte, um eine Richtlinie zum Festlegen von Headern hinzuzufügen, die den Header X-AspNet-Version löscht:
Nach der Konfiguration werden zwei set-header-Richtlinienelemente im Abschnitt Ausgehende Verarbeitung angezeigt.
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
Wählen Sie Demo Conference API>Testen aus.
Wählen Sie den Vorgang GetSpeakers und dann Senden aus.
Wie Sie sehen, enthält die Antwort die ursprünglichen Back-End-URLs:
Festlegen der Transformationsrichtlinie
In diesem Beispiel verwenden Sie den Richtliniencode-Editor, um den XML-Codeausschnitt für die Richtlinie direkt zur Richtliniendefinition hinzuzufügen.
Wählen Sie Demo Conference API>Entwurf>Alle Vorgänge aus.
Wählen Sie im Abschnitt Ausgehende Verarbeitung das Code-Editor-Symbol (</>) aus.
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.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.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.
Wählen Sie Demo Conference API>Entwurf>Alle Vorgänge aus.
Wählen Sie im Abschnitt Eingehende Verarbeitung das Code-Editor-Symbol (</>) aus.
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.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.Ä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
Wählen Sie Demo Conference API>Testen aus.
Wählen Sie den Vorgang GetSpeakers und dann Senden aus.
Wie Sie sehen, wurden die Header X-AspNet-Version und X-Powered-By entfernt:
Testen der ersetzten URL
Wählen Sie Demo Conference API>Testen aus.
Wählen Sie den Vorgang GetSpeakers und dann Senden aus.
Wie Sie sehen können, werden die URLs ersetzt.
Testen des Aufruflimits (Drosselung)
Wählen Sie Demo Conference API>Testen aus.
Wählen Sie den Vorgang GetSpeakers aus. Wählen Sie viermal nacheinander Senden aus.
Nachdem Sie die Anforderung viermal gesendet haben, erhalten Sie die Antwort 429 Zu viele Anforderungen.
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: