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 Rohdatenanfragen 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 für die 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 Beispiele 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
Sie können API-Schlüssel nur mit Clientbibliotheken für APIs verwenden, die API-Schlüssel akzeptieren. Außerdem darf für den API-Schlüssel keine API-Einschränkung festgelegt sein, die die Verwendung für die API verhindert.
Weitere Informationen zu API-Schlüsseln, die im Expressmodus erstellt wurden, finden Sie in den FAQ 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 Verwendung von Anmeldedatenkonfigurationen aus einer externen Quelle
Normalerweise generieren Sie Anmeldedatenkonfigurationen mit gcloud CLI-Befehlen oder über die Google Cloud Console. Sie können beispielsweise mit der gcloud CLI eine lokale ADC-Datei oder eine Anmeldekonfigurationsdatei generieren. Ebenso können Sie die Google Cloud Console verwenden, um einen Dienstkontoschlüssel zu erstellen und herunterzuladen.
In einigen Anwendungsfällen werden Ihnen jedoch Anmeldedatenkonfigurationen von einer externen Einheit zur Verfügung gestellt. Diese Anmeldedatenkonfigurationen sind für die Authentifizierung bei Google APIs vorgesehen.
Einige Arten von Anmeldedatenkonfigurationen enthalten Endpunkte und Dateipfade, die von den Authentifizierungsbibliotheken zum Abrufen eines Tokens verwendet werden. Wenn Sie Anmeldedatenkonfigurationen aus einer externen Quelle akzeptieren, müssen Sie die Konfiguration validieren, bevor Sie sie verwenden. Wenn Sie die Konfiguration nicht validieren, kann ein böswilliger Akteur die Anmeldedaten verwenden, um Ihre Systeme und Daten zu gefährden.
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-Loader, der speziell für Dienstkontoschlüssel entwickelt wurde, wie in den folgenden Beispielen gezeigt. Der typspezifische Anmeldedaten-Loader parst nur die Felder, die für Dienstkontoschlüssel vorhanden sind. Diese weisen keine Sicherheitslücken auf.
C#
var saCredential = ServiceAccountCredential.FromServiceAccountData(stream);
C++
auto cred = google::cloud::MakeServiceAccountCredentials(json)
Java
ServiceAccountCredentials credentials =
ServiceAccountCredentials.fromStream(credentialsStream);
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-Loader verwenden können, validieren 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 beliebige Anmeldedaten außer einem Dienstkontoschlüssel 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 Mitarbeiteridentitätsfö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/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 einzutauschen. | https://sts.googleapis.com/v1/token |
credential_source.file |
Die Authentifizierungsbibliotheken lesen ein externes Token aus der Datei am Speicherort, der durch dieses Feld angegeben wird, und senden es an den token_url -Endpunkt.
|
Der Pfad zu einer Datei, die ein externes Token enthält. Sie sollten diesen Pfad kennen. |
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 .
|
Eines der folgenden Elemente:
|
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 erkennen und bestätigen, dass 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