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.
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:
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:
- 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.
- 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.
- 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