Von der IAP OAuth Admin API migrieren

In dieser Anleitung wird erläutert, dass die IAP OAuth Admin API eingestellt wird und wie Sie optional OAuth-Clients, die mit der API erstellt wurden, zu benutzerdefinierten OAuth-Clients migrieren können. Weitere Informationen zu den Vorteilen der Verwendung benutzerdefinierter OAuth-Clients, einschließlich benutzerdefinierter Marken, finden Sie unter OAuth-Konfiguration anpassen, um IAP zu aktivieren.

Wenn Sie die IAP OAuth Admin API nicht verwenden, hat diese Änderung keine Auswirkungen auf Sie.

Anstatt OAuth 2.0-Clients manuell zu verwalten, verwendet IAP automatisch einen von Google verwalteten OAuth-Client.

Informationen dazu, ob in Ihrem Projekt OAuth Admin APIs verwendet werden, finden Sie unter Verwendung von OAuth Admin APIs prüfen. Wenn in Ihrem Projekt OAuth Admin APIs verwendet werden, müssen Sie entweder die Migrationsanleitung in diesem Dokument befolgen oder Alternativen zur OAuth Admin API verwenden.

Was sich ändert

Wir stellen die IAP OAuth Admin API ein. Sie umfasst die folgenden APIs für die manuelle Verwaltung von OAuth-Clients und ‑Marken:

Anstatt OAuth 2.0-Clients manuell zu verwalten, verwendet IAP einen von Google verwalteten OAuth-Client. Das vereinfacht die OAuth-Client-Verwaltung, reduziert manuelle Fehler und optimiert Ihre Bereitstellungsprozesse.

Damit Sie weiterhin benutzerdefiniertes Branding anbieten können, 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 betrifft nicht OAuth-Clients, die Sie manuell mit der Compute Engine API, der App Engine API oder der Google Cloud -Konsole konfigurieren.

Sie können weiterhin neue OAuth-Marken- und Clientkonfigurationen erstellen und über die Google Cloud -Konsole verwalten. Bestehende Konfigurationen werden weiterhin vollständig unterstützt.

Nutzung von OAuth Admin APIs prüfen

So stellen Sie fest, ob in Ihrem Projekt IAP OAuth Admin APIs verwendet werden:

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

    Zur IAP API-Nutzung

  2. Wählen Sie Ihr Projekt aus. Wählen Sie das Projekt aus, das Sie auf die Verwendung der OAuth Admin API prüfen möchten.

  3. Sehen Sie sich den Abschnitt Diagramme an.

  4. Wählen Sie im Bereich „Grafiken“ die Option Traffic nach API-Methode aus.

  5. Suchen Sie nach API-Methoden, die mit dem folgenden Präfix beginnen:

    google.cloud.iap.v1.IdentityAwareProxyOAuthService.*

Wenn Sie Methoden mit diesem Präfix sehen, werden im Projekt IAP-OAuth-Dienstmethoden verwendet.

Detaillierte Beschreibung

Ab dem 22. Januar 2025 ist die IAP OAuth 2.0 Admin API, mit der ein IAP OAuth 2.0-Client erstellt wird, eingestellt. Die IAP OAuth 2.0 Admin API ist nicht mehr erforderlich, da Sie keine OAuth-Clients mehr konfigurieren müssen. 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 schränkt den Zugriff auf Anwendungen mit IAP-Käufen auf Nutzer innerhalb derselben Organisation ein, wenn sie über einen Browser auf diese Anwendungen zugreifen.

Da die IAP OAuth 2.0 Admin API eingestellt wird, 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 Clients über dieGoogle Cloud -Konsole 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 jedoch die IAP OAuth 2.0 Admin API verwenden, um neue Clients zu konfigurieren oder Clientgeheimnisse für vorhandene Clients abzurufen, müssen Sie die Skripts aktualisieren, damit sie die IAP OAuth 2.0 Admin API nicht mehr verwenden.

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

  • Automatisierungsskripts aktualisieren

    Wenn Sie Terraform oder andere Tools verwenden, um die Konfiguration von IAP zu automatisieren, und die IAP OAuth 2.0 Admin API nutzen, müssen Sie die Automatisierungsskripts aktualisieren, damit ein vorab erstellter Client verwendet wird oder der von Google verwaltete OAuth-Client mit IAP genutzt wird.

  • Programmgesteuerten 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 Sie 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, damit sie den von Google verwalteten OAuth 2.0-Client verwenden, folgen Sie der Anleitung für den jeweiligen Ressourcentyp, 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, müssen Sie dafür sorgen, dass 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. Wenn Sie den OAuth 2.0-Client für den programmatischen Zugriff auf die Zulassungsliste setzen möchten, 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 ein, wie im folgenden Beispiel gezeigt.

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Neue Einstellungen auf die App Engine-Anwendung anwenden

    gcloud iap settings set settings.yaml --resource-type=app-engine --project=PROJECT_ID
    
  9. Führen Sie den folgenden Befehl aus, um Ihre Apps 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 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.json
    
  3. Aktualisieren Sie die Datei settings.json, um zuvor gespeicherte CLIENT_ID als programmatischen Client hinzuzufügen.

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

      cat << EOF > settings.json
      {
      "iap":
          {
            "enabled":true
          }
      }
      EOF
    
  6. Führen Sie den folgenden Befehl aus, um Ihre Apps 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, müssen Sie dafür sorgen, dass 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. Wenn Sie einen OAuth 2.0-Client für den programmatischen Zugriff auf die Zulassungsliste setzen möchten, führen Sie einen Lese-, Aktualisierungs- und 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.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 ein, 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 zum Migrieren Ihrer Anwendungen 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=" "
    
  10. Führen Sie den folgenden Befehl mit globalem oder regionalem 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 „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 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
    
  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 Einstellungen für IAP 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 settings.json-Datei 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 mit globalem oder regionalem 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 „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 Festlegung der Felder auf, indem Sie die Werte auf ein einzelnes Leerzeichen aktualisieren, 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, müssen Sie sicherstellen, dass Sie eine aktuelle Version der gcloud CLI haben. Eine Anleitung zur Installation der gcloud CLI finden Sie unter gcloud CLI installieren.

  1. Verwenden Sie zur Authentifizierung die 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. Wenn Sie einen OAuth 2.0-Client für den programmatischen Zugriff auf die Zulassungsliste setzen möchten, 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 ein, 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 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=" "
    
  10. Führen Sie den folgenden Befehl mit globalem oder regionalem 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 „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 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
    
  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 Einstellungen für IAP 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 settings.json-Datei 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 mit globalem oder regionalem Bereich aus, um zu bestätigen, dass 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"
    

IAP-fähige Google Kubernetes Engine-Ressourcen migrieren

Fügen Sie der BackendConfig-CRD (Custom Resource Definition) 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. Dazu verwenden Sie ein Dienstkonto-JWT.

OAuth-Clientschlüssel abrufen

Wenn Sie einen benutzerdefinierten OAuth-Client in der Google Cloud Console erstellen, wird das Client-Secret nur dann 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 des Secrets Ihres OAuth-Clients verwenden, finden Sie unter Auf eine Secret-Version zugreifen eine Anleitung zum Abrufen des Clientschlüssels.

Herausfinden, ob Sie die OAuth Admin API verwenden

So prüfen Sie, ob Sie die OAuth Admin API verwenden:

  1. Öffnen Sie in der Google Cloud Console die Seite „IAP APIs“ und wählen Sie das Projekt aus, das Sie analysieren möchten.

    Zur Seite „IAP APIs“

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

  3. Suchen Sie im Abschnitt Methods (Methoden) nach Methoden mit dem Präfix google.cloud.iap.v1.IdentityAwareProxyOAuthService. Das weist darauf hin, dass das Projekt die OAuth Admin API verwendet.

Alternativen zur Verwendung der 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. Bei Dienstkonto-JWTs müssen Sie keine OAuth-Clients verwenden.