Von der IAP OAuth Admin API migrieren

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:

  1. Rufen Sie in der Google Cloud Console die Seite IAP API-Nutzung auf.

    Zu „IAP API-Nutzung“

  2. Wählen Sie das Projekt aus, für das Sie die Nutzung der IAP OAuth Admin API prüfen möchten.

  3. Wählen Sie in der Liste Grafiken auswählen die Option Traffic nach API-Methode aus und klicken Sie dann auf OK.

  4. 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.

  1. Authentifizieren Sie sich mit der Google Cloud CLI.

    gcloud auth login
    
  2. Klicken Sie auf die angezeigte URL und melden Sie sich an.

  3. Kopieren Sie nach der Anmeldung den angezeigten Bestätigungscode und fügen Sie ihn in die Befehlszeile ein.

  4. 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_ID
    
  5. Fü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.

  6. 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.yaml
    
  7. Aktualisieren Sie die Datei settings.yaml und fügen Sie die zuvor abgerufene OAuth 2.0-Client-ID unter programmaticClients hinzu, wie im folgenden Beispiel gezeigt.

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Wenden Sie die neuen Einstellungen auf die App Engine-Anwendung an.

    gcloud iap settings set settings.yaml --resource-type=app-engine --project=PROJECT_ID
    
  9. Führen Sie den folgenden Befehl aus, um Ihre Anwendungen zu migrieren.

    gcloud iap web enable --resource-type=app-engine
    

API

  1. 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"
    
  2. Führen Sie den folgenden Befehl aus, um vorhandene IAP-Einstellungen in eine Datei settings.json 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.json
    
  3. Aktualisieren Sie die Datei settings.json, um die zuvor gespeicherte CLIENT_ID als programmatischen Client hinzuzufügen.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. 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"
    
  5. Führen Sie den folgenden Befehl aus, um eine Datei settings.json vorzubereiten.

      cat << EOF > settings.json
      {
      "iap":
          {
            "enabled":true
          }
      }
      EOF
    
  6. Fü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.

  1. Authentifizieren Sie sich mit der Google Cloud CLI.

    gcloud auth login
    
  2. Klicken Sie auf die angezeigte URL und melden Sie sich an.

  3. Kopieren Sie nach der Anmeldung den angezeigten Bestätigungscode und fügen Sie ihn in die Befehlszeile ein.

  4. 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_ID
    
  5. Fü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.

  6. 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.yaml
    

    Regionaler Bereich

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME > settings.yaml
    
  7. Aktualisieren Sie die Datei settings.yaml und fügen Sie die zuvor abgerufene OAuth 2.0-Client-ID unter programmaticClients hinzu, wie im folgenden Beispiel gezeigt:

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Wenden 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
  9. 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=" "
    
  10. 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 update Befehl ein einzelnes Leerzeichen (" "), das von der Compute Engine API als Anweisung zum Entfernen der oauth2ClientId und oauth2ClientSecret Werte interpretiert wird.

    Globaler Bereich

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global
    

    Regionaler Bereich

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --region REGION_NAME
    

    Sehen Sie sich nach Ausführung des Befehls describe den Abschnitt iap der Ausgabe an. Eine erfolgreiche Migration wird dadurch angezeigt, dass das oauth2ClientId Feld ein einzelnes Leerzeichen (' ') enthält und das oauth2ClientSecret Feld den SHA256-Hash (36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068) eines einzelnen Leerzeichens enthält.

API

  1. 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"
    
  2. Führen Sie den folgenden Befehl aus, um vorhandene IAP-Einstellungen in eine Datei settings.json 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
    
  3. Aktualisieren Sie die settings.json Datei, um die zuvor gespeicherte CLIENT_ID als programmatischen Client hinzuzufügen.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. 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"
    
  5. Führen Sie den folgenden Befehl aus, um eine Datei settings.json vorzubereiten.

    cat << EOF > settings.json
    {
    "iap":
          {
            "enabled":true,
            "oauth2ClientId": " ",
            "oauth2ClientSecret": " "
          }
    }
    EOF
    
  6. Fü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"
    
  7. 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.

  1. Authentifizieren Sie sich mit der Google Cloud CLI und führen Sie den folgenden Befehl aus.

    gcloud auth login
    
  2. Klicken Sie auf die angezeigte URL und melden Sie sich an.

  3. Kopieren Sie nach der Anmeldung den angezeigten Bestätigungscode und fügen Sie ihn in die Befehlszeile ein.

  4. 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_ID
    
  5. Fü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.

  6. 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.yaml
    

    Regionaler Bereich

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME > settings.yaml
    
  7. Aktualisieren Sie die Datei settings.yaml und fügen Sie die zuvor abgerufene OAuth 2.0-Client-ID unter programmaticClients hinzu, wie im Beispiel gezeigt.

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Wenden 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
    
  9. Fü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=" "
    
  10. 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 \
        --global
    

    Regionaler Bereich

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --region REGION_NAME
    

API

  1. 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"
    
  2. Führen Sie den folgenden Befehl aus, um vorhandene IAP-Einstellungen in eine Datei settings.json 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
    
  3. Aktualisieren Sie die settings.json Datei, um die zuvor gespeicherte CLIENT_ID als programmatischen Client hinzuzufügen.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. 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"
    
  5. Führen Sie den folgenden Befehl aus, um eine Datei settings.json vorzubereiten.

    cat << EOF > settings.json
    {
    "iap":
          {
            "enabled":true,
            "oauth2ClientId": " ",
            "oauth2ClientSecret": " "
          }
    }
    EOF
    
  6. Fü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"
    
  7. 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.