API-Gateway-Architektur

API Gateway ist ein API-Verwaltungssystem, das Verwaltung, Monitoring und Authentifizierung für Ihre APIs ermöglicht. API Gateway besteht aus folgenden Komponenten:

  • API-Gateway: zur Verwaltung aller Aspekte einer bereitgestellten API
  • Service Control: zur Anwendung von API-Verwaltungsregeln
  • Service Management: zum Verwalten von API-Konfigurationen
  • Cloud SDK: zum Bereitstellen und Verwalten Ihrer APIs
  • Google Cloud Console: zum Protokollieren, Überwachen und Freigeben

Architektur

Im Folgenden finden Sie ein grobes Diagramm der wichtigsten Komponenten des API-Gateways:

Die wichtigsten Komponenten von API Gateway.

In diesem Diagramm gilt Folgendes:

  • Der API-Anbieter ist für das Erstellen und Bereitstellen einer API auf API Gateway zuständig. Jede API wird durch eine Datei definiert, die als OpenAPI 2.0-Spezifikation geschrieben ist.

    Die OpenAPI-Spezifikation definiert die öffentlich zugängliche URL des REST-Endpunkts für die API, den von der API aufgerufenen Back-End-Dienst sowie andere Eigenschaften der API wie Authentifizierung, Datenformat und Antwortoptionen.

  • Der API-Client stellt eine REST-Anfrage an eine in API Gateway gehostete API, um auf Back-End-Dienste zuzugreifen. Ein API-Client kann eine beliebige Anwendung sein, die einen REST-Aufruf ausführen kann, z. B. ein Browser, eine mobile App oder eine Webanwendung.

    Der API-Client benötigt nur die URL der API, das Anfrageverb (z. B. GET, PUT, POST, DELETE), Authentifizierungsanforderungen und das Format aller Daten, die an die API gesendet oder von dieser empfangen werden.

    Der API-Client muss nichts über die Back-End-Implementierung wissen. Tatsächlich kann eine einzelne auf API Gateway gehostete API für den Zugriff auf verschiedene Back-Ends anhand der in der Anfrage übergebenen Informationen konfiguriert werden.

API-Gateway-Komponenten

API Gateway

API Gateway bietet eine vollständig verwaltete, nutzungsabhängige Lösung für das Hosting Ihrer APIs. API Gateway bietet sicheren Zugriff auf Ihre Back-End-Dienste über eine klar definierte REST API, die über alle Dienste hinweg unabhängig von der Dienstimplementierung konsistent ist.

API Gateway ist in Google Cloud eingebunden, sodass Sie dieselben Entwicklungs-, Monitoring-, Logging- und Trace-Tools verwenden können, die Sie auch mit jedem anderen Google Cloud-Produkt verwenden.

Wenn Sie eine Verbindung zu einem Back-End-Dienst außerhalb von Google Cloud herstellen, können Sie weiterhin alle Google Cloud-Dienste nutzen, einschließlich der Authentifizierungs- und Autorisierungsdienste, die zur Steuerung des Zugriffs auf Ihre APIs verwendet werden.

Service Control API

Die Service Control API wendet API-Verwaltungsregeln während der Laufzeit an (zum Beispiel Authentifizierung, Monitoring und Logging von API-Schlüsseln). Service Control bietet die folgenden Methoden:

  • Überprüfung: verifiziert Authentifizierungs- und API-Schlüssel und gibt an, ob ein Aufruf zugelassen werden soll
  • Bericht: benachrichtigt die Systeme über die Aufzeichnungen für Logging und Monitoring

Service Management API

Verwenden Sie die OpenAPI-Spezifikation, um Ihre API zu definieren. Anschließend verwenden Sie das Cloud SDK, um die OpenAPI-Spezifikation in Service Management hochzuladen, das die API-Konfiguration erstellt. Hier werden auch andere Konfigurationsaufgaben durchgeführt, z. B. das Freigeben der API für andere Entwickler, das Aktivieren oder Deaktivieren der API in verschiedenen Projekten und das Generieren von API-Schlüsseln.

Cloud SDK

Das Cloud SDK enthält das glcoud-Befehlszeilentool, mit dem Sie Aufrufe an verschiedene Google Cloud-Dienste senden können. Sie verwenden das gcloud-Befehlszeilentool, um Ihre OpenAPI-Spezifikation hochzuladen, mit der die API-Konfiguration erstellt wird, und um dann die API-Konfiguration für das API-Gateway bereitzustellen.

Cloud Console

Google Cloud Console ist die grafische Benutzeroberfläche für die Google Cloud. Verwenden Sie die Google Cloud Console, um Monitoring- und Loggingdaten anzuzeigen, die von Service Control aufgezeichnet wurden, um die Authentifizierung und Autorisierung zu konfigurieren und damit Entwickler API-Schlüsseln zum Aufrufen der API generieren können.

API-Anfrage verarbeiten

In einer API-Konfiguration gibt es zwei Arten von Endpunkten:

  • API-Endpunkt: Definiert den öffentlich verfügbaren Endpunkt, den Clients verwenden, um Ihre APIs zu verwenden.
  • Back-End-Endpunkt: definiert den Endpunkt, mit dem die API eine Verbindung zu Ihrem Back-End-Dienst herstellt. Sicherheitseinstellungen wie der HTTP- oder HTTPS-Zugriff werden durch die Implementierung des Back-End-Dienstes definiert.

Anfragen an den API-Endpunkt werden an den Back-End-Endpunkt weitergegeben, einschließlich aller Daten, die als Teil der Anfrage übergeben werden. Antworten vom Back-End-Dienst, einschließlich aller vom Dienst zurückgegebenen Daten, werden an den Client zurückgesendet.

Routing anfordern

Wenn eine Anfrage empfangen wird:

  1. API Gateway erstellt ein Trace-Token für Cloud Trace.

  2. API Gateway gleicht den Pfad der eingehenden Anfragen mit der Ziel-API ab. Nachdem eine passende Route gefunden wurde, führt API Gateway alle Authentifizierungsschritte für die angegebene API aus.

  3. Wenn eine JWT-Validierung notwendig ist, validiert API Gateway die Authentifizierung mithilfe des passenden öffentlichen Schlüssels für den Signer und validiert das Zielgruppenfeld in JWT. Falls ein API-Schlüssel benötigt wird, ruft API Gateway die Service Control API auf, um den Schlüssel zu validieren.

  4. Service Control sucht den Schlüssel, um ihn zu validieren, und überprüft, ob in dem Projekt, zu dem der Schlüssel gehört, die API aktiviert ist. Falls der Schlüssel nicht gültig ist oder die API im Projekt nicht aktiviert ist, wird der Aufruf zurückgewiesen. Dies wird durch die Service Control API protokolliert.

  5. Falls Service Control den Schlüssel erfolgreich validiert, wird die Anfrage, zusammen mit den ursprünglichen Headern sowie, falls geeignet, einem JWT-Validierungs-Header an das Back-End weitergeleitet.

  6. Geht vom Back-End eine Antwort ein, gibt API Gateway die Antwort an den Aufrufer zurück und schickt die endgültigen Zeitinformationen an Trace. Die Aufrufpunkte werden über die Service Control API erfasst, die Messdaten und Logs dann an die entsprechenden Ziele schreibt.

Nächste Schritte