Erstellen von Abonnements in Azure API Management

Abgeschlossen

Wenn Sie eine API mit API Management veröffentlichen, legen Sie selbst fest, wer über das Gateway auf die API zugreifen kann.

Sie möchten sicherstellen, dass bei Ihrer Wetter-App nur Kund*innen über Zugriff auf die API verfügen und Ihre Vorhersagedaten verwenden können, die Ihren Dienst abonniert haben. Sie erreichen diese Zugriffssteuerung durch das Ausstellen von Abonnementschlüsseln.

Wichtig

In diesem Kontext haben Abonnements nichts mit Azure-Abonnements zu tun, die zum Verwalten Ihres Azure-Kontos verwendet werden.

In dieser Lerneinheit erfahren Sie, wie Sie Ihre APIs mit Abonnementschlüssel schützen.

Abonnements und Schlüssel

Sie können Ihre APIs und die darin enthaltenen Informationen frei verfügbar machen. In der Regel soll der Zugriff darauf jedoch auf zahlende Benutzer oder auf Organisationen, mit denen Sie eine Arbeitsbeziehung pflegen, beschränkt werden. Eine Möglichkeit besteht darin, den Zugriff auf Ihre APIs mithilfe von Abonnements zu verwalten. Mit Abonnements wird der Benutzerzugriff auf eine API segmentiert.

Abonnementschlüssel autorisieren dabei den Zugriff auf diese Abonnements. Wenn ein Client eine Anforderung an eine geschützte API stellt, muss ein gültiger Abonnementschlüssel in der HTTP-Anforderung enthalten sein, andernfalls wird der Aufruf abgelehnt.

Ein Abonnementschlüssel ist ein eindeutiger, automatisch generierter Schlüssel, der als Teil eines API-Aufrufs übergeben werden kann. Der Schlüssel bezieht sich direkt auf ein Abonnement, das verschiedene Bereiche umfassen kann. Mit Abonnements können Sie Berechtigungen und Richtlinien präzise verwalten.

Die folgenden drei Hauptbereiche stehen für Abonnements zur Verfügung:

Bereich Informationen
Alle APIs Gilt für jede API, auf die über das Gateway zugegriffen werden kann
Einzelne API Gilt für eine einzelne importierte API und alle ihre Endpunkte.
Produkt Ein Produkt ist eine Sammlung von einer oder mehreren APIs, die in API Management konfiguriert werden. Sie können APIs mehr als einem Produkt zuweisen. Produkte können unterschiedliche Zugriffsregeln, Verbrauchskontingente und Nutzungsbedingungen besitzen. Wenn Ihre Partner*innen und Zuliefer*innen also über unterschiedliche Zugriffsrechte auf Ihre WeatherData-API (Wetterdaten-API) verfügen sollen, weisen Sie die API einem Produkt zu, und verwenden Sie dann das Azure-Portal, um APIs einem Produkt zuzuordnen.

Anwendungen, die eine geschützte API aufrufen, müssen in jeder Anforderung einen Abonnementschlüssel enthalten.

Sie können diese Abonnementschlüssel jederzeit erneut generieren. Wenn Sie beispielsweise vermuten, das ein Schlüssel mit nicht autorisierten Benutzer*innen geteilt wurde, können Sie einen neuen erstellen.

Subscription keys.

Jedes Abonnement hat zwei Schlüssel: einen Primärschlüssel und einen sekundären Schlüssel. Die Verwendung von zwei Schlüsseln vereinfacht das erneute Generieren eines Schlüssels. Wenn Sie beispielsweise den Primärschlüssel ändern und Ausfallzeiten vermeiden möchten, verwenden Sie in Ihren Apps den Sekundärschlüssel.

Für Produkte mit aktivierten Abonnements müssen Clients einen Schlüssel angeben, wenn Sie APIs in diesem Produkt aufrufen. Entwickler können durch Übermitteln einer Abonnementanforderung einen Schlüssel abrufen. Bei genehmigten Anforderungen muss der Abonnementschlüssel auf sicherem Weg gesendet werden, z. B. in einer verschlüsselten Nachricht. Dieser Schritt ist zentraler Bestandteil des API Management-Workflows.

Aufrufen einer API mit dem Abonnementschlüssel

Anwendungen müssen einen gültigen Schlüssel in allen HTTP-Anforderungen einschließen, die API-Endpunkte aufrufen, die durch ein Abonnement geschützt sind. Schlüssel können im Anforderungsheader oder als Abfragezeichenfolgenparameter in der URL übergeben werden.

Der Standardname des Abonnementschlüsselheaders ist Ocp-Apim-Subscription-Key, und der Standardname der Abfragezeichenfolge ist subscription-key.

Sie können Ihre API-Aufrufe mithilfe einer Testkonsole im Azure-Portal, über das Entwicklerportal oder mit Befehlszeilentools wie z. B. cURL testen. Im folgenden Beispiel sehen Sie eine GET-Anforderung über das Entwicklerportal mit dem Header des Abonnementschlüssels:

Screenshot that shows how to call your API from developer portal.

Hier sehen Sie ein Beispiel dafür, wie Sie einen Schlüssel in einem Anforderungsheader mit curl übergeben würden:

curl --header "Ocp-Apim-Subscription-Key: <key string>" https://<apim gateway>.azure-api.net/api/path

Hier sehen Sie ein Beispiel dafür, wie Sie einen curl-Befehl verwenden würden, um einen Schlüssel als Abfragezeichenfolge in einer URL zu übergeben:

curl https://<apim gateway>.azure-api.net/api/path?subscription-key=<key string>

Wenn der erforderliche Schlüssel nicht im Header oder als Abfragezeichenfolge in der URL übergeben wird, erhalten Sie vom API-Gateway die Antwort 401 Zugriff verweigert.