Diese Seite gilt für Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen

Video: In diesem kurzen Video erfahren Sie, wie Sie Ihre API sichern.
Aufgaben in diesem Lab
In dieser Anleitung wird Folgendes erläutert:
- Erstellen Sie einen API-Proxy, der einen API-Schlüssel erfordert.
- Erstellen Sie ein API-Produkt, einen Entwickler und eine Entwickler-App.
- API mit einem API-Schlüssel aufrufen
Es ist wichtig, Ihre API vor nicht autorisiertem Zugriff zu schützen. Eine Möglichkeit hierfür ist API-Schlüssel.
Wenn eine Anwendung eine Anfrage an einen API-Proxy sendet, der zum Prüfen eines API-Schlüssels konfiguriert ist, muss die Anwendung einen gültigen Schlüssel bereitstellen. Zur Laufzeit prüft die API-Schlüsselrichtlinie, ob der bereitgestellte API-Schlüssel angegeben wurde:
- Ist gültig
- Wurde nicht widerrufen
- Entspricht dem API-Schlüssel für das API-Produkt, das die angeforderten Ressourcen bereitstellt.
Wenn der Schlüssel gültig ist, ist die Anfrage zulässig. Ist der Schlüssel ungültig, führt die Anfrage zu einem Autorisierungsfehler.
API-Proxy erstellen
So erstellen Sie einen API-Proxy über die Apigee-UI:
Rufen Sie in der Google Cloud Console die Seite Proxy-Entwicklung > API-Proxys auf.
- Wählen Sie im Google Cloud-Bereich in der Projektauswahl Ihre Organisation aus. Der Name der Organisation entspricht dem Namen Ihres Google Cloud-Projekts.
- Klicken Sie auf + Erstellen.
- Wählen Sie im Bereich Proxy erstellen unter Proxy-Vorlage die Option Reverse-Proxy (häufigste Quelle) aus. Ein Reverse-Proxy leitet eingehenden Traffic an einen Back-End-Dienst weiter.
- Konfigurieren Sie den Proxy so:
Name Wert Proxy-Name helloworld_apikeyBasispfad /helloapikeyDer Projektbasispfad ist Teil der URL, die für Anfragen an den API-Proxy verwendet wird.
Beschreibung hello world protected by API keyZiel (vorhandene API) http://mocktarget.apigee.netDies definiert die Ziel-URL, die Apigee für eine Anfrage an den API-Proxy aufruft. Dieses Ziel gibt einfach eine einfache Antwort zurück:
Hello, Guest!. - Klicken Sie auf Weiter.
- Bereitstellen (optional). Lassen Sie diese Felder leer.
- Klicken Sie auf Erstellen.
- Apigee erstellt den neuen Proxy und zeigt die Zusammenfassung der Proxydetails im Bereich Proxy-Zusammenfassung an.
Richtlinien ansehen
So rufen Sie die Richtlinien auf:
- Klicken Sie im Bereich Proxy summary für den Proxy helloworld_apikey auf den Tab Develop.
- Klicken Sie im Menü Richtlinien auf Richtlinie hinzufügen.
- Wählen Sie im Bereich Richtlinie erstellen unter Sicherheit die Option API-Schlüssel überprüfen aus.
- Füllen Sie im Bereich API-Schlüssel überprüfen die erforderlichen Felder in den Abschnitten Name und Anzeigename mit den folgenden Werten aus:
- Name: Geben Sie einen Richtliniennamen ein. Beispiel:
VerifyAPIKey. - Anzeigename: Geben Sie den Namen der Richtlinie ein, der in der Benutzeroberfläche verwendet werden soll. Beispiel:
Verify API Key.
- Name: Geben Sie einen Richtliniennamen ein. Beispiel:
- Klicken Sie auf Erstellen.
- Klicken Sie auf , um eine weitere Richtlinie hinzuzufügen.
- Wählen Sie im Bereich Richtlinie erstellen unter Mediation die Option Nachricht zuweisen aus.
- Füllen Sie im Bereich Assign Message (Mitteilung zuweisen) die erforderlichen Felder in den Abschnitten Name (Name) und Display name (Anzeigename) mit den folgenden Werten aus:
- Name: Geben Sie einen Richtliniennamen ein. Beispiel:
AssignMessage. - Anzeigename: Geben Sie den Namen der Richtlinie ein, der in der Benutzeroberfläche verwendet werden soll. Beispiel:
Assign Message.
- Name: Geben Sie einen Richtliniennamen ein. Beispiel:
- Klicken Sie auf Erstellen.
- Das
<APIKey>-Element im folgenden XML-Code gibt den Speicherort des API-Schlüssels in der eingehenden Anfrage an. Standardmäßig ruft die Richtlinie den Schlüssel aus einem Abfrageparameter namensapikeyin der HTTP-Anfrage ab.<APIKey ref="request.queryparam.apikey" />
Der Name
apikeyist beliebig. Dies kann ein beliebiges Attribut sein, das den API-Schlüssel enthält. - Aktualisieren Sie den Inhalt der Richtlinie Assign Message (Nachricht zuweisen) auf Folgendes:
- Fügen Sie die Richtlinien
VerifyApiKeyundRemove Query Param apikeyhinzu.- Klicken Sie im Menü Proxy-Endpunkte auf PreFlow.
- Klicken Sie im Bereich Anfrage des visuellen Editors auf Richtlinienschritt hinzufügen.
- Wählen Sie im Bereich Richtlinienschritt hinzufügen die Option API-Schlüssel überprüfen aus.
- Klicken Sie auf Hinzufügen.
- Klicken Sie im Bereich Anfrage des visuellen Editors auf Richtlinienschritt hinzufügen.
- Wählen Sie im Bereich Richtlinienschritt hinzufügen die Option Entfernen des Abfrageparameters „apikey“ aus.
- Klicken Sie auf Hinzufügen.
- Klicken Sie auf Speichern.
- Proxy in einer Umgebung bereitstellen:
- Klicken Sie auf Bereitstellen.
- Wählen Sie eine Überarbeitung und eine Umgebung aus.
- Klicken Sie auf Bereitstellen.
- Testen Sie Ihre Änderungen, indem Sie die API wie unter API aufrufen beschrieben aufrufen.
<AssignMessage async="false" continueOnError="false" enabled="true" name="remove-query-param-apikey"> <DisplayName>Remove Query Param apikey</DisplayName> <Remove> <QueryParams> <QueryParam name="apikey"/> </QueryParams> </Remove> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Versuchen Sie, die API aufzurufen
In diesem Schritt führen Sie einen erfolgreichen API-Aufruf direkt an den Zieldienst aus. Anschließend führen Sie einen fehlgeschlagenen Aufruf an den API-Proxy durch, um festzustellen, wie er durch die Richtlinien geschützt wird.
-
Erfolg
Rufen Sie in einem Webbrowser die folgende Adresse auf. Dies ist der Zieldienst, für den der API-Proxy zur Weiterleitung der Anfrage konfiguriert ist. Sie leiten ihn jedoch vorerst weiter:
http://mocktarget.apigee.net
Sie sollten folgende erfolgreiche Antwort erhalten:
Hello, Guest!. -
Fehler
Versuchen Sie nun, den API-Proxy aufzurufen:
curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey
Dabei ist
YOUR ENV_GROUP_HOSTNAMEder Hostname der Umgebungsgruppe. Weitere Informationen finden Sie unter Hostname der Umgebungsgruppe finden.Ohne die Richtlinie „API-Schlüssel überprüfen“ würde dieser Aufruf die gleiche Antwort wie der vorherige Aufruf liefern. In diesem Fall erhalten Sie jedoch die folgende Fehlermeldung:
{"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
Das heißt richtigerweise, dass Sie keinen gültigen API-Schlüssel als Abfrageparameter übergeben haben.
In den nächsten Schritten erhalten Sie den erforderlichen API-Schlüssel.
API-Produkt hinzufügen
So fügen Sie ein API-Produkt über die Apigee-Benutzeroberfläche hinzu:
Rufen Sie in der Google Cloud Console die Seite Verteilung > API-Produkte auf:
- Klicken Sie auf +Erstellen.
- Geben Sie die Produktdetails für Ihr API-Produkt ein.
Feld Beschreibung Name Interner Name des API-Produkts. Geben Sie im Namen keine Sonderzeichen an.
Hinweis:Sobald das API-Produkt erstellt wurde, können Sie den Namen nicht mehr ändern.Anzeigename Anzeigename für das API-Produkt. Der Anzeigename wird in der Benutzeroberfläche verwendet und kann jederzeit bearbeitet werden. Wenn keine Angabe erfolgt, wird der Wert Name verwendet. Dieses Feld wird automatisch mit dem Wert Name ausgefüllt. Sie können den Inhalt bearbeiten oder löschen. Der Anzeigename kann Sonderzeichen enthalten. Beschreibung Beschreibung des API-Produkts. Umgebung Umgebungen, auf die das API-Produkt Zugriff gewährt. Beispiel: testoderprod.Zugriff Wählen Sie Öffentlich aus. Zugriffsanfragen automatisch genehmigen Aktivieren Sie die automatische Genehmigung von Schlüsselanfragen für dieses API-Produkt aus einer beliebigen Anwendung. Kontingent Für diese Anleitung ignorieren. Erlaubte OAuth-Bereiche Für diese Anleitung ignorieren. - Klicken Sie im Bereich Vorgänge auf Vorgang hinzufügen.
- Wählen Sie im Feld API-Proxy den soeben erstellten API-Proxy aus.
- Geben Sie im Feld Pfad „/“ ein. Ignorieren Sie die anderen Felder.
- Klicken Sie auf Speichern, um den Vorgang zu speichern.
- Klicken Sie auf Speichern, um das API-Produkt zu speichern.
Weitere Informationen zum Hinzufügen eines API-Produkts finden Sie unter API-Produkt erstellen.
Einen Entwickler und eine App zur Organisation hinzufügen
Als Nächstes simulieren wir den Workflow eines Entwicklers, der sich registriert, um Ihre APIs zu verwenden. Ein Entwickler hat eine oder mehrere Anwendungen, die Ihre APIs aufrufen, und jede Anwendung erhält einen eindeutigen API-Schlüssel. Dadurch erhalten Sie als API-Anbieter eine bessere Kontrolle über den Zugriff auf Ihre APIs und detailliertere Berichte zum API-Traffic nach App.
Entwickler erstellen
So erstellen Sie einen Entwickler über die Apigee-Benutzeroberfläche:
-
Rufen Sie in der Google Cloud Console die Seite Verteilung > Entwickler auf:
- Klicken Sie auf + Erstellen.
- Geben Sie im Fenster Entwickler hinzufügen Folgendes ein:
Feld Wert Vorname KeyserNachname SozeE-Mail keyser@example.comNutzername keyser - Klicken Sie auf Hinzufügen.
Weitere Informationen zum Erstellen eines Entwicklers finden Sie unter App-Entwickler registrieren.
App registrieren
So registrieren Sie eine Entwickler-App über die Apigee-Benutzeroberfläche:
-
Rufen Sie in der Google Cloud Console die Seite Verteilung > Apps auf:
- Klicken Sie auf + Erstellen.
- Geben Sie im Fenster App erstellen Folgendes ein:
Feld Wert App-Name Eingeben: keyser_appAnzeigename Eingeben: keyser_appDeveloper Wählen Sie Keyser Soze (keyser@example.com)aus.Callback-URL Leer lassen Hinweise Leer lassen - Klicken Sie im Abschnitt „Anmeldedaten“ auf Anmeldedaten hinzufügen.
- Wählen Sie Nie aus. Die Anmeldedaten für diese Anwendung laufen nie ab.
- Klicken Sie auf Produkte hinzufügen.
- Wählen Sie das Produkt aus, das Sie gerade erstellt haben.
- Klicken Sie auf Hinzufügen.
- Klicken Sie auf Erstellen.
Weitere Informationen zum Registrieren einer App finden Sie unter App registrieren.
API-Schlüssel abrufen
So rufen Sie den API-Schlüssel über die Apigee-Benutzeroberfläche ab:
Rufen Sie in der Google Cloud Console die Seite Verteilung > Apps auf.
- Wählen Sie die gewünschte App aus der Liste der Apps aus.
- Klicken Sie auf der Seite App ansehen unter Anmeldedaten neben dem Feld Schlüssel auf . Beachten Sie, dass der Schlüssel mit dem von Ihnen erstellten Produkt verknüpft ist.
- Klicken Sie auf Kopieren. Sie benötigen diesen Schlüssel im nächsten Schritt.
API mit einem Schlüssel aufrufen
Mit dem API-Schlüssel können Sie jetzt den API-Proxy aufrufen. Fügen Sie den API-Schlüssel wie gezeigt als Abfrageparameter ein. Der Abfrageparameter darf keine zusätzlichen Leerzeichen enthalten.
curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey?apikey=YOUR_API_KEY
Wenn Sie jetzt den API-Proxy aufrufen, erhalten Sie diese Antwort: Hello,
Guest!
Glückwunsch! Sie haben einen API-Proxy erstellt und geschützt, indem ein gültiger API-Schlüssel in den Aufruf eingefügt wurde.
Es ist allgemein nicht empfehlenswert, einen API-Schlüssel als Abfrageparameter zu übergeben. Sie sollten stattdessen eine Übergabe im HTTP-Header vornehmen.
Best Practice: Übergeben des Schlüssels im HTTP-Header
In diesem Schritt werden Sie den Proxy so modifizieren, dass er nach dem API-Schlüssel in einem Header namens x-apikey sucht.
- Rufen Sie in der Google Cloud Console die Seite Proxy-Entwicklung > API-Proxys auf.
- Wählen Sie den gewünschten Proxy aus der Liste der Proxys aus.
- Klicken Sie auf der Seite Proxydetails auf Entwickeln.
- Ändern Sie die Richtlinien-XML, damit die Richtlinie im Header und nicht im Queryparam nach den Richtlinien sucht:
- Klicken Sie auf Speichern, um die Änderungen zu speichern.
- Klicken Sie auf Bereitstellen.
- Wählen Sie eine Überarbeitung und eine Umgebung aus.
- Klicken Sie auf Bereitstellen.
-
Führen Sie den folgenden API-Aufruf mit cURL aus, um den API-Schlüssel als Header mit dem Namen
x-apikeyzu übergeben. Denken Sie daran, den Namen Ihrer Organisation zu ersetzen.curl -v -H "x-apikey: YOUR_API_KEY" http://YOUR_ENV_GROUP_HOSTNAME/helloapikey
<APIKey ref="request.header.x-apikey"/>
Wenn Sie die Änderung vollständig vornehmen möchten, müssen Sie außerdem die Richtlinie „Nachricht zuweisen“ konfigurieren, um den Header anstelle des Abfrageparameters zu entfernen. Beispiel:
<Remove>
<Headers>
<Header name="x-apikey"/>
</Headers>
</Remove>
Weitere Informationen
Im Folgenden finden Sie einige Themen zu API-Produkten und -Schlüsseln:
- API-Produkte verwalten
- API-Schlüssel
- App-Entwickler registrieren
- Apps registrieren und API-Schlüssel verwalten
- API-Schlüsselrichtlinie prüfen
Der API-Schutz umfasst häufig zusätzliche Sicherheitsmaßnahmen wie OAuth, ein offenes Protokoll, das Anmeldedaten wie Nutzername und Passwort gegen Zugriffstokens austauscht. Zugriffstokens sind lange, zufällige Strings, die über eine Nachrichtenpipeline weitergegeben werden können, auch von der App zur Anwendung, ohne dabei die ursprünglichen Anmeldedaten zu beeinträchtigen.
Eine Übersicht über sicherheitsrelevante Themen finden Sie unter Proxy sichern.