Übung: Erstellen von Abonnements in Azure API Management
Zum Erstellen von Abonnements und zum Abrufen von Abonnementschlüsseln für Client-Apps können Sie die Azure API Management-Benutzeroberfläche im Azure-Portal verwenden.
Angenommen, Ihr Unternehmen möchte seine meteorologischen Daten Clients zur Verfügung stellen, die den Dienst abonnieren und dafür bezahlen. Die entscheidende Anforderung besteht darin, nur Clients Zugriff zu gewähren, denen ein Schlüssel zugeordnet wurde. Als leitender Entwickler sind Sie dafür zuständig, ein API-Gateway zu erstellen. Über das Gateway veröffentlichen Sie eine RESTful-Wetter-API, die einen OpenAPI-Endpunkt verfügbar macht. Anschließend sichern Sie den Endpunkt und ordnen einen Clientschlüssel zu.
In dieser Lerneinheit lernen Sie Folgendes:
- Veröffentlichen einer RESTful-Wetter-API
- Bereitstellen eines API Management-Gateways
- Bereitstellen der Wetter-API über den Gatewayendpunkt
- Einschränken des Zugriffs über einen Abonnementschlüssel
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 Wetter-Web-API
Sie haben eine .NET Core-App entwickelt, die Wetterinformationen zurückgibt. Die App nutzt Swashbuckle, um eine OpenAPI-Dokumentation zu erstellen.
Führen Sie zunächst ein Skript aus, das die API in Azure hostet, um Zeit zu sparen. Das Skript führt die folgenden Schritte aus:
- Erstellen eines Azure App Service-Plans im Free-Tarif
- Erstellen einer 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
- Bereitstellen der Web-API für die App Service-Instanz
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 „git clone“-Befehl in Azure Cloud Shell aus, um das Repository, das die Quelle für die App enthält, sowie das Einrichtungsskript aus GitHub zu klonen.
git clone https://github.com/MicrosoftDocs/mslearn-control-authentication-with-apim.git
Wechseln Sie lokal zum Verzeichnis des Repositoryordners, indem Sie den folgenden „cd“-Befehl ausführen.
cd mslearn-control-authentication-with-apim
Führen Sie das Skript
setup.sh
aus, um die API zu erstellen. Dadurch wird eine öffentliche Web-App erstellt, die eine OpenAPI-Schnittstelle verfügbar macht.bash setup.sh
Das Skript besteht aus sieben Teilen und seine Ausführung dauert etwa eine Minute. Beachten Sie, dass während der Bereitstellung alle Abhängigkeiten, die für das Ausführen Ihrer App erforderlich sind, automatisch für die App Service-Remoteinstanz installiert werden.
Nach Abschluss des Skripts werden zwei URLS, eine Swagger-URL und eine Beispiel-URL, ausgegeben. Sie können diese URLs verwenden, um die App-Bereitstellung zu testen.
Um zu testen, ob Ihre App ordnungsgemäß bereitgestellt wurde, kopieren Sie die Swagger-URL aus der Azure Cloud Shell-Ausgabe, und fügen Sie sie in Ihren bevorzugten Browser ein. Im Browser sollten die Swagger-Benutzeroberfläche für die App angezeigt und die folgenden RESTful-Endpunkte deklariert werden:
- api/weather/{latitude}/{longitude}: Gibt meteorologische Daten für den aktuellen Tag am angegebenen Breiten- und Längengrad zurück (als Werte vom Typ „double“).
- api/weather/{Datum}/{Breitengrad}/{Längengrad}: Gibt die meteorologischen Daten für den angegebenen Tag (Datumswert) am angegebenen Breiten- und Längengrad zurück (als Werte vom Typ „double“).
Kopieren Sie schließlich die Beispiel-URL aus der Azure Cloud Shell-Ausgabe, und speichern Sie sie. Hierbei handelt es sich um die Swagger-JSON-URL. Sie werden sie später in dieser Übung benötigen.
Bereitstellen eines API-Gateways
Erstellen Sie als nächsten Schritt in dieser Übung ein API-Gateway im Azure-Portal. In der nächsten Übung benötigen Sie dieses Gateway, um Ihre API zu veröffentlichen.
Melden Sie sich beim Azure-Portal an.
Wählen Sie im Azure-Ressourcenmenü oder auf der Startseite unter Azure-Dienste die Option Ressource erstellen aus. Der Bereich Ressource erstellen wird angezeigt.
Wählen Sie im Ressourcenmenü die Option Integration und in den Ergebnissen dann API Management aus. Der Bereich API Management-Gateway installieren wird angezeigt.
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-WeatherData<random number>
ein. Durch die Zufallszahl (random number) wird sichergestellt, dass der Name global eindeutig ist. Notieren Sie sich diesen Ressourcennamen. Dabei handelt es sich um den API-Gatewaynamen, den Sie später in dieser Übung benötigen.Arbeitsbereichname Geben Sie Weather-Company
ein.Administrator-E-Mail-Adresse Die E-Mail-Adresse zum Empfangen aller Systembenachrichtigungen. Preisstufe Tarif Wählen Sie Consumption
aus der Dropdownliste aus.Klicken Sie auf Überprüfen + erstellen, und klicken Sie dann auf Erstellen, sobald die Überprüfung vorbei ist.
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.
Sie können den Fortschritt der Bereitstellung zusammen mit den Ressourcen anzeigen, die erstellt werden.
Importieren der API
Importieren Sie nach Abschluss der Bereitstellung mit den folgenden Schritten die Weather-API in das API Management-Gateway.
Wählen Sie Zu Ressource wechseln aus. Der Bereich „Übersicht“ des API Management-Diensts für Ihre Ressource wird angezeigt.
Wählen Sie im linken Menübereich unter APIs die Option APIs aus. Der Bereich APIs für Ihren API Management-Dienst wird mit Vorlagen zum Erstellen bzw. Anzeigen einer API angezeigt.
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. Wenn Sie die EINGABETASTE drücken oder einen anderen Bereich des Dialogfelds auswählen, werden andere Felder für Sie aufgefüllt. Diese Daten werden aus der OpenAPI-Spezifikation importiert, die von Swagger erstellt wurde.
Übernehmen Sie die Standardwerte für alle anderen Einstellungen, und wählen Sie dann Erstellen aus.
Auf der Registerkarte „Entwurf“ der „Weather Data“-API werden alle Vorgänge angezeigt, die aus zwei GET-Vorgängen bestehen.
Hinzufügen eines Abonnementschlüssels für den Zugriff auf die Wetter-API
Der letzte Schritt besteht darin, einen Abonnementschlüssel für die „Weather Data“-API hinzuzufügen.
Wählen Sie im linken Menübereich unter APIs die Option Abonnements aus. Der Bereich Subscription (Abonnements) für Ihre API Management-Instanz wird angezeigt.
Wählen Sie auf der Menüleiste oben Abonnement hinzufügen aus. Der Bereich Neues Abonnement wird angezeigt.
Füllen Sie die folgenden Werte für jede Einstellung aus.
Einstellung Wert Name weather-data-subscription
`Display name` Weather Data Subscription
Ablaufverfolgung zulassen Kein Häkchen `Scope` Klicken Sie in der Dropdownliste auf API. API Wählen Sie in der Dropdownliste WeatherData aus. Wählen Sie Erstellen aus. Im Bereich Abonnements werden zwei Abonnements aufgelistet, Built-in all-access subscription (Integriertes Abonnement mit Vollzugriff) und Ihr Weather Data Subscription (Wetterdatenabonnement).
Wählen Sie am Ende der Zeile Weather Data Subscription (Wetterdatenabonnement) die Auslassungspunkte aus, und wählen Sie im Kontextmenü Shoe/hide keys (Schlüssel ein-/ausblenden) aus. Die Werte für den Primärschlüssel und den sekundären Schlüssel werden angezeigt.
Kopieren Sie den Primärschlüssel aus dem Wetterdatenabonnement in Ihre Zwischenablage, und speichern Sie ihn in einer App wie Editor. Sie benötigen diesen Schlüssel im nächsten Schritt.
Testen des Abonnementschlüssels
Die API ist mit einem Schlüssel geschützt. Nun testen Sie die API ohne und mit dem Schlüssel, um den sicheren Zugriff zu veranschaulichen.
Stellen Sie eine Anforderung, ohne einen Abonnementschlüssel zu übergeben. Führen Sie in Azure Cloud Shell den folgenden cURL-Befehl aus. Ersetzen Sie dabei den Platzhalter [Name des Gateways] durch den Ressourcennamen des API-Gateways (apim-WeatherDataNNNN), den Sie in der vorherigen Aufgabe erstellt haben.
curl -X GET https://[Name Of Gateway].azure-api.net/api/Weather/53/-1
Der Befehl enthält keinen Abonnementschlüssel und sollte den Fehler „401 – Zugriff verweigert“ zurückgeben, ähnlich wie im Folgenden gezeigt.
{ "statusCode": 401, "message": "Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." }
Führen Sie jetzt den folgenden Befehl aus. Ersetzen Sie dabei den Platzhalter [Name des Gateways] durch den Ressourcennamen des API-Gateways (apim-WeatherDataNNNN). Ersetzen Sie außerdem den Platzhalter Primärschlüssel durch den Primärschlüssel, den Sie im Schritt „Einblenden/Ausblenden“ kopiert haben.
curl -X GET https://[Name Of Gateway].azure-api.net/api/Weather/53/-1 \ -H 'Ocp-Apim-Subscription-Key: [Primary Key]'
Wenn Sie das schließende Anführungszeichen eingeschlossen haben, sollte dieser Befehl zu einer erfolgreichen Antwort ähnlich dem folgenden Code führen.
{"mainOutlook":{"temperature":32,"humidity":34},"wind":{"speed":11,"direction":239.0},"date":"2019-05-16T00:00:00+00:00","latitude":53.0,"longitude":-1.0}