In diesem Dokument werden einige wichtige Authentifizierungskonzepte erläutert. Außerdem erfahren Sie, wo Sie Hilfe bei der Implementierung oder Fehlerbehebung bei der Authentifizierung erhalten. Der Schwerpunkt der Authentifizierungsdokumentation liegt auf Google Cloud-Diensten. Die Liste der Authentifizierungsanwendungsfälle und das Einführungsmaterial auf dieser Seite enthalten jedoch auch Anwendungsfälle für andere Google-Produkte.
Einführung
Bei der Authentifizierung wird Ihre Identität mithilfe von Anmeldedaten bestätigt. Bei der Authentifizierung wird geprüft, ob Sie es sind.
Google bietet viele APIs und Dienste, für die eine Authentifizierung erforderlich ist. Google bietet auch eine Reihe von Diensten zum Hosten von Anwendungen, die von unseren Kunden geschrieben wurden. Diese Anwendungen müssen auch die Identität ihrer Nutzer bestimmen.
Hilfe zur Authentifizierung erhalten
Ich möchte… | Informationen |
---|---|
Authentifizieren Sie sich mit meiner Programmiersprache bei einer Anwendung in einem Google Cloud-Dienst. | Richten Sie die Standardanmeldedaten für Anwendungen ein und verwenden Sie dann eine der Cloud-Clientbibliotheken. |
Authentifizierung bei einer Anwendung, für die ein ID-Token erforderlich ist. | Rufen Sie ein OIDC-ID-Token (OpenID Connect) ab und geben Sie es mit Ihrer Anfrage an. |
Nutzerauthentifizierung für eine Anwendung implementieren, die auf Dienste oder Ressourcen von Google oder Google Cloud zugreift. | Einen Vergleich der Optionen finden Sie unter Anwendungsnutzer authentifizieren. |
Einige gcloud -Befehle in meiner lokalen Entwicklungsumgebung testen.
|
Die gcloud CLI initialisieren. |
Einige Google Cloud REST API-Anfragen in meiner lokalen Entwicklungsumgebung testen. |
Ein Befehlszeilentool wie curl verwenden, um die REST API aufzurufen.
|
Probieren Sie ein Code-Snippet aus, das in meiner Produktdokumentation enthalten ist. | Richten Sie ADC für eine lokale Entwicklungsumgebung ein und installieren Sie die Clientbibliothek Ihres Produkts in Ihrer lokalen Umgebung. Die Clientbibliothek findet Ihre Anmeldedaten automatisch. |
Hilfe bei einem anderen Anwendungsfall für die Authentifizierung | Weitere Informationen finden Sie auf der Seite Authentifizierungsanwendungsfälle. |
Liste der Produkte, die Google im Bereich der Identitäts- und Zugriffsverwaltung bereitstellt | Weitere Informationen finden Sie auf der Seite Google-Produkte für die Identitäts- und Zugriffsverwaltung. |
Die richtige Authentifizierungsmethode für Ihren Anwendungsfall auswählen
Wenn Sie auf Google Cloud-Dienste über die Google Cloud CLI, Cloud-Clientbibliotheken und Tools zugreifen, die Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) wie Terraform oder REST unterstützen, verwenden Sie das folgende Diagramm, um eine Authentifizierungsmethode auszuwählen:
Dieses Diagramm führt Sie durch die folgenden Fragen:
-
Führen Sie Code in einer Entwicklungsumgebung für einzelne Nutzer aus, z. B. Ihrer eigenen Workstation, Cloud Shell oder einer virtuellen Desktop-Oberfläche?
- Falls ja, fahren Sie mit Frage 4 fort.
- Falls nein, fahren Sie mit Frage 2 fort.
- Führen Sie Code in Google Cloud aus?
- Falls ja, fahren Sie mit Frage 3 fort.
- Falls nein, fahren Sie mit Frage 5 fort.
- Führen Sie Container in Google Kubernetes Engine oder GKE Enterprise aus?
- Wenn ja, verwenden Sie die Workload Identity-Föderation für GKE, um Dienstkonten an Kubernetes-Pods anzuhängen.
- Falls nicht, fügen Sie der Ressource ein Dienstkonto hinzu.
-
Erfordert Ihr Anwendungsfall ein Dienstkonto?
Sie können beispielsweise die Authentifizierung und Autorisierung für Ihre Anwendung in allen Umgebungen konsistent konfigurieren.
-
Wird Ihre Arbeitslast bei einem externen Identitätsanbieter authentifiziert, der die Identitätsföderation von Arbeitslasten unterstützt?
- Falls ja, konfigurieren Sie die Identitätsföderation von Arbeitslasten, damit Anwendungen, die lokal oder auf anderen Cloud-Anbietern ausgeführt werden, ein Dienstkonto verwenden können.
- Falls nicht, erstellen Sie einen Dienstkontoschlüssel.
oauth 2.0
Google APIs implementieren und erweitern das OAuth 2.0-Framework. Weitere Informationen finden Sie in der Dokumentation für Ihre Umgebung und Ihren Anwendungsfall.
Autorisierungsmethoden für Google Cloud-Dienste
Google Cloud-Dienste verwenden zur Authentifizierung die Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM). IAM bietet eine detaillierte Kontrolle nach Hauptkonto und Ressource. Wenn Sie sich bei Google Cloud-Diensten authentifizieren, verwenden Sie im Allgemeinen einen Bereich, der alle Google Cloud-Dienste enthält (https://www.googleapis.com/auth/cloud-platform
).
OAuth 2.0-Bereiche können eine zweite Schutzebene bieten, die nützlich ist, wenn Ihr Code in einer Umgebung ausgeführt wird, in der die Tokensicherheit ein Problem darstellt, z. B. eine mobile App. In diesem Szenario können Sie detaillierte Bereiche verwenden, um das Risiko bei einem manipulierten Token zu reduzieren. Eine Liste der von einer API-Methode akzeptierten Bereiche finden Sie in der API-Referenz in der Produktdokumentation.
Standardanmeldedaten für Anwendungen
Application Default Credentials (ADC) ist eine Strategie, die von den Authentifizierungsbibliotheken verwendet wird, um Anmeldedaten automatisch basierend auf der Anwendungsumgebung zu finden. Die Authentifizierungsbibliotheken stellen diese Anmeldedaten für Cloud-Clientbibliotheken und Google API-Clientbibliotheken zur Verfügung. Wenn Sie ADC verwenden, kann Ihr Code in einer Entwicklungs- oder Produktionsumgebung ausgeführt werden, ohne dass sich die Authentifizierung Ihrer Anwendung bei Google Cloud-Diensten und APIs ändert.
Wenn Sie Code schreiben, der Google Cloud-Dienste verwenden muss, sollten Sie nach Möglichkeit ADC verwenden. Die Verwendung von Standardanmeldedaten für Anwendungen kann Ihren Entwicklungsprozess vereinfachen, da Sie damit denselben Authentifizierungscode in verschiedenen Umgebungen verwenden können.
Bevor Sie ADC verwenden können, müssen Sie Ihre Anmeldedaten für ADC angeben, je nachdem, wo Ihr Code ausgeführt werden soll. ADC sucht automatisch Anmeldedaten und ruft ein Token im Hintergrund ab, sodass Ihr Authentifizierungscode ohne Änderung in verschiedenen Umgebungen ausgeführt werden kann. Beispielsweise kann sich dieselbe Version Ihres Codes bei der Ausführung auf einer Entwicklungs-Workstation oder Compute Engine bei Google Cloud APIs authentifizieren.
Ihre gcloud-Anmeldedaten sind nicht identisch mit den Anmeldedaten, die Sie dem ADC über die gcloud CLI mitteilen. Weitere Informationen finden Sie unter Authentifizierungskonfiguration der gcloud CLI und ADC-Konfiguration.
Terminologie
Die folgenden Begriffe sind für die Authentifizierung und Autorisierung wichtig.
Authentifizierung
Bei der Authentifizierung wird die Identität des Hauptkontos bestimmt, das auf eine Ressource zugreifen möchte.
Autorisierung
Die Autorisierung dient dazu festzustellen, ob das Hauptkonto oder die Anwendung, die auf eine Ressource zugreifen möchte, für diese Zugriffsebene autorisiert wurde.
Anmeldedaten
Wann in diesem Dokument der Begriff Nutzerkonto verwendet wird, bezieht er sich auf ein Google-Konto oder ein Nutzerkonto, das von Ihrem Identitätsanbieter verwaltet und mit Workforce Identity-Föderation verbunden ist.
Zur Authentifizierung sind Anmeldedaten ein digitales Objekt, das einen Identitätsnachweis dient. Passwörter, PINs und biometrische Daten können je nach Anwendungsanforderungen als Anmeldedaten verwendet werden. Wenn Sie sich beispielsweise in Ihrem Nutzerkonto anmelden, geben Sie Ihr Passwort an und erfüllen alle Anforderungen für die 2-Faktor-Authentifizierung als Nachweis, dass das Konto tatsächlich Ihnen gehört und Sie nicht gefälscht werden durch ein böswilliger Akteur.
Tokens werden manchmal als Anmeldedaten bezeichnet. In dieser Dokumentation werden sie jedoch als digitale Objekte bezeichnet, die als Nachweis dafür dienen, dass der Aufrufer die richtigen Anmeldedaten bereitstellt. Die Tokens selbst sind jedoch keine Anmeldedaten.
Der Typ der Anmeldedaten, die Sie angeben müssen, hängt von der Authentifizierung ab. Die folgenden Typen von Anmeldedaten können in der Google Cloud Console erstellt werden:
API-Schlüssel
Im Gegensatz zu anderen Anmeldedaten identifizieren API-Schlüssel kein Hauptkonto. API-Schlüssel stellen ein Google Cloud-Projekt für Abrechnungs- und Kontingentzwecke bereit.
Viele Google APIs akzeptieren keine API-Schlüssel. Weitere Informationen zu API-Schlüsseln finden Sie unter API-Schlüssel.
OAuth Client-IDs
OAuth-Client-IDs werden zum Identifizieren einer Anwendung bei Google Cloud verwendet. Das ist erforderlich, wenn Sie auf Ressourcen Ihrer Endnutzer zugreifen möchten. Diese werden auch als dreibeiniges OAuth (3LO) bezeichnet. Weitere Informationen zum Abrufen und Verwenden einer OAuth-Client-ID finden Sie unter OAuth 2.0 einrichten.
Dienstkontoschlüssel
Dienstkontoschlüssel identifizieren ein Hauptkonto (das Dienstkonto) und das mit dem Dienstkonto verknüpfte Projekt.
Hauptkonto
Ein Hauptkonto ist eine Identität, der Zugriff auf eine Ressource gewährt werden kann. Für die Authentifizierung unterstützen Google APIs zwei Arten von Hauptkonten: Nutzerkonten und Dienstkonten.
Ob Sie ein Nutzerkonto oder ein Dienstkonto zur Authentifizierung verwenden, hängt von Ihrem Anwendungsfall ab. Sie können beide verwenden, jeweils in verschiedenen Phasen Ihres Projekts oder in verschiedenen Entwicklungsumgebungen.
Nutzerkonten
Nutzerkonten stellen einen Entwickler, Administrator oder eine andere Person dar, die mit Google APIs und Diensten interagiert.
Nutzerkonten werden als Google-Konten verwaltet, entweder mit Google Workspace oder mit Cloud Identity. Sie können auch Nutzerkonten sein, die von einem externen Identitätsanbieter verwaltet und mit der Workforce Identity-Föderation verbunden sind.
Mit einem Nutzerkonto können Sie sich auf folgende Weise bei Google APIs und Diensten authentifizieren:
- Verwenden Sie die gcloud CLI, um Standardanmeldedaten für Anwendungen einzurichten.
- Verwenden Sie die Nutzeranmeldedaten, um sich in der Google Cloud CLI anzumelden und dann mit dem Tool auf Google Cloud-Dienste zuzugreifen.
- Verwenden Sie Ihre Nutzeranmeldedaten, um die Identität eines Dienstkontos zu übernehmen.
- Verwenden Sie die Nutzeranmeldedaten, um sich in der Google Cloud CLI anzumelden und dann generieren Sie mit dem Tool Zugriffstokens.
Eine Übersicht über die Konfiguration von Identitäten für Nutzer in Google Cloud finden Sie unter Identitäten für Nutzer.
Dienstkonten
Dienstkonten sind Konten, die keinen menschlichen Nutzer darstellen. Sie bieten eine Möglichkeit zur Authentifizierung und Autorisierung, wenn ein Mensch nicht direkt beteiligt ist, z. B. wenn eine Anwendung auf Google Cloud-Ressourcen zugreifen muss. Dienstkonten werden von IAM verwaltet.
In der folgenden Liste finden Sie einige Methoden zur Verwendung eines Dienstkontos zur Authentifizierung bei Google APIs und Diensten, geordnet vom sichersten bis zum am wenigsten sicheren. Weitere Informationen finden Sie auf dieser Seite unter Die richtige Authentifizierungsmethode für Ihren Anwendungsfall auswählen.
Hängen Sie ein nutzerverwaltetes Dienstkonto an die Ressource an und verwenden Sie ADC zur Authentifizierung.
Dies ist die empfohlene Methode zur Authentifizierung von Produktionscode, der in Google Cloud ausgeführt wird.
Dienstkonto verwenden, um die Identität eines anderen Dienstkontos zu übernehmen
Mit der Identitätsübernahme des Dienstkontos können Sie einem Dienstkonto vorübergehend mehr Berechtigungen gewähren. Wenn Sie vorübergehend zusätzliche Berechtigungen erteilen, kann dieses Dienstkonto den erforderlichen Zugriff ausführen, ohne dauerhaft mehr Berechtigungen erwerben zu müssen.
Verwenden Sie Workload Identity-Föderation, um Arbeitslasten zu authentifizieren, die lokal oder bei einem anderen Cloud-Anbieter ausgeführt werden.
-
Die Verwendung des Standarddienstkontos wird nicht empfohlen, da standardmäßig das Standarddienstkonto sehr privilegiert ist, was gegen das Prinzip der geringsten Berechtigung verstößt.
Eine Übersicht über die Konfiguration von Workload Identitys, einschließlich Dienstkonten, für Google Cloud finden Sie unter Identitäten für Arbeitslasten. Best Practices finden Sie unter Best Practices für die Verwendung von Dienstkonten.
Token
Für die Authentifizierung und Autorisierung ist ein Token ein digitales Objekt, das zeigt, dass ein Aufrufer die richtigen Anmeldedaten bereitgestellt hat, die für dieses Token ausgetauscht wurden. Das Token enthält Informationen zur Identität des Hauptkontos, das die Anfrage stellt, und zu der Art des Zugriffs, für den er autorisiert ist.
Tokens können sich wie Hotelschlüssel vorstellen. Wenn Sie in ein Hotel einchecken und die entsprechende Dokumentation am Hotelbuchungsbeleg vorlegen, erhalten Sie einen Schlüssel, mit dem Sie auf bestimmte Hotelressourcen zugreifen können. Mit dem Schlüssel können Sie beispielsweise Zugriff auf Ihr Zimmer und den Gastaufzug, aber nicht auf einen anderen Raum oder den Aufzug des Dienstes gewähren.
Mit Ausnahme von API-Schlüsseln unterstützen Google APIs Anmeldedaten nicht direkt. Ihre Anwendung muss ein Token abrufen oder generieren und es der API bereitstellen. Es gibt verschiedene Arten von Tokens. Weitere Informationen finden Sie unter Tokentypen.
Arbeitslast und Mitarbeiter
Google Cloud Identity- und Zugriffsprodukte ermöglichen den Zugriff auf Google Cloud-Dienste und -Ressourcen sowohl für den programmatischen Zugriff als auch für menschliche Nutzer. Google verwendet die Begriffe Arbeitslast für den programmatischen Zugriff und Mitarbeiter für den Nutzerzugriff.
Mit der Workload Identity-Föderation können Sie Zugriff auf lokale oder Multi-Cloud-Arbeitslasten gewähren, ohne dass Sie Dienstkontoschlüssel erstellen und verwalten müssen.
Mit der Workforce Identity-Föderation können Sie einen externen Identitätsanbieter (IdP) verwenden, um eine Gruppe von Nutzern, z. B. Mitarbeiter, Partner und Auftragnehmer, mithilfe von IAM zu authentifizieren und zu autorisieren, damit die Nutzer auf Google Cloud-Dienste zugreifen können.
Nächste Schritte
- Weitere Informationen dazu, wie Google-Dienste IAM zur Steuerung des Zugriffs auf Google Cloud-Ressourcen verwenden.
- Informationen zur Funktionsweise von Standardanmeldedaten für Anwendungen und zur Einrichtung in einer Vielzahl von Entwicklungsumgebungen.