Abonnements in Azure API Management

In Azure API Management sind Abonnements die übliche Methode für die Erteilung von Zugriff auf APIs, die über eine API Management-Instanz veröffentlicht werden. Dieser Artikel bietet eine Übersicht über das Konzept.

Was sind Abonnements?

Durch die Veröffentlichung von APIs über API Management können Sie den API-Zugriff ganz einfach mithilfe von Abonnementschlüsseln absichern. Entwickler, die die veröffentlichten APIs nutzen möchten, müssen einen gültigen Abonnementschlüssel in HTTP-Anforderungen einschließen, wenn sie diese APIs aufrufen. Ohne gültigen Abonnementschlüssel geschieht mit Aufrufen Folgendes:

  • Sie werden sofort vom API Management-Gateway abgelehnt.
  • Sie werden nicht an die Back-End-Dienste weitergeleitet.

Für den Zugriff auf APIs benötigen Sie ein Abonnement und einen Abonnementschlüssel. Ein Abonnement ist ein benannter Container für ein Abonnementschlüsselpaar.

Hinweis

Das regelmäßige Neugenerieren von Schlüsseln ist eine gängige Sicherheitsvorkehrung. Wie die meisten Azure-Dienste, die einen Abonnementschlüssel erfordern, generiert API Management Schlüssel paarweise. Jede Anwendung, die den Dienst verwendet, kann von Schlüssel A zu Schlüssel B wechseln und Schlüssel A mit minimaler Unterbrechung neu generieren und umgekehrt.

Außerdem:

  • Entwickler können Abonnements ohne Genehmigung von API-Herausgebern abrufen.
  • API-Herausgeber können Abonnements für API-Nutzer direkt erstellen.

Tipp

API Management unterstützt auch andere Mechanismen zum Schützen des Zugriffs auf APIs, einschließlich der folgenden Beispiele:

Bereich von Abonnements

Abonnements können verschiedenen Bereichen zugeordnet werden: einem Produkt, allen APIs oder einer bestimmten API.

Abonnements für ein Produkt

Üblicherweise wurden Abonnements in API Management einem einzelnen Produktbereich zugeordnet. Entwickler:

  • Fanden die Liste der Produkte im Entwicklerportal.
  • Sendeten Abonnementanforderungen für die Produkte, die sie verwenden wollten.
  • Verwendeten die Schlüssel in diesen Abonnements (entweder automatisch oder von API-Herausgebern genehmigt), um auf alle APIs im Produkt zuzugreifen.

Derzeit zeigt das Entwicklerportal nur die Abonnements auf Produktebene im Abschnitt Benutzerprofil an.

Product subscriptions

Abonnements für alle APIs oder eine einzelne API

Sie können auch Schlüssel erstellen, die Zugriff auf Folgendes gewähren:

  • Einzelne API
  • Alle APIs innerhalb einer API Management-Instanz

In diesen Fällen müssen Sie kein Produkt erstellen und ihm zuerst APIs hinzufügen.

All-Access-Abonnement

Zu jeder API Management-Instanz gehört ein unveränderliches Abonnement für alle APIs (als All-Access-Abonnement bezeichnet). Dieses integrierte Abonnement erleichtert das Testen und Debuggen von APIs in der Testkonsole.

Hinweis

Unabhängig davon, ob Sie ein Abonnement für eine einzelne API oder das All-Access-Abonnement verwenden, werden die im Produktbereich konfigurierten Richtlinien nicht auf Anforderungen dieses Abonnements angewendet.

Eigenständige Abonnements

API Management ermöglicht auch eigenständige Abonnements, die nicht mit einem Entwicklerkonto verknüpft sind. Dieses Feature ist nützlich in Szenarien, in denen mehrere Entwickler oder Teams ein Abonnement gemeinsam nutzen.

Wenn Sie ein Abonnement erstellen, ohne einen Besitzer zuzuweisen, wird es zu einem eigenständigen Abonnement. Um Entwicklern und dem Rest Ihres Teams Zugriff auf den eigenständigen Abonnementschlüssel zu gewähren, führen Sie einen der folgenden Schritte aus:

  • Teilen Sie den Abonnementschlüssel manuell.
  • Verwenden Sie ein benutzerdefiniertes System, um den Abonnementschlüssel für Ihr Team verfügbar zu machen.

Erstellen von Abonnements im Azure-Portal

Für API-Herausgeber ist die Erstellung von Abonnements direkt im Azure-Portal möglich:

Flexible subscriptions

Verarbeitung von Anforderungen mit oder ohne Abonnementschlüssel durch API Management

Standardmäßig kann ein Entwickler nur mithilfe eines Abonnementschlüssels auf ein Produkt oder eine API zugreifen. In bestimmten Szenarios möchten API-Herausgeber vielleicht ein Produkt oder eine bestimmte API veröffentlichen, ohne dass hierzu Abonnements erforderlich sind. Ein Herausgeber kann zwar den ungesicherten Zugriff auf bestimmte APIs aktivieren, es wird jedoch empfohlen, einen anderen Mechanismus zum Schützen des Clientzugriffs zu konfigurieren.

Achtung

Gehen Sie beim Konfigurieren eines Produkts oder einer API, das/die kein Abonnement erfordert, sorgfältig vor. Diese Konfiguration kann übermäßig freizügig sein und eine API anfälliger für bestimmte API-Sicherheitsbedrohungen machen.

So deaktivieren Sie die Abonnementanforderung über das Portal:

  • Anforderung für Produkt deaktivieren: Deaktivieren Sie auf der Seite Einstellungen des Produkts die Option Abonnement erforderlich.
  • Anforderung für API deaktivieren: Deaktivieren Sie auf der Seite Einstellungen der API die Option Abonnement erforderlich.

Nach dem Deaktivieren der Abonnementanforderung kann ohne Abonnementschlüssel auf die ausgewählte API oder die ausgewählten APIs zugegriffen werden.

Wenn API Management eine API-Anforderung von einem Client ohne Abonnementschlüssel empfängt, wird die Anforderung gemäß den folgenden Regeln verarbeitet:

  1. Zunächst überprüfen, ob ein Produkt existiert, das die API enthält, aber kein Abonnement erfordert (ein offenes Produkt). Wenn das offene Produkt vorhanden ist, die Anforderung im Kontext der für das Produkt konfigurierten APIs, Richtlinien und Zugriffsregeln verarbeiten.
  2. Wenn kein offenes Produkt mit der API gefunden wird, überprüfen, ob die API ein Abonnement erfordert. Wenn ein Abonnement nicht erforderlich ist, die Anforderung im Kontext dieser API und des Vorgangs verarbeiten.
  3. Wenn kein konfiguriertes Produkt oder keine konfigurierte API gefunden wird, wird der Zugriff verweigert.

Nächste Schritte

Weitere Informationen zu API Management:

  • Informationen dazu, wie API Management-Richtlinien in verschiedenen Bereichen angewendet werden
  • Informationen zu weiteren Konzepten in API Management
  • Tutorials zum weiteren Kennenlernen von API Management
  • FAQ-Seite für häufig gestellte Fragen