Übung: Entfernen von Headerinformationen
Unternehmen, die Web-APIs veröffentlichen, müssen häufig die HTTP-Header sorgfältig steuern, die ihre APIs zurückgeben, vorzugsweise ohne den API-Quellcode umschreiben zu müssen.
Die Regierung hat beschlossen, Erhebungsdaten mit ihren Behörden über RESTful-APIs zu teilen. Die kritischen Anforderungen bestehen darin, dass die Daten sicher freigegeben werden und problemlos geändert werden können, um eine schnelle Integration zu ermöglichen. Als leitender Entwickler sind Sie dafür zuständig, ein API-Gateway zu erstellen. Über das Gateway veröffentlichen Sie eine RESTful-Erhebungs-API, die einen OpenAPI-Endpunkt unter Verwendung moderner Sicherheitsstandards verfügbar macht.
Gehen Sie hier wie folgt vor:
- Veröffentlichen Sie eine RESTful-Erhebungs-API.
- Stellen Sie ein API Management-Gateway bereit.
- Machen Sie die Erhebungs-API über den Gatewayendpunkt verfügbar.
- Entfernen Sie einen Header aus der Antwort.
Wichtig
Sie benötigen für diese Übung ein eigenes Azure-Abonnement. Außerdem fallen möglicherweise Gebühren für Sie an. Wenn Sie noch kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Bereitstellen der Erhebungs-Web-API
Sie haben eine .NET Core-App entwickelt, die vertrauliche Erhebungsinformationen zurückgibt. Die App nutzt Swashbuckle, um eine OpenAPI-Dokumentation zu erstellen.
Sie führen zunächst ein Skript aus, durch das die RESTful-API in Azure gehostet wird, um Zeit zu sparen. Das Skript führt die folgenden Schritte aus:
- Erstellen eines Azure App Service-Plans im Free-Tarif
- Es erstellt eine Web-API in Azure App Service, die für die Git-Bereitstellung über ein lokales Repository konfiguriert ist.
- Festlegen von Anmeldeinformationen für die Bereitstellung auf Kontoebene für die App
- Lokales Konfigurieren von Git
- Es stellt unsere Web-API für unsere App Service-Instanz bereit.
Melden Sie sich beim Azure-Portal an.
Wählen Sie in der Azure-Taskleiste das Cloud Shell-Symbol aus, um Azure Cloud Shell zu öffnen.
Führen Sie den folgenden Befehl
git clone
in Cloud Shell aus, um das Repository, das die Quelle für Ihre Anwendung enthält, zu klonen:git clone https://github.com/MicrosoftDocs/mslearn-protect-apis-on-api-management.git
Führen Sie den folgenden Befehl aus, um lokal zum Repositoryordner zu navigieren:
cd mslearn-protect-apis-on-api-management
Führen Sie das Skript „setup.sh“ aus, um die Test-API zu erstellen. Das Skript erstellt eine öffentliche Web-App, die eine OpenAPI-Schnittstelle verfügbar macht:
bash setup.sh
Die Ausführung des Skripts dauert ungefähr eine Minute. Nach Abschluss des Skripts werden zwei URLs angezeigt, die Sie zum Testen der App-Bereitstellung verwenden können. Beachten Sie, dass während der Bereitstellung alle Abhängigkeiten, die für die Ausführung der App erforderlich sind, automatisch für die App Service-Remoteinstanz installiert werden.
Kopieren Sie die erste URL aus der Cloud Shell-Ausgabe, und fügen Sie sie in Ihren Browser ein, um zu testen, ob die App korrekt bereitgestellt wurde. Im Browser sollte die Swagger-Benutzeroberfläche für die App angezeigt und die folgenden RESTful-Endpunkte deklariert werden:
- api/census (API/Erhebung): gibt eine Erhebung und zugehörige Personen zurück
- api/census/{censusYear} (API/Erhebung/{censusYear}): gibt eine Erhebung und zugehörige Personen für das angegebene Jahr zurück
- api/people/{reference} (API/Personen/{reference}): gibt ausführliche Informationen zu einer bestimmten Person zurück
Kopieren Sie schließlich die letzte URL der Cloud Shell-Ausgabe. Diese URL ist die Swagger-JSON-URL, die Sie später in dieser Übung benötigen werden.
Bereitstellen eines API-Gateways
Erstellen Sie als nächsten Schritt in dieser Übung ein API-Gateway im Azure-Portal. Sie benötigen dieses Gateway im nächsten Abschnitt, um Ihre API zu veröffentlichen:
Melden Sie sich beim Azure-Portal an.
Wählen Sie im Menü des Azure-Portals oder auf der Startseite die Option Ressource erstellen aus. Der Bereich Ressource erstellen wird angezeigt.
Wählen Sie im linken Menübereich Integration aus, und geben Sie dann API Management in das Suchfeld Suchdienste und Marketplace ein. Wählen Sie in den Ergebnissen die Karte API Management aus, und wählen Sie Erstellen aus, um den Bereich API Management-Dienst erstellen zu öffnen.
Füllen Sie auf der Registerkarte Grundlagen die folgenden Felder für jede Einstellung aus.
Einstellung Wert Projektdetails Subscription Wählen Sie Ihr Abonnement aus. Resource group Wählen Sie eine neue oder vorhandene Ressourcengruppe aus. Eine Ressourcengruppe ist ein logischer Container, der zu einer Azure-Lösung gehörige Ressourcen enthält. Instanzendetails Region Wählen Sie eine verfügbare Region aus. Ressourcenname Geben Sie apim-CensusData<random number>
ein und ersetzen Sierandom number
durch Ihre eigenen Zahlenreihe, um sicherzustellen, dass der Name global eindeutig ist.Name der Organisation Geben Sie Government-Census
ein. Der Name Ihrer Organisation zur Verwendung im Entwicklerportal und in E-Mail-Benachrichtigungen. (Das Entwicklerportal und Benachrichtigungen sind nicht auf allen Dienstebenen verfügbar.)Administrator-E-Mail-Adresse Die E-Mail-Adresse zum Empfangen aller Systembenachrichtigungen. Preisstufe Tarif Wählen Sie Consumption (99.95% SLA)
aus der Dropdownliste aus.Hinweis
Der Verbrauchstarif bietet eine schnelle Bereitstellung für Tests und verfügt über ein nutzungsbasiertes Preismodell. Die API-Verwaltungsoberfläche ist insgesamt ähnlich wie bei den anderen Tarifen.
Klicken Sie auf Überprüfen + erstellen. Wenn die Überprüfung erfolgreich war, wählen Sie Erstellen aus. Die Bereitstellung kann einige Minuten dauern. Wenn die Bereitstellung abgeschlossen ist, wird die API Management-Instanz unter den Azure-Ressourcen aufgeführt. Wählen Sie Zu Ressource wechseln aus, um den Bereich für Ihren API Management-Dienst anzuzeigen.
Importieren der API
Importieren Sie nun die Erhebungs-API in das API Management-Gateway:
Wählen Sie im linken Menübereich Ihrer API Management-Instanz unter APIs die Option APIs aus, und wählen Sie dann + API hinzufügen aus.
Klicken Sie unter Create from definition (Aus Definition erstellen) auf OpenAPI. Das Dialogfeld Aus OpenAPI-Spezifikation erstellen wird angezeigt.
Fügen Sie im Feld OpenAPI-Spezifikation die Swagger-JSON-URL ein, die Sie zuvor in dieser Übung gespeichert haben.
Hinweis
Sie werden bemerken, dass wenn Sie das Feld mit der TAB-TASTE verlassen, einige der anderen Felder für Sie ausgefüllt werden. Der Grund dafür ist, dass Sie OpenAPI verwendet haben, das die meisten der erforderlichen Verbindungsdetails bereitstellt.
Behalten Sie für die anderen Einstellungen die Standardwerte bei, und klicken Sie auf Erstellen.
Testen der API
Sehen wir uns an, welche Daten von der API standardmäßig zurückgegeben werden:
Wählen Sie im Menü des Azure-Portals oder auf der Startseite die Option Alle Ressourcen und dann Ihre API Management-Instanz aus.
Klicken Sie im linken Menübereich unter APIs auf APIs, und wählen Sie im mittleren Bereich Census Data (Census-Daten) aus.
Klicken Sie in der oberen Menüleiste auf die Registerkarte Testen, und wählen Sie dann den Vorgang GetLatestCensus aus.
Wählen Sie Send (Senden) aus.
Beachten Sie, dass x-powered-by in der Antwort erscheint und angibt, dass das Framework ASP.NET ist.
Entfernen von Headern
Nun wird eine Richtlinie hinzugefügt, um den x-powered-by-Header aus den von der API gesendeten Antworten zu entfernen:
Wählen Sie noch mal Census Data (Census-Daten) aus, und klicken Sie in der oberen Menüleiste auf die Registerkarte Design.
Klicken Sie auf Alle Vorgänge und anschließend im Abschnitt Ausgehende Verarbeitung auf das Symbol </> . Der Richtlinien-XML-Editor wird angezeigt.
Ersetzen Sie das
<outbound>
-Standardtag durch folgenden Code:<outbound> <set-header name="x-powered-by" exists-action="delete" /> <base /> </outbound>
Wählen Sie Speichern aus.
Überprüfen von entfernten Headern
Sie sollten nun einen Test durchführen können, um zu überprüfen, ob die Header entfernt wurden:
Wählen Sie noch mal Census Data (Census-Daten) aus, und klicken Sie in der oberen Menüleiste auf die Registerkarte Testen.
Wählen Sie den Vorgang GetLatestCensus aus, und klicken Sie dann auf Senden.
Der Header x-powered-by sollte nicht in der HTTP-Antwort enthalten sein.