Die Identity-Aware Proxy (IAP) OAuth Admin API wurde eingestellt. In diesem Leitfaden 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 in Ihrem Projekt OAuth Admin APIs verwendet werden, finden Sie unter Nutzung von OAuth Admin APIs prüfen. Wenn in Ihrem Projekt OAuth Admin APIs verwendet werden, müssen Sie die Migrationsanleitung in diesem Dokument befolgen. Alternativ können Sie Alternativen zur OAuth Admin API verwenden.
Was sich ändert
Wir stellen die IAP OAuth Admin API ein. Dazu gehören die folgenden APIs und gcloud CLI-Befehlsgruppen für die manuelle Verwaltung von OAuth-Clients und ‑Marken:
- OAuth-Client-APIs
- Brands APIs
gcloud iap oauth-brands(create,describeundlist), einschließlich der Release-Tracksalphaundbetagcloud iap oauth-clients(create,delete,describe,listundreset-secret), einschließlich der Release-Tracksalphaundbeta
Sie können keine benutzerdefinierten OAuth-Clients mehr mit der IAP OAuth Admin API erstellen oder verwalten. Anstatt OAuth 2.0-Clients manuell zu verwalten, verwendet IAP einen von Google verwalteten OAuth-Client. Das vereinfacht die OAuth-Clientverwaltung, reduziert manuelle Fehler und optimiert Ihre Bereitstellungsprozesse.
Wenn Sie weiterhin benutzerdefiniertes Branding verwenden möchten, empfehlen wir Ihnen, benutzerdefinierte OAuth-Clients zu konfigurieren.
Was sich nicht ändert
Wenn Sie die IAP OAuth Admin API nicht verwenden, hat diese Änderung keine Auswirkungen auf Sie.
Diese Einstellung wirkt sich nicht auf OAuth-Clients aus, die Sie manuell über die Compute Engine API, die App Engine API oder die Google Cloud Console konfigurieren. Andere IAP-APIs oder gcloud CLI-Befehlsgruppen (einschließlich ihrer Release-Tracks alpha und beta), die IAP-Zugriffsrichtlinien, -Einstellungen oder die TCP-Weiterleitung verwalten, sind ebenfalls nicht betroffen. Dazu gehören gcloud iap web (z. B. get-iam-policy und remove-iam-policy-binding), gcloud iap settings und gcloud iap tcp, da diese Befehle die IdentityAwareProxyAdminService API anstelle der verworfenen IdentityAwareProxyOAuthService API verwenden.
Sie können weiterhin neue OAuth-Marken- und Clientkonfigurationen erstellen und diese über die Google Cloud Console verwalten. Sie müssen Ihre vorhandenen OAuth-Clients nicht migrieren. Sie können sie weiterhin über dieGoogle Cloud -Konsole 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, das Sie auf 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 Abschnitt Methoden nach Methoden mit dem Präfix
google.cloud.iap.v1.IdentityAwareProxyOAuthService. Das Präfix gibt an, dass das Projekt die IAP OAuth Admin API verwendet.
Detaillierte Beschreibung
Seit dem 22. Januar 2025 ist die IAP OAuth 2.0 Admin API, die zum Erstellen eines IAP OAuth 2.0-Clients verwendet wird, veraltet. IAP verwendet jetzt standardmäßig oder wenn kein OAuth 2.0-Client explizit konfiguriert ist einen von Google verwalteten OAuth-Client für den Browserzugriff. 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.
Da die Identity-Aware Proxy (IAP) OAuth 2.0 Admin API eingestellt wurde, 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 zuvor erstellte OAuth-Clients weiterhin verwenden und diese über die 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 IaC-Tools (Infrastructure as Code) 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 so aktualisieren, dass sie die IAP OAuth 2.0 Admin API nicht mehr verwenden.
Ob Sie Ihren vorhandenen nutzerverwalteten Client weiterhin verwenden oder zur von Google verwalteten Option wechseln, hängt von Ihren Anforderungen an das Branding und den 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, verwenden Sie die Google Cloud Console, um die Client-ID zu erstellen. 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 manuell einen Client erstellen.
Erforderliche Aktionen
Automatisierungsscripts aktualisieren
Wenn Sie Terraform, die gcloud CLI (
gcloud iap oauth-brandsodergcloud iap oauth-clients, einschließlichalphaundbeta) 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 so aktualisieren, dass sie einen vorab erstellten Client oder den von Google verwalteten OAuth-Client mit IAP verwenden.Programmatischen Zugriff für Anwendungen mit von Google verwalteten OAuth 2.0-Clients konfigurieren
Wenn Sie bereits Anwendungen haben, die durch IAP geschützt sind, und diese 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 den Schritten für den Ressourcentyp, den Sie migrieren möchten, z. B. eine Compute Engine-Ressource.
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.
Verwenden Sie die Google Cloud CLI zur Authentifizierung.
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.
Wenn Sie den OAuth 2.0-Client für den programmatischen Zugriff auf die Zulassungsliste setzen möchten, führen Sie einen Lese-Aktualisierungs-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_IDNeue Einstellungen auf die App Engine-Anwendung anwenden
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
settings.json-Datei abzurufen.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 den zuvor gespeicherten 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
settings.json-Datei vorzubereiten.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.
Verwenden Sie die Google Cloud CLI zur Authentifizierung.
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.
Wenn Sie dem OAuth 2.0-Client programmatischen Zugriff gewähren möchten, führen Sie einen Lese-Aktualisierungs-Schreibvorgang für die IAP Settings 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 im Befehl ein einzelnes Leerzeichen in Anführungszeichen (
" "). 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 den OAuth-Clientschlüssel entfernt haben und ob der Backend-Dienst einen von Google verwalteten OAuth-Client verwendet. Um diese Felder während der Migration zu löschen, verwendet der Befehl
gcloud compute backend-services updateein einzelnes Leerzeichen (" "), das die Compute Engine API als Anweisung zum Entfernen der Werteoauth2ClientIdundoauth2ClientSecretinterpretiert.Globaler Bereich
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --globalRegionaler Bereich
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION_NAMEPrüfen Sie nach dem Ausführen des Befehls
describeden Abschnittiapder Ausgabe. Eine erfolgreiche Migration wird angezeigt, wenn das Feldoauth2ClientIdein einzelnes Leerzeichen (' ') enthält und das Feldoauth2ClientSecretden 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
settings.json-Datei abzurufen.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 Datei
settings.json, um den zuvor gespeicherten 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
settings.json-Datei vorzubereiten.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 der Ausführung des Befehls die Ausgabe, um sicherzustellen, dass 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 deaktivieren. Wenn Sie die Felder zurücksetzen möchten, aktualisieren Sie 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 und können ignoriert werden, wenn Sie mit neuen IAP-fähigen Ressourcen arbeiten.
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.
Verwenden Sie zur Authentifizierung die 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.
Wenn Sie den OAuth 2.0-Client für den programmatischen Zugriff auf die Zulassungsliste setzen möchten, führen Sie einen Lese-Aktualisierungs-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 zum Migrieren Ihrer Ressourcen entweder den globalen oder den regionalen Befehl aus.
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 der Ausführung des Befehls die Ausgabe, um sicherzustellen, dass 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
settings.json-Datei abzurufen.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 Datei
settings.json, um den zuvor gespeicherten 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
settings.json-Datei vorzubereiten.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 dem Ausführen des Befehls die Ausgabe, um sicherzustellen, dass 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 benutzerdefinierten Ressourcendefinition (CRD) BackendConfig 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
Dienstkonto-JWT zur Authentifizierung bei IAP verwenden
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 einen benutzerdefinierten OAuth-Client in der Google Cloud Console erstellen, wird der Clientschlüssel nur zu diesem Zeitpunkt angezeigt. Sie sind dafür verantwortlich, dieses Secret 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 Verwendung der OAuth Admin API
Wenn Sie OAuth-Clientanmeldedaten ohne die OAuth API abrufen möchten, können Sie die folgenden Methoden verwenden:
Google Cloud Console: 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 Dienstkonto-JSON-Web-Tokens (JWTs) für die Authentifizierung. Bei Dienstkonto-JWTs müssen Sie keine OAuth-Clients verwenden.