Auf dieser Seite wird erläutert, wann und wie Sie eine OAuth-Konfiguration für Identity-Aware Proxy (IAP) anpassen.
IAP verwendet einen von Google verwalteten OAuth-Client, um Nutzer zu authentifizieren.
Der von Google verwaltete OAuth-Client schränkt den Zugriff auf Nutzer innerhalb derselben Organisation ein, wenn sie über einen Browser auf IAP-kompatible Apps zugreifen.
Wann ist eine benutzerdefinierte OAuth-Konfiguration zu verwenden?
Sie müssen eine benutzerdefinierte OAuth-Konfiguration verwenden, um Folgendes zu tun:
- Damit Nutzer außerhalb der Organisation auf IAP-kompatible Apps zugreifen können.
- Damit Sie während der Authentifizierung Ihre eigenen Markeninformationen anzeigen können.
- Sie können den programmatischen Zugriff auf Ihre Anwendung aktivieren.
Wenn Sie Ihre OAuth-Konfiguration anpassen, müssen Sie auch den OAuth-Zustimmungsbildschirm konfigurieren. Dazu müssen die Branding-Informationen für Ihre App den Google-Überprüfungsprozess durchlaufen. Weitere Informationen zum Überprüfungsprozess finden Sie unter OAuth-Zustimmungsbildschirm einrichten.
Sie sind dafür verantwortlich, die Anmeldedaten für einen benutzerdefinierten OAuth-Client zu erstellen und zu verwalten. Dazu gehört auch, den Clientschlüssel sicher zu speichern und bei Bedarf für autorisierte Nutzer freizugeben.
Vergleich zwischen von Google verwaltetem OAuth-Client und benutzerdefiniertem OAuth-Client
In der folgenden Tabelle wird der von Google verwaltete OAuth-Client mit einem benutzerdefinierten OAuth-Client verglichen.
Von Google verwalteter OAuth-Client | Benutzerdefinierter OAuth-Client | |
---|---|---|
Nutzer | Nur intern | Interne und externe |
Brand | Google Cloud-Marke | Kundeneigene Marke |
OAuth-Konfiguration | Von Google konfiguriert | Vom Kunden konfiguriert |
OAuth-Anmeldedaten | Von Google verwaltet | Vom Kunden verwaltet |
Anwendungszugriff | Nur Browserfluss | Browserfluss und programmatischer Zugriff |
IAP mit einer benutzerdefinierten OAuth-Clientkonfiguration aktivieren
App Engine
Console
Wenn Sie den OAuth-Zustimmungsbildschirm Ihres Projekts noch nicht konfiguriert haben, werden Sie dazu aufgefordert. Eine Anleitung dazu finden Sie unter OAuth-Zustimmungsbildschirm einrichten.
IAP-Zugriff einrichten
-
Rufen Sie die Seite Identity-Aware Proxy auf.
Zur Seite "Identity-Aware Proxy" - Wählen Sie das Projekt aus, das Sie mit IAP sichern möchten.
- Klicken Sie das Kästchen neben der Ressource an, für die Sie Zugriff gewähren möchten.
- Klicken Sie im rechten Bereich auf Hauptkonto hinzufügen.
-
Fügen Sie im daraufhin angezeigten Dialogfeld Hauptkonten hinzufügen die E-Mail-Adressen von Nutzergruppen oder einzelnen Nutzern hinzu, denen Sie für das Projekt die Rolle Nutzer von IAP-gesicherten Web-Apps zuweisen möchten.
Folgende Hauptkonten können diese Rolle haben:
- Google-Konto: nutzer@gmail.com
- Google Group: admins@googlegroups.com
- Dienstkonto: server@beispiel.gserviceaccount.com
- Google Workspace-Domain: beispiel.de
Fügen Sie unbedingt ein Google-Konto hinzu, auf das Sie zugreifen können.
- Wählen Sie in der Drop-down-Liste Rollen den Eintrag Cloud IAP > Nutzer von IAP-gesicherten Web-Apps aus.
- Klicken Sie auf Speichern.
IAP aktivieren
-
Suchen Sie auf der Seite Identity-Aware Proxy unter ANwendungen nach der Anwendung, für die der Zugriff beschränkt werden soll.
- Klicken Sie im angezeigten Fenster IAP aktivieren auf Aktivieren, um zu bestätigen, dass die Ressource durch IAP gesichert werden soll. Nachdem Sie IAP aktiviert haben, sind für alle Verbindungen zu Ihrem Load-Balancer Anmeldedaten erforderlich. Zugriff erhalten nur Konten mit der Rolle Nutzer von IAP-gesicherten Web-Apps für das Projekt.
gcloud
Bevor Sie Ihr Projekt und IAP einrichten, benötigen Sie eine aktuelle Version der gcloud CLI. Eine Anleitung zum Installieren der gcloud CLI finden Sie unter gcloud CLI installieren.
-
Führen Sie zur Authentifizierung den folgenden Befehl über die Google Cloud CLI aus.
gcloud auth login
- Folgen Sie der angezeigten URL, um sich anzumelden.
- Kopieren Sie, nachdem Sie sich angemeldet haben, den angezeigten Bestätigungscode und fügen Sie ihn in die Befehlszeile ein.
-
Führen Sie den folgenden Befehl aus, um das Projekt anzugeben, das die Ressource enthält, die Sie mit IAP schützen möchten.
gcloud config set project PROJECT_ID
- Folgen Sie der Anleitung unter OAuth-Clients für IAP erstellen, um den OAuth-Zustimmungsbildschirm zu konfigurieren und den OAuth-Client zu erstellen.
- Speichern Sie die OAuth-Client-ID und das Secret.
-
Führen Sie den folgenden Befehl aus, um IAP zu aktivieren.
gcloud iap web enable \ --oauth2-client-id=CLIENT_ID \ --oauth2-client-secret=CLIENT_SECRET \ --resource-type=app-engine
Nachdem Sie IAP aktiviert haben, können Sie mit der gcloud CLI die IAP-Zugriffsrichtlinie mithilfe der IAM-Rolle roles/iap.httpsResourceAccessor
ändern. Weitere Informationen zum Verwalten von Rollen und Berechtigungen.
API
Folgen Sie der Anleitung unter OAuth-Clients für IAP erstellen, um den OAuth-Zustimmungsbildschirm zu konfigurieren und den OAuth-Client zu erstellen.
Speichern Sie die OAuth-Client-ID und das Secret.
Führen Sie den folgenden Befehl aus, um eine
settings.json
-Datei vorzubereiten.cat << EOF > settings.json { "iap": { "enabled":true, "oauth2ClientId" : CLIENT_ID, "oauth2ClientSecret" : CLIENT_SECRET, } } EOF
Führen Sie den folgenden Befehl aus, um IAP zu aktivieren.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
Nachdem Sie IAP aktiviert haben, können Sie mit der Google Cloud CLI die IAP-Zugriffsrichtlinie mithilfe der IAM-Rolle roles/iap.httpsResourceAccessor
ändern. Weitere Informationen zum Verwalten von Rollen und Berechtigungen.
Compute Engine
Console
Wenn Sie den OAuth-Zustimmungsbildschirm Ihres Projekts noch nicht konfiguriert haben, werden Sie dazu aufgefordert. Eine Anleitung dazu finden Sie unter OAuth-Zustimmungsbildschirm einrichten.
IAP-Zugriff einrichten
-
Rufen Sie die Seite Identity-Aware Proxy auf.
Zur Seite "Identity-Aware Proxy" - Wählen Sie das Projekt aus, das Sie mit IAP sichern möchten.
-
Klicken Sie das Kästchen neben der Ressource an, für die Sie Zugriff gewähren möchten.
Wenn keine Ressource angezeigt wird, prüfen Sie, ob die Ressource erstellt wurde und der BackendConfig-Compute Engine-Ingress-Controller synchronisiert ist.
Führen Sie den folgenden gcloud-Befehl aus, um zu prüfen, ob der Backend-Dienst verfügbar ist:
gcloud compute backend-services list
- Klicken Sie im rechten Bereich auf Hauptkonto hinzufügen.
-
Fügen Sie im daraufhin angezeigten Dialogfeld Hauptkonten hinzufügen die E-Mail-Adressen von Nutzergruppen oder einzelnen Nutzern hinzu, denen Sie für das Projekt die Rolle Nutzer von IAP-gesicherten Web-Apps zuweisen möchten.
Folgende Hauptkonten können diese Rolle haben:
- Google-Konto: nutzer@gmail.com
- Google Group: admins@googlegroups.com
- Dienstkonto: server@beispiel.gserviceaccount.com
- Google Workspace-Domain: beispiel.de
Fügen Sie unbedingt ein Google-Konto hinzu, auf das Sie zugreifen können.
- Wählen Sie in der Drop-down-Liste Rollen den Eintrag Cloud IAP > Nutzer von IAP-gesicherten Web-Apps aus.
- Klicken Sie auf Speichern.
gcloud
Bevor Sie Ihr Projekt und IAP einrichten, benötigen Sie eine aktuelle Version der gcloud CLI. Eine Anleitung zur Installation der gcloud CLI finden Sie unter gcloud CLI installieren.
-
Führen Sie zum Authentifizieren den folgenden Befehl über die Google Cloud CLI aus.
gcloud auth login
- Folgen Sie der angezeigten URL, um sich anzumelden.
- Kopieren Sie, nachdem Sie sich angemeldet haben, den angezeigten Bestätigungscode und fügen Sie ihn in die Befehlszeile ein.
-
Führen Sie den folgenden Befehl aus, um das Projekt anzugeben, das die Ressource enthält, die Sie mit IAP schützen möchten.
gcloud config set project PROJECT_ID
- Folgen Sie der Anleitung unter OAuth-Clients für IAP erstellen, um den OAuth-Zustimmungsbildschirm zu konfigurieren und den OAuth-Client zu erstellen.
- Speichern Sie die OAuth-Client-ID und das Secret.
-
Führen Sie zum Aktivieren von IAP entweder den Befehl für den globalen oder den regionalen Bereich aus.
Globaler Geltungsbereich Regionaler Umfanggcloud compute backend-services update BACKEND_SERVICE_NAME \ --global \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION_NAME \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
Nachdem Sie IAP aktiviert haben, können Sie mit der gcloud CLI die IAP-Zugriffsrichtlinie mithilfe der IAM-Rolle roles/iap.httpsResourceAccessor
ändern. Weitere Informationen zum Verwalten von Rollen und Berechtigungen.
API
Folgen Sie der Anleitung unter OAuth-Clients für IAP erstellen, um den OAuth-Zustimmungsbildschirm zu konfigurieren und den OAuth-Client zu erstellen.
Speichern Sie die OAuth-Client-ID und das Secret.
Führen Sie den folgenden Befehl aus, um eine
settings.json
-Datei vorzubereiten.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
Führen Sie den folgenden Befehl aus, um IAP zu aktivieren.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/REGION/backendServices/BACKEND_SERVICE_NAME"
Nachdem Sie IAP aktiviert haben, können Sie mit der gcloud CLI die IAP-Zugriffsrichtlinie mithilfe der IAM-Rolle roles/iap.httpsResourceAccessor
ändern. Weitere Informationen zum Verwalten von Rollen und Berechtigungen.
Cloud Run
Console
Wenn Sie den OAuth-Zustimmungsbildschirm Ihres Projekts noch nicht konfiguriert haben, werden Sie dazu aufgefordert. Weitere Informationen finden Sie unter OAuth-Zustimmungsbildschirm einrichten.
IAP-Zugriff einrichten
- Rufen Sie die Seite Identity-Aware Proxy auf.
Identity-Aware Proxy aufrufen - Wählen Sie das Projekt aus, das Sie mit IAP sichern möchten.
- Aktivieren Sie unter Anwendungen das Kästchen neben dem Load Balancer-Back-End-Dienst, dem Sie Mitglieder hinzufügen möchten.
- Klicken Sie auf der rechten Seite auf Mitglied hinzufügen.
Geben Sie im Dialogfeld Mitglieder hinzufügen die Konten von Gruppen oder Einzelpersonen ein, denen Sie für das Projekt die Rolle Nutzer von IAP-gesicherten Web-Apps zuweisen möchten. Folgende Kontoarten sind als Mitglieder zulässig:
- Google-Konto: nutzer@gmail.com. Dies kann auch ein Google Workspace-Konto sein, z. B. nutzer@google.com oder eine andere Google Workspace-Domain.
- Google Group: admins@googlegroups.com
- Dienstkonto: server@beispiel.gserviceaccount.com
- Google Workspace-Domain: beispiel.de
Wählen Sie in der Liste Rollen die Option Cloud IAP > Nutzer von IAP-gesicherten Web-Apps aus.
Klicken Sie auf Speichern.
IAP aktivieren
- Suchen Sie auf der IAP-Seite unter Anwendungen nach dem Load Balancer-Backenddienst, für den Sie den Zugriff einschränken möchten. Klicken Sie auf die Ein/Aus-Schaltfläche IAP, um IAP für eine Ressource zu aktivieren.
- Klicken Sie im angezeigten Fenster IAP aktivieren auf Aktivieren, um zu bestätigen, dass die Ressource durch IAP gesichert werden soll. Nachdem Sie IAP aktiviert haben, sind für alle Verbindungen zu Ihrem Load Balancer Anmeldedaten erforderlich. Zugriff erhalten nur Konten mit der Rolle Nutzer von IAP-gesicherten Web-Apps für das Projekt.
Wenn Sie IAP autorisieren möchten, Traffic an den Cloud Run-Backenddienst zu senden, folgen Sie der Anleitung unter Hauptkonten einem Dienst hinzufügen, um das folgende Prinzip und die folgende Rolle hinzuzufügen.
- Leiter:
service-[PROJECT-NUMBER]@gcp-sa-iap.iam.gserviceaccount.com
- Rolle: Cloud Run Invoker
- Leiter:
gcloud
- Folgen Sie der Anleitung unter OAuth-Clients für IAP erstellen, um den OAuth-Zustimmungsbildschirm zu konfigurieren und den OAuth-Client zu erstellen.
- Speichern Sie die OAuth-Client-ID und das Secret.
- Falls Sie noch kein Dienstkonto haben, erstellen Sie eines mit dem folgenden Befehl. Wenn Sie bereits ein Dienstkonto erstellt haben, werden durch Ausführen des Befehls keine doppelten Dienstkonten erstellt.
gcloud beta services identity create \ --service=iap.googleapis.com --project=PROJECT_ID
- Gewähren Sie dem Dienstkonto, das Sie im vorherigen Schritt erstellt haben, die Berechtigung „Aufrufer“. Führen Sie dazu den folgenden Befehl aus.
gcloud run services add-iam-policy-binding SERVICE-NAME \ --member='serviceAccount:service-PROJECT-NUMBER@gcp-sa-iap.iam.gserviceaccount.com' \ --role='roles/run.invoker'
Aktivieren Sie IAP, indem Sie den Befehl entweder global oder regional ausführen, je nachdem, ob der Load Balancer-Backenddienst global oder regional ist. Verwenden Sie die OAuth-Client-ID und das Secret aus dem vorherigen Schritt.
Globaler Geltungsbereich
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --global \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
Regionaler Geltungsbereich
Ersetzen Sie Folgendes:gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION_NAME \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
- BACKEND_SERVICE_NAME ist der Name des Backend-Dienstes.
- CLIENT_ID: die OAuth-Client-ID aus dem vorherigen Schritt
- CLIENT_SECRET: den OAuth-Clientschlüssel aus dem vorherigen Schritt
- REGION_NAME: die Region, in der Sie IAP aktivieren möchten.
Nachdem Sie IAP aktiviert haben, können Sie mit der Google Cloud CLI die IAP-Zugriffsrichtlinie mithilfe der Identity and Access Management-Rolle roles/iap.httpsResourceAccessor
ändern. Weitere Informationen finden Sie unter Rollen und Berechtigungen verwalten.