Auf dieser Seite wird beschrieben, wie Sie mit Clientbibliotheken auf Google APIs zugreifen können.
Clientbibliotheken erleichtern den Zugriff auf Google Cloud APIs mit einer unterstützten Sprache. Sie können Google Cloud APIs direkt verwenden, indem Sie Rohanfragen an den Server senden. Clientbibliotheken bieten jedoch Vereinfachungen, die den zu schreibenden Code erheblich reduzieren. Dies gilt insbesondere für die Authentifizierung, da die Clientbibliotheken Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) unterstützen.
Wenn Sie Anmeldedatenkonfigurationen (JSON, Dateien oder Streams) von einer externen Quelle (z. B. einem Kunden) akzeptieren, lesen Sie die Sicherheitsanforderungen bei der Verwendung von Anmeldedatenkonfigurationen aus einer externen Quelle.
Standardanmeldedaten für Anwendungen mit Clientbibliotheken verwenden
Wenn Sie Ihre Anwendung mit den Standardanmeldedaten für Anwendungen authentifizieren möchten, müssen Sie zuerst Standardanmeldedaten für Anwendungen für die Umgebung einrichten, in der Ihre Anwendung ausgeführt wird. Wenn Sie die Clientbibliothek zum Erstellen eines Clients verwenden, prüft die Clientbibliothek automatisch die Anmeldedaten, die Sie für ADC bereitgestellt haben, und verwendet sie, um die von Ihrem Code verwendeten APIs zu authentifizieren. Ihre Anwendung muss Tokens nicht explizit authentifizieren oder verwalten. Diese Anforderungen werden automatisch von den Authentifizierungsbibliotheken verwaltet.
Für eine lokale Entwicklungsumgebung können Sie ADC mit Ihren Nutzeranmeldedaten oder mit der Identitätsübernahme des Dienstkontos einrichten. Verwenden Sie dazu die gcloud CLI. In Produktionsumgebungen richten Sie ADC ein, indem Sie ein Dienstkonto anhängen.
Beispiel für die Clienterstellung
In den folgenden Codebeispielen wird ein Client für den Cloud Storage-Dienst erstellt. Ihr Code benötigt wahrscheinlich andere Clients. Diese Beispiele sollen nur zeigen, wie Sie einen Client erstellen und ihn ohne Code zur expliziten Authentifizierung verwenden können.
Bevor Sie die folgenden Samples ausführen können, müssen Sie die folgenden Schritte ausführen:
Go
Java
Node.js
PHP
Python
Ruby
API-Schlüssel mit Clientbibliotheken verwenden
API-Schlüssel können nur mit Clientbibliotheken für APIs verwendet werden, die API-Schlüssel akzeptieren. Außerdem darf für den API-Schlüssel keine API-Einschränkung gelten, die seine Verwendung für die API verhindert.
Weitere Informationen zu API-Schlüsseln, die im Expressmodus erstellt wurden, finden Sie in den häufig gestellten Fragen zum Google Cloud Expressmodus.
In diesem Beispiel wird die Cloud Natural Language API verwendet, die API-Schlüssel akzeptiert, um zu zeigen, wie Sie einen API-Schlüssel für die Bibliothek bereitstellen.
C#
Sie müssen die Natural Language-Clientbibliothek installieren, um dieses Beispiel auszuführen.
C++
Sie müssen die Natural Language-Clientbibliothek installieren, um dieses Beispiel auszuführen.
Go
Sie müssen die Natural Language-Clientbibliothek installieren, um dieses Beispiel auszuführen.
Node.js
Sie müssen die Natural Language-Clientbibliothek installieren, um dieses Beispiel auszuführen.
Python
Sie müssen die Natural Language-Clientbibliothek installieren, um dieses Beispiel auszuführen.
Wenn Sie API-Schlüssel in Ihren Anwendungen verwenden, achten Sie darauf, dass sie sowohl beim Speichern als auch bei der Übertragung sicher sind. Wenn Sie Ihre API-Schlüssel öffentlich freigeben, kann dies zu unerwarteten Kosten in Ihrem Konto führen. Weitere Informationen finden Sie unter Best Practices für die Verwaltung von API-Schlüsseln.
Sicherheitsanforderungen bei der Verwendung von Anmeldedatenkonfigurationen aus einer externen Quelle
Normalerweise generieren Sie Anmeldedatenkonfigurationen mithilfe von gcloud-Befehlen oder der Google Cloud Console. Sie können beispielsweise die gcloud CLI verwenden, um eine lokale ADC-Datei oder eine Anmeldekonfigurationsdatei zu generieren. Ebenso können Sie über die Google Cloud Console einen Dienstkontoschlüssel erstellen und herunterladen.
Bei einigen Anwendungsfällen werden Anmeldedatenkonfigurationen jedoch von einer externen Entität bereitgestellt. Diese Anmeldedatenkonfigurationen sind für die Authentifizierung bei Google APIs vorgesehen.
Einige Arten von Anmeldedatenkonfigurationen umfassen Endpunkte und Dateipfade, die von den Authentifizierungsbibliotheken zum Abrufen eines Tokens verwendet werden. Wenn Sie Anmeldedatenkonfigurationen von einer externen Quelle akzeptieren, müssen Sie die Konfiguration vor der Verwendung validieren. Wenn Sie die Konfiguration nicht validieren, kann ein böswilliger Akteur die Anmeldedaten verwenden, um Ihre Systeme und Daten zu schädigen.
Anmeldedatenkonfigurationen aus externen Quellen validieren
Wie Sie Ihre externen Anmeldedaten validieren müssen, hängt davon ab, welche Arten von Anmeldedaten Ihre Anwendung akzeptiert.
Dienstkontoschlüssel validieren
Wenn Ihre Anwendung nur Dienstkontoschlüssel akzeptiert, verwenden Sie einen Anmeldedaten-Ladeprogramm, das speziell für Dienstkontoschlüssel vorgesehen ist, wie in den folgenden Beispielen gezeigt. Der typspezifische Anmeldedaten-Ladeprogramm analysiert nur die Felder für Dienstkontoschlüssel, die keine Sicherheitslücken aufweisen.
C#
var saCredential = ServiceAccountCredential.FromServiceAccountData(stream);
C++
auto cred = google::cloud::MakeServiceAccountCredentials(json)
Java
ServiceAccountCredentials credentials =
ServiceAccountCredentials.fromJson(json, new HttpTransportFactory());
Node.js
const keys = JSON.parse(json_input)
const authClient = JWT.fromJSON(keys);
PHP
cred = new Google\Auth\Credentials\ServiceAccountCredentials($scope, $jsonKey);
Python
cred = service_account.Credentials.from_service_account_info(json_data)
Ruby
creds = Google::Auth::ServiceAccountCredentials.make_creds(json_key_io: json_stream)
Wenn Sie keinen typspezifischen Anmeldedaten-Ladeprogramm verwenden können, prüfen Sie die Anmeldedaten, indem Sie bestätigen, dass der Wert für das Feld type
service_account
ist. Wenn der Wert für das Feld type
ein anderer Wert ist, verwenden Sie den Dienstkontoschlüssel nicht.
Andere Anmeldedatenkonfigurationen validieren
Wenn Ihre Anwendung neben einem Dienstkontoschlüssel jegliche Art von Anmeldedaten akzeptiert, müssen Sie eine zusätzliche Überprüfung durchführen. Beispiele für andere Arten von Anmeldedatenkonfigurationen sind ADC-Anmeldedatendateien, Anmeldedatendateien für die Workload Identity-Föderation oder Anmeldekonfigurationsdateien für die Workforce Identity-Föderation.
In der folgenden Tabelle sind die Felder aufgeführt, die Sie validieren müssen, sofern sie in Ihren Anmeldedaten vorhanden sind. Nicht alle diese Felder sind für alle Anmeldedatenkonfigurationen vorhanden.
Feld | Zweck | Erwarteter Wert |
---|---|---|
service_account_impersonation_url |
Die Authentifizierungsbibliotheken verwenden dieses Feld, um auf einen Endpunkt zuzugreifen und ein Zugriffstoken für das Dienstkonto zu generieren, dessen Identität übernommen wird. | https://iamcredentials.googleapis.com.com/v1/projects/-/serviceAccounts/service account email:generateAccessToken |
token_url |
Die Authentifizierungsbibliotheken senden ein externes Token an diesen Endpunkt, um es gegen ein föderiertes Zugriffstoken auszutauschen. | https://sts.googleapis.com.com/v1/token |
credential_source.file |
Die Authentifizierungsbibliotheken lesen ein externes Token aus der Datei am durch dieses Feld angegebenen Speicherort und senden es an den token_url -Endpunkt.
|
Der Pfad zu einer Datei mit einem externen Token. Dieser Pfad sollte Ihnen bekannt sein. |
credential_source.url |
Ein Endpunkt, der ein externes Token zurückgibt. Die Authentifizierungsbibliotheken senden eine Anfrage an diese URL und die Antwort an den Endpunkt token_url .
|
Eine der folgenden Optionen:
|
credential_source.executable.command |
Wenn die Umgebungsvariable GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES auf 1 festgelegt ist, führen die Authentifizierungsbibliotheken diesen Befehl oder diese ausführbare Datei aus.
|
Eine ausführbare Datei oder ein Befehl, der ein externes Token zurückgibt. Sie sollten diesen Befehl kennen und prüfen, ob er sicher ist. |
credential_source.aws.url |
Die Authentifizierungsbibliotheken senden eine Anfrage an diese URL, um ein AWS-Sicherheitstoken abzurufen. |
Einer der folgenden genauen Werte:
|
credential_source.aws.region_url |
Die Authentifizierungsbibliotheken senden eine Anfrage an diese URL, um die aktive AWS-Region abzurufen. |
Einer der folgenden genauen Werte:
|
credential_source.aws.imdsv2_session_token_url |
Die Authentifizierungsbibliotheken senden eine Anfrage an diese URL, um das AWS-Sitzungstoken abzurufen. |
Einer der folgenden genauen Werte:
|
Nächste Schritte
- Standardanmeldedaten für Anwendungen
- Weitere Informationen zu API-Schlüsseln
- Übersicht über Authentifizierungsmethoden