API Gateway unterstützt mehrere Authentifizierungsmethoden, die sich für unterschiedliche Anwendungen und Anwendungsfälle eignen. API Gateway verwendet die Authentifizierungsmethode, die Sie in der Dienstkonfiguration angegeben haben, um eingehende Anfragen zu prüfen, bevor sie an das API-Back-End weitergeleitet werden. Auf dieser Seite erhalten Sie eine Übersicht über die unterstützten Authentifizierungsmethoden in API Gateway.
API-Schlüssel
Ein API-Schlüssel ist ein einfacher String, der ein Google Cloud-Projekt zu Kontingent-, Abrechnungs- und Monitoringzwecken identifiziert. Entwickler generieren einen API-Schlüssel in einem Projekt in der Cloud Console und betten diesen in jeden Aufruf an die API als Abfrageparameter oder in einem Anfrageheader ein.
Wenn Sie das Anfordern von API-Schlüsseln in Ihrer API-Konfiguration festlegen, verwendet API Gateway den API-Schlüssel, um das Google Cloud-Projekt zu suchen, dem dieser API-Schlüssel zugeordnet ist. API Gateway lehnt Anfragen generell ab, es sei denn, der API-Schlüssel wurde in Ihrem Google Cloud-Projekt oder in anderen Google Cloud-Projekten generiert, in denen die API aktiviert wurde.
Im Gegensatz zu Anmeldedaten, die kurzlebige Tokens oder signierte Anfragen verwenden, sind API-Schlüssel Teil der Anfrage. Da sie für Man-in-the-Middle-Angriffe anfällig sind, gelten sie als weniger sicher. Sie können API-Schlüssel zusätzlich zu einer der unten beschriebenen Authentifizierungsmethoden verwenden. Daher sollten Sie aus Sicherheitsgründen nicht ausschließlich API-Schlüssel verwenden, wenn API-Aufrufe sensible Daten enthalten.
Anwendungsfall
Zur Verwendung von API-Gateway-Funktionen wie Kontingenten können Sie einen API-Schlüssel übergeben, damit API-Gateway das Google Cloud-Projekt identifizieren kann, dem die Clientanwendung zugeordnet ist.
Informationen zur API-Schlüsselauthentifizierung für das API-Gateway
Wenn Sie einen API-Schlüssel für die Authentifizierung verwenden, müssen Sie zuerst die API-Schlüsselunterstützung für Ihren Dienst aktivieren. Geben Sie den folgenden Befehl ein. Dabei gilt:
- MANAGED_SERVICE_NAME ist der Name des verwalteten Dienstes, der beim Bereitstellen der API erstellt wurde. Sie finden diesen Namen in der Konsole in der Spalte für den verwalteten Dienst für Ihre API auf der Landingpage der APIs. Alternativ können Sie diesen Namen im Attribut
Managed service
mithilfe des Befehlsgcloud api-gateway apis describe
ermitteln. - PROJECT_ID gibt Namen Ihres Google Cloud-Projekts an.
gcloud services enable .apigateway.PROJECT_ID.cloud.goog
Beispiel:
gcloud services enable my-api-a12bcd345e67f89g0h.apigateway.my-project.cloud.goog
Dienstkonten
Zur Identifizierung eines Dienstes, der Anfragen an Ihre API sendet, wird ein Dienstkonto verwendet. Mit dem privaten Schlüssel des Dienstkontos signiert der aufrufende Dienst ein sicheres JSON Web Token (JWT) und sendet es in der Anfrage an die API.
Anwendungsfall
JWTs und Dienstkonten eignen sich gut für Mikrodienste. Weitere Informationen finden Sie unter Authentifizierung mit einem Dienstkonto.