Die Identity-Aware Proxy (IAP) OAuth Admin API ist jetzt veraltet. In dieser Anleitung wird beschrieben, wie Sie vorhandene OAuth-Clients optional zu von Google verwalteten OAuth-Clients migrieren können. Wenn Sie die IAP OAuth Admin API nicht verwenden, hat diese Änderung keine Auswirkungen auf Sie.
Informationen dazu, wie Sie prüfen, ob Ihr Projekt OAuth Admin APIs verwendet, finden Sie unter Nutzung von OAuth Admin APIs prüfen. Wenn Ihr Projekt OAuth Admin APIs verwendet, müssen Sie der Migration sanleitung in diesem Dokument folgen oder Alternativen zur OAuth Admin API verwenden.
Was ändert sich?
Wir stellen die IAP OAuth Admin API ein. Sie umfasst die folgenden APIs für die manuelle OAuth-Client- und Markenverwaltung:
Sie können mit der IAP OAuth Admin API keine benutzerdefinierten OAuth-Clients mehr erstellen oder verwalten. Statt OAuth 2.0-Clients manuell zu verwalten, verwendet IAP einen von Google verwalteten OAuth-Client. Dadurch wird die OAuth-Client-Verwaltung vereinfacht, manuelle Fehler werden reduziert und die Bereitstellungsprozesse werden optimiert.
Wenn Sie weiterhin benutzerdefiniertes Branding verwenden möchten, empfehlen wir Ihnen, benutzerdefinierte OAuth-Clients zu konfigurieren.
Was ändert sich nicht?
Wenn Sie die IAP OAuth Admin API nicht verwenden, hat diese Änderung keine Auswirkungen auf Sie.
Diese Einstellung betrifft keine OAuth-Clients, die Sie manuell mit der Compute Engine API, der App Engine API oder der Google Cloud Console konfigurieren.
Sie können weiterhin neue OAuth-Marken- und Clientkonfigurationen erstellen und sie mit der Google Cloud Console verwalten. Sie müssen Ihre vorhandenen OAuth-Clients nicht migrieren. Sie können sie weiterhin über die Google Cloud Console anstelle der IAP OAuth Admin API verwenden und verwalten.
Nutzung von IAP OAuth Admin APIs prüfen
So prüfen Sie, ob Ihr Projekt IAP OAuth Admin APIs verwendet:
Rufen Sie in der Google Cloud Console die Seite IAP API-Nutzung auf.
Wählen Sie das Projekt aus, für das Sie die Nutzung der IAP OAuth Admin API prüfen möchten.
Wählen Sie in der Liste Grafiken auswählen die Option Traffic nach API-Methode aus und klicken Sie dann auf OK.
Suchen Sie im Bereich Methoden nach Methoden mit dem Präfix
google.cloud.iap.v1.IdentityAwareProxyOAuthService. Dies weist darauf hin, dass das Projekt die IAP OAuth Admin API verwendet.
Detaillierte Beschreibung
Am 22. Januar 2025 wird die IAP OAuth 2.0 Admin API eingestellt, die zum Erstellen eines IAP OAuth 2.0-Clients verwendet wird. IAP verwendet jetzt standardmäßig einen von Google verwalteten OAuth-Client für den Browserzugriff oder wenn kein OAuth 2.0-Client explizit konfiguriert ist. Der von Google verwaltete OAuth 2.0-Client beschränkt den Zugriff auf IAP-fähige Anwendungen auf Nutzer innerhalb derselben Organisation, wenn sie über einen Browser auf diese Anwendungen zugreifen.
Mit der Einstellung der Identity-Aware Proxy (IAP) OAuth 2.0 Admin API können Sie diese API nicht mehr zum Erstellen oder Verwalten von OAuth-Clients verwenden. OAuth-Clients, die vor dieser Einstellung erstellt wurden, werden nicht ungültig. Sie können weiterhin zuvor erstellte OAuth-Clients verwenden und diese mit der Google Cloud Console verwalten.
Wenn Sie Anwendungen mit OAuth-Clients konfiguriert haben, die mit der IAP 2.0 Admin API oder auf andere Weise erstellt wurden, funktionieren diese Anwendungen weiterhin. An den Anwendungen sind keine Änderungen erforderlich. Wenn Ihre Automatisierungsskripts oder Infrastructure-as-Code-Tools (IaC) jedoch die IAP OAuth 2.0 Admin API verwenden, um neue Clients zu konfigurieren oder Clientschlüssel für vorhandene Clients abzurufen, müssen Sie die Skripts aktualisieren, damit sie die IAP OAuth 2.0 Admin API nicht mehr verwenden.
Ob Sie Ihren vorhandenen vom Nutzer verwalteten Client weiterhin verwenden oder zur von Google verwalteten Option wechseln, hängt von Ihren Anforderungen an Branding und externen Zugriff ab. Eine detaillierte Aufschlüsselung aller funktionalen Unterschiede finden Sie in der Vergleichstabelle für von Google verwaltete und benutzerdefinierte OAuth-Clients. Wenn Ihre Anwendung eine benutzerdefinierte Client-ID für Branding oder externen Zugriff erfordert, erstellen Sie die Client-ID mit der Google Cloud Console. Weitere Informationen zu benutzerdefinierten OAuth-Clients finden Sie unter OAuth-Konfiguration anpassen, um IAP zu aktivieren.
Informationen zum Konfigurieren von von Google verwalteten OAuth 2.0-Clients für Ihre Anwendungen finden Sie unter Programmatischer Zugriff.
Wenn Sie eine Anforderung haben, die vom von Google verwalteten OAuth 2.0-Client nicht erfüllt wird, können Sie einen einzelnen OAuth-Client für mehrere IAP-Anwendungen freigeben. So müssen Sie nicht für jede neue Anwendung einen Client manuell erstellen.
Erforderliche Aktionen
Automatisierungsskripts aktualisieren
Wenn Sie Terraform oder andere Tools verwenden, um die Konfiguration von IAP zu automatisieren, und Sie die IAP OAuth 2.0 Admin API verwenden, müssen Sie die Automatisierungsskripts aktualisieren, um einen vorab erstellten Client zu verwenden oder den von Google verwalteten OAuth-Client mit IAP zu verwenden.
Programmatischen Zugriff für Anwendungen konfigurieren, die von Google verwaltete OAuth 2.0-Clients verwenden
Wenn Sie bereits Anwendungen haben, die durch IAP geschützt sind, und Sie sie mit dem von Google verwalteten OAuth 2.0-Client migrieren möchten, können Sie den programmatischen Zugriff für diese Anwendungen konfigurieren, indem Sie OAuth 2.0-Clients auf die Zulassungsliste setzen.
IAP-fähige Ressourcen migrieren
Wenn Sie Ihre Ressourcen migrieren möchten, um den von Google verwalteten OAuth 2.0-Client zu verwenden, folgen Sie der Anleitung für den Ressourcentyp, z. B. eine Compute Engine-Ressource, die Sie migrieren möchten.
IAP-fähige App Engine-Ressourcen migrieren
Führen Sie die Schritte in diesem Abschnitt aus, um App Engine-Ressourcen zu migrieren, für die IAP aktiviert und ein OAuth 2.0-Client konfiguriert ist.
gcloud
Bevor Sie mit den Schritten fortfahren, prüfen Sie, ob Sie eine aktuelle Version der gcloud CLI haben. Eine Anleitung zur Installation der gcloud CLI finden Sie unter gcloud CLI installieren.
Authentifizieren Sie sich mit der Google Cloud CLI.
gcloud auth loginKlicken Sie auf die angezeigte URL und melden Sie sich an.
Kopieren Sie nach der Anmeldung 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 Anwendungen enthält, die Sie weiterhin mit IAP schützen möchten.
gcloud config set project PROJECT_IDFühren Sie den folgenden Befehl aus, um die konfigurierte OAuth 2.0-Client-ID abzurufen.
gcloud app describe --format="value(iap.oauth2ClientId)"Speichern Sie die Client-ID aus dem vorherigen Befehl, wenn Sie programmatischen Zugriff zulassen möchten.
Um den OAuth 2.0-Client für den programmatischen Zugriff auf die Zulassungsliste zu setzen, führen Sie einen Lese-, Aktualisierungs- und Schreibvorgang für die IAP-Einstellungen-API aus.
gcloud iap settings get --resource-type=app-engine --project=$PROJECT > settings.yamlAktualisieren Sie die Datei
settings.yamlund fügen Sie die zuvor abgerufene OAuth 2.0-Client-ID unterprogrammaticClientshinzu, wie im folgenden Beispiel gezeigt.accessSettings: oauthSettings: programmaticClients: - CLIENT_IDWenden Sie die neuen Einstellungen auf die App Engine-Anwendung an.
gcloud iap settings set settings.yaml --resource-type=app-engine --project=PROJECT_IDFühren Sie den folgenden Befehl aus, um Ihre Anwendungen zu migrieren.
gcloud iap web enable --resource-type=app-engine
API
Führen Sie den folgenden Befehl aus, um die konfigurierte OAuth 2.0-Client-ID abzurufen.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://appengine.googleapis.com/v1/apps/PROJECT_ID?fields=iap"Führen Sie den folgenden Befehl aus, um vorhandene IAP-Einstellungen in eine Datei
settings.jsonabzurufen.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/appengine-PROJECT_ID:iapSettings" > settings.jsonAktualisieren Sie die Datei
settings.json, um die zuvor gespeicherte CLIENT_ID als programmatischen Client hinzuzufügen.{ "accessSettings": { "oauthSettings": { "programmaticClients": [ "CLIENT_ID" ] }, }, }Führen Sie den folgenden Befehl aus, um die IAP-Einstellungen zu aktualisieren.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "@settings.json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/appengine-PROJECT_ID:iapSettings"Führen Sie den folgenden Befehl aus, um eine Datei
settings.jsonvorzubereiten.cat << EOF > settings.json { "iap": { "enabled":true } } EOFFühren Sie den folgenden Befehl aus, um Ihre Anwendungen zu migrieren.
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"
IAP-fähige Compute Engine-Ressourcen migrieren
Führen Sie die Schritte in diesem Abschnitt aus, um Compute Engine-Ressourcen zu migrieren, für die IAP aktiviert und ein OAuth 2.0-Client konfiguriert ist.
gcloud
Bevor Sie mit den Schritten fortfahren, prüfen Sie, ob Sie eine aktuelle Version der gcloud CLI haben. Eine Anleitung zur Installation der gcloud CLI finden Sie unter gcloud CLI installieren.
Authentifizieren Sie sich mit der Google Cloud CLI.
gcloud auth loginKlicken Sie auf die angezeigte URL und melden Sie sich an.
Kopieren Sie nach der Anmeldung 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 Anwendungen enthält, die Sie weiterhin mit IAP schützen möchten.
gcloud config set project PROJECT_IDFühren Sie den folgenden Befehl aus, um die konfigurierte OAuth 2.0-Client-ID abzurufen.
Globaler Bereich
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --global \ --format="value(iap.oauth2ClientId)"Regionaler Bereich
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION_NAME \ --format="value(iap.oauth2ClientId)"Speichern Sie die Client-ID aus dem vorherigen Befehl, wenn Sie programmatischen Zugriff zulassen möchten.
Um dem OAuth 2.0-Client programmatischen Zugriff zu gewähren, führen Sie einen Lese-, Aktualisierungs- und Schreibvorgang für die IAP-Einstellungen-API aus.
Globaler Bereich
gcloud iap settings get \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME > settings.yamlRegionaler Bereich
gcloud iap settings get \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME \ --region=REGION_NAME > settings.yamlAktualisieren Sie die Datei
settings.yamlund fügen Sie die zuvor abgerufene OAuth 2.0-Client-ID unterprogrammaticClientshinzu, wie im folgenden Beispiel gezeigt:accessSettings: oauthSettings: programmaticClients: - CLIENT_IDWenden Sie die neuen Einstellungen auf die Compute Engine-Anwendung an:
Globaler Bereich
gcloud iap settings set settings.yaml \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME
Regionaler Bereich
gcloud iap settings set settings.yaml \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME \ --region=REGION_NAME
Führen Sie den folgenden Befehl aus, um Ihre Anwendungen zu migrieren. Wenn Sie die OAuth-Client-ID und das OAuth-Geheimnis löschen möchten, übergeben Sie ein einzelnes Leerzeichen in Anführungszeichen (
" ") im Befehl. Der Backend-Dienst verwendet den von Google verwalteten OAuth-Client.Globaler Bereich
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --global \ --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "Regionaler Bereich
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION_NAME \ --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "Führen Sie `gcloud compute backend-services describe` aus, um zu prüfen, ob Sie die OAuth-Client-ID und das OAuth-Client Secret entfernt haben und der Back-End-Dienst einen von Google verwalteten OAuth Client verwendet. Um diese Felder während der Migration zu löschen, verwendet der
gcloud compute backend-services updateBefehl ein einzelnes Leerzeichen (" "), das von der Compute Engine API als Anweisung zum Entfernen deroauth2ClientIdundoauth2ClientSecretWerte interpretiert wird.Globaler Bereich
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --globalRegionaler Bereich
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION_NAMESehen Sie sich nach Ausführung des Befehls
describeden Abschnittiapder Ausgabe an. Eine erfolgreiche Migration wird dadurch angezeigt, dass dasoauth2ClientIdFeld ein einzelnes Leerzeichen (' ') enthält und dasoauth2ClientSecretFeld den SHA256-Hash (36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068) eines einzelnen Leerzeichens enthält.
API
Führen Sie den folgenden Befehl aus, um die konfigurierte OAuth 2.0-Client-ID abzurufen.
Globaler Bereich
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
Regionaler Bereich
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
Führen Sie den folgenden Befehl aus, um vorhandene IAP-Einstellungen in eine Datei
settings.jsonabzurufen.Globaler Bereich
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
Regionaler Bereich
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
Aktualisieren Sie die
settings.jsonDatei, um die zuvor gespeicherte CLIENT_ID als programmatischen Client hinzuzufügen.{ "accessSettings": { "oauthSettings": { "programmaticClients": [ "CLIENT_ID" ] }, }, }Führen Sie den folgenden Befehl aus, um die IAP-Einstellungen zu aktualisieren.
Globaler Bereich
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "@settings.json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings"
Regionaler Bereich
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "@settings.json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings"
Führen Sie den folgenden Befehl aus, um eine Datei
settings.jsonvorzubereiten.cat << EOF > settings.json { "iap": { "enabled":true, "oauth2ClientId": " ", "oauth2ClientSecret": " " } } EOFFühren Sie den folgenden Befehl aus, um Ihre IAP-Ressourcen zu migrieren.
Globaler Bereich
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/global/backendServices/BACKEND_SERVICE_NAME"
Regionaler Bereich
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/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
Führen Sie den folgenden Befehl für den globalen oder regionalen Bereich aus, um zu prüfen, ob die OAuth-Client-ID nicht festgelegt ist. Prüfen Sie nach Ausführung des Befehls, ob das Feld für die OAuth-Client-ID leer ist.
Globaler Bereich
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
Regionaler Bereich
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
Terraform
Wenn Sie vorhandene IAP-fähige Ressourcen migrieren, um einen von Google verwalteten OAuth-Client zu verwenden, müssen Sie die Felder oauth2_client_id und oauth2_client_secret explizit aufheben. So heben Sie die Felder auf und aktualisieren die Werte auf ein einzelnes Leerzeichen, wie im folgenden Beispiel gezeigt:
resource "google_compute_backend_service" "default" {
name = "tf-test-backend-service-external"
protocol = "HTTP"
load_balancing_scheme = "EXTERNAL"
iap {
oauth2_client_id = " "
oauth2_client_secret = " "
}
}
Die Felder oauth2_client_id und oauth2_client_secret sind optional. Wenn Sie mit neuen IAP-fähigen Ressourcen arbeiten, können Sie sie ignorieren.
Weitere Informationen zur Verwendung von Terraform mit Google Cloudfinden Sie in der Terraform-Dokumentation.
IAP-fähige Cloud Run-Ressourcen migrieren
Führen Sie die Schritte in diesem Abschnitt aus, um Cloud Run-Ressourcen zu migrieren, für die IAP aktiviert und ein OAuth 2.0-Client konfiguriert ist.
gcloud
Bevor Sie mit den Schritten fortfahren, prüfen Sie, ob Sie eine aktuelle Version der gcloud CLI haben. Eine Anleitung zur Installation der gcloud CLI finden Sie unter gcloud CLI installieren.
Authentifizieren Sie sich mit der Google Cloud CLI und führen Sie den folgenden Befehl aus.
gcloud auth loginKlicken Sie auf die angezeigte URL und melden Sie sich an.
Kopieren Sie nach der Anmeldung 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 Anwendungen enthält, die Sie weiterhin mit IAP schützen möchten.
gcloud config set project PROJECT_IDFühren Sie den folgenden Befehl aus, um die konfigurierte OAuth 2.0-Client-ID abzurufen.
Globaler Bereich
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --global \ --format="value(iap.oauth2ClientId)"Regionaler Bereich
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION_NAME \ --format="value(iap.oauth2ClientId)"Speichern Sie die Client-ID aus dem vorherigen Befehl, wenn Sie programmatischen Zugriff zulassen möchten.
Um den OAuth 2.0-Client für den programmatischen Zugriff auf die Zulassungsliste zu setzen, führen Sie einen Lese-, Aktualisierungs- und Schreibvorgang für die IAP-Einstellungen-API aus.
Globaler Bereich
gcloud iap settings get \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME > settings.yamlRegionaler Bereich
gcloud iap settings get \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME \ --region=REGION_NAME > settings.yamlAktualisieren Sie die Datei
settings.yamlund fügen Sie die zuvor abgerufene OAuth 2.0-Client-ID unterprogrammaticClientshinzu, wie im Beispiel gezeigt.accessSettings: oauthSettings: programmaticClients: - CLIENT_IDWenden Sie die neuen Einstellungen auf die Compute Engine-Anwendung an.
Globaler Bereich
gcloud iap settings set settings.yaml \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAMERegionaler Bereich
gcloud iap settings set settings.yaml \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME \ --region=REGION_NAMEFühren Sie den Befehl für den globalen oder regionalen Bereich aus, um Ihre Ressourcen zu migrieren.
Globaler Bereich
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --global \ --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "Regionaler Bereich
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION_NAME \ --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "Führen Sie den folgenden Befehl für den globalen oder regionalen Bereich aus, um zu prüfen, ob die OAuth-Client-ID nicht festgelegt ist. Prüfen Sie nach Ausführung des Befehls, ob das Feld für die OAuth-Client-ID leer ist.
Globaler Bereich
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --globalRegionaler Bereich
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION_NAME
API
Führen Sie den folgenden Befehl aus, um die konfigurierte OAuth 2.0-Client-ID abzurufen.
Globaler Bereich
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
Regionaler Bereich
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
Führen Sie den folgenden Befehl aus, um vorhandene IAP-Einstellungen in eine Datei
settings.jsonabzurufen.Globaler Bereich
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
Regionaler Bereich
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
Aktualisieren Sie die
settings.jsonDatei, um die zuvor gespeicherte CLIENT_ID als programmatischen Client hinzuzufügen.{ "accessSettings": { "oauthSettings": { "programmaticClients": [ "CLIENT_ID" ] }, }, }Führen Sie den folgenden Befehl aus, um die IAP-Einstellungen zu aktualisieren.
Globaler Bereich
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "@settings.json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings"
Regionaler Bereich
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "@settings.json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings"
Führen Sie den folgenden Befehl aus, um eine Datei
settings.jsonvorzubereiten.cat << EOF > settings.json { "iap": { "enabled":true, "oauth2ClientId": " ", "oauth2ClientSecret": " " } } EOFFühren Sie den folgenden Befehl aus, um Ihre Ressourcen zu migrieren.
Globaler Bereich
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/global/backendServices/BACKEND_SERVICE_NAME"
Regionaler Bereich
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/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
Führen Sie den folgenden Befehl für den globalen oder regionalen Bereich aus, um zu prüfen, ob die OAuth-Client-ID nicht festgelegt ist. Prüfen Sie nach Ausführung des Befehls, ob das Feld für die OAuth-Client-ID leer ist.
Globaler Bereich
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
Regionaler Bereich
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
IAP-fähige Google Kubernetes Engine-Ressourcen migrieren
Fügen Sie der BackendConfig benutzerdefinierten Ressourcendefinition (Custom Resource Definition, CRD) den folgenden IAP-Block hinzu. Dadurch wird IAP mit dem von Google verwalteten OAuth 2.0-Client aktiviert.
apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
name: config-default
namespace: my-namespace
spec:
iap:
enabled: true
Mit einem Dienstkonto-JWT bei IAP authentifizieren
Sie können sich bei IAP authentifizieren, ohne die eingestellte OAuth Admin API verwenden zu müssen, indem Sie ein Dienstkonto-JWT verwenden.
OAuth-Clientschlüssel abrufen
Wenn Sie in der Google Cloud Console einen benutzerdefinierten OAuth-Client erstellen, wird der Client schlüssel nur zu diesem Zeitpunkt angezeigt. Sie sind dafür verantwortlich, diesen Schlüssel sicher zu speichern. Secret Manager ist der empfohlene Dienst zum sicheren Speichern von OAuth-Clientschlüsseln.
Wenn Sie Secret Manager zum Speichern Ihres OAuth-Clientschlüssels verwenden, finden Sie unter Auf eine Secret-Version zugreifen eine Anleitung zum Abrufen des Clientschlüssels.
Prüfen, ob Sie die IAP OAuth Admin API verwenden
Informationen dazu, wie Sie prüfen, ob Ihr Projekt IAP OAuth Admin APIs verwendet, finden Sie unter Nutzung von OAuth Admin APIs prüfen.
Alternativen zur OAuth Admin API
Wenn Sie OAuth-Clientanmeldedaten ohne Verwendung der OAuth API abrufen müssen, können Sie die folgenden Methoden verwenden:
Google Cloud Konsole: Sie können OAuth-Anmeldedaten manuell über die Seite Anmeldedaten abrufen.
Secret Manager: Sie können das Secret mit Secret Manager speichern und abrufen. Informationen zur Verwendung von Secret Manager mit Terraform finden Sie unter google_secret_manager_secret.
Dienstkonto-JWTs: Verwenden Sie JSON Web Tokens (JWTs) für Dienstkonten zur Authentifizierung. Mit Dienstkonto-JWTs müssen Sie keine OAuth-Clients verwenden.