API sichern, indem Sie API-Schlüssel anfordern

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

  1. Wechseln Sie zur Apigee-Benutzeroberfläche und melden Sie sich an.
  2. Wählen Sie Ihre Organisation im Drop-down-Menü oben links in der Benutzeroberfläche aus.
  3. Klicken Sie auf Entwickeln > API-Proxys, um die Liste der API-Proxys aufzurufen.

  4. Klicken Sie auf Neu erstellen.
    Schaltfläche „Proxy erstellen“
  5. Wählen Sie im Assistenten zum Erstellen eines Proxys die Option Reverse proxy (am häufigsten) aus.
  6. Konfigurieren Sie den Proxy so:
    In diesem Feld tun Sie Folgendes
    Proxy-Name Eingeben: helloworld_apikey
    Projektbasispfad

    Ändern zu: /helloapikey

    Der Projektbasispfad ist Teil der URL, die für Anfragen an den API-Proxy verwendet wird.

    Beschreibung Eingeben: hello world protected by API key
    Ziel (vorhandene API)

    Eingeben: http://mocktarget.apigee.net

    Dies 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!.

  7. Klicken Sie auf Weiter.
  8. Wählen Sie auf der Seite Allgemeine Richtlinien die Option API-Schlüssel aus. Mit dieser Option werden dem API-Proxy automatisch zwei Richtlinien hinzugefügt und ein API-Produkt erstellt, das zum Generieren des API-Schlüssels erforderlich ist.
  9. Klicken Sie auf Weiter.
  10. Prüfen Sie auf der Zusammenfassungsseite, ob eine Bereitstellungsumgebung ausgewählt ist. Klicken Sie dann auf Erstellen und bereitstellen.
  11. Klicken Sie auf Proxy bearbeiten, um die Übersichtsseite für den API-Proxy aufzurufen.

Richtlinien ansehen

  1. Klicken Sie im API-Proxy-Editor auf den Tab Develop. Sie werden sehen, dass dem Anfrageablauf des API-Proxys zwei Richtlinien hinzugefügt wurden:
    • API-Schlüssel überprüfen: Prüft den API-Aufruf, um zu gewährleisten, dass ein gültiger API-Schlüssel vorhanden ist (als Abfrageparameter gesendet).
    • Abfrage-Param-API-Schlüssel entfernen: Eine Richtlinie zum Zuweisen von Nachrichten, die den API-Schlüssel nach der Überprüfung entfernt, damit er nicht unnötig weitergegeben und offengelegt wird.
  2. Klicken Sie auf das Symbol „API-Schlüsselrichtlinie überprüfen“ in der Ablaufansicht und sehen Sie sich die XML-Konfiguration der Richtlinie in der unteren Codeansicht an. Das Element <APIKey> teilt der Richtlinie mit, wo es bei einem Aufruf nach dem API-Schlüssel suchen soll. Standardmäßig wird in der HTTP-Anfrage nach dem Schlüssel als Abfrageparameter mit dem Namen apikey gesucht:

    <APIKey ref="request.queryparam.apikey" />

    Der Name apikey ist beliebig. Dies kann ein beliebiges Attribut sein, das den API-Schlüssel enthält.

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.

  1. 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!.

  2. Fehler

    Versuchen Sie nun, den API-Proxy aufzurufen:

    curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey

    Dabei ist YOUR ENV_GROUP_HOSTNAME der 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:

  1. Wählen Sie Publish > API Products aus.
  2. Klicken Sie auf +Erstellen.
  3. 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 der 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. können Sie 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: test oder prod.
    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.
  4. Klicken Sie unter Vorgänge auf VORGANG HINZUFÜGEN.
  5. Wählen Sie im Feld „API-Proxy“ den soeben erstellten API-Proxy aus.
  6. Geben Sie im Feld „Pfad“ „/“ ein. Ignorieren Sie die anderen Felder.
  7. Klicken Sie auf Speichern, um den Vorgang zu speichern.
  8. Klicken Sie auf Speichern, um das API-Produkt zu speichern.

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:

  1. Wählen Sie im Menü Veröffentlichen > Entwickler aus.
    Hinweis: Wenn Sie sich noch auf dem Bildschirm „Entwicklung“ befinden, klicken Sie neben DEVELOP auf „<“, um das Wählen Sie Veröffentlichen > Entwickler aus.
  2. Klicken Sie auf + Entwickler.
  3. Geben Sie im Fenster "New Developer" Folgendes ein:
    In diesem Feld Eingabetaste
    Vorname Keyser
    Nachname Soze
    Nutzername keyser
    E-Mail keyser@example.com
  4. Klicken Sie auf Erstellen.

App registrieren

So registrieren Sie eine Entwickler-App:

  1. Wählen Sie Veröffentlichen > Apps aus.
  2. Klicken Sie auf + App.
  3. Geben Sie im Fenster "Neue Entwickler-App" Folgendes ein:
    In diesem Feld tun Sie Folgendes
    Name und Anzeigename Eingeben: keyser_app
    Developer Wählen Sie Keyser Soze (keyser@example.com) aus.
    Callback URL und Hinweise Leer lassen
  4. Wählen Sie im Abschnitt "Anmeldedaten" die Option Nie aus. Die Anmeldedaten für diese Anwendung laufen nie ab.
  5. Klicken Sie auf Produkt hinzufügen.
  6. Wählen Sie das Produkt aus, das Sie gerade erstellt haben.
  7. Klicken Sie auf Erstellen.

API-Schlüssel abrufen

So rufen Sie den API-Schlüssel ab:

  1. Klicken Sie auf der Seite „Apps“ (Veröffentlichen > Apps) auf keyser_app.
  2. Klicken Sie auf der Seite keyser_app im Abschnitt Anmeldedaten neben Schlüssel auf Anzeigen. Beachten Sie, dass der Schlüssel mit dem von Ihnen erstellten Produkt verknüpft ist.
  3. Wählen Sie den Schlüssel aus und kopieren Sie ihn. Sie benötigen sie 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.

  1. API-Proxy bearbeiten. Wählen Sie Develop > API Proxies > helloworld_apikey und dann die Ansicht Develop aus.
  2. Wählen Sie die Richtlinie API-Schlüssel überprüfen aus und ändern Sie die Richtlinien-XML, damit die Richtlinie in der Datei header und nicht im queryparam nach den Richtlinien sucht:

    <APIKey ref="request.header.x-apikey"/>
  3. Speichern Sie den API-Proxy und stellen Sie ihn mit Bereitstellen bereit.
  4. Führen Sie den folgenden API-Aufruf mit cURL aus, um den API-Schlüssel als Header mit dem Namen x-apikey zu übergeben. Denken Sie daran, den Namen Ihrer Organisation zu ersetzen.

    curl -v -H "x-apikey: {api_key_goes_here}" http://YOUR_ENV_GROUP_HOSTNAME/helloapikey

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:

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.