Bermigrasi dari IAP OAuth Admin API

Panduan ini menjelaskan bahwa IAP OAuth Admin API sudah tidak digunakan lagi dan cara memigrasikan klien OAuth yang dibuat menggunakan API tersebut ke klien OAuth kustom jika Anda mau. Untuk mempelajari lebih lanjut manfaat penggunaan klien OAuth kustom, termasuk branding kustom, lihat Menyesuaikan konfigurasi OAuth untuk mengaktifkan IAP.

Jika Anda tidak menggunakan IAP OAuth Admin API, perubahan ini tidak akan memengaruhi Anda.

Daripada mengelola klien OAuth 2.0 secara manual, IAP secara otomatis menggunakan klien OAuth yang dikelola Google.

Untuk memeriksa apakah project Anda menggunakan OAuth Admin API, lihat Memeriksa penggunaan OAuth Admin API. Jika project Anda menggunakan OAuth Admin API, Anda harus menggunakan petunjuk migrasi dalam dokumen ini, atau Anda dapat menggunakan alternatif untuk OAuth Admin API

Apa saja yang berubah

Kami menghentikan penggunaan IAP OAuth Admin API, yang mencakup API berikut untuk pengelolaan merek dan klien OAuth secara manual:

Daripada mengelola klien OAuth 2.0 secara manual, IAP menggunakan klien OAuth yang dikelola Google, yang menyederhanakan pengelolaan klien OAuth, mengurangi kesalahan manual, dan menyederhanakan proses deployment Anda.

Untuk terus menyediakan branding kustom, sebaiknya Anda mengonfigurasi klien OAuth kustom.

Yang tidak berubah

Jika Anda tidak menggunakan IAP OAuth Admin API, perubahan ini tidak akan memengaruhi Anda.

Penghentian penggunaan ini tidak memengaruhi klien OAuth yang Anda konfigurasi secara manual menggunakan Compute Engine API, App Engine API, atau Google Cloud konsol.

Anda dapat terus membuat konfigurasi merek dan klien OAuth baru serta mengelolanya menggunakan konsol Google Cloud , dan konfigurasi yang ada akan terus didukung sepenuhnya.

Memeriksa penggunaan OAuth Admin API

Untuk menentukan apakah project Anda menggunakan IAP OAuth Admin API, lakukan hal berikut:

  1. Di konsol Google Cloud , buka halaman Penggunaan IAP API.

    Buka Penggunaan API IAP

  2. Pilih project Anda. Pilih project yang ingin Anda periksa penggunaan OAuth Admin API-nya.

  3. Lihat bagian Grafik.

  4. Di bagian Grafik, pilih Traffic by API method dari opsi yang tersedia.

  5. Cari metode API yang diawali dengan awalan berikut:

    google.cloud.iap.v1.IdentityAwareProxyOAuthService.*

Jika Anda melihat metode dengan awalan ini, project menggunakan metode layanan OAuth IAP.

Deskripsi mendetail

Mulai 22 Januari 2025, IAP OAuth 2.0 Admin API, yang digunakan untuk membuat klien IAP OAuth 2.0, akan dihentikan penggunaannya. IAP OAuth 2.0 Admin API tidak lagi diperlukan karena Anda tidak perlu lagi mengonfigurasi klien OAuth. IAP kini menggunakan klien OAuth yang dikelola Google untuk akses browser secara default atau saat tidak ada klien OAuth 2.0 yang dikonfigurasi secara eksplisit. Klien OAuth 2.0 yang dikelola Google membatasi akses ke aplikasi yang mendukung IAP bagi pengguna dalam organisasi yang sama saat mereka mengakses aplikasi tersebut melalui browser.

Dengan penghentian penggunaan Identity-Aware Proxy (IAP) OAuth 2.0 Admin API, Anda tidak dapat lagi menggunakan API ini untuk membuat atau mengelola klien OAuth. Klien OAuth yang dibuat sebelum penghentian ini tidak akan dibatalkan. Anda dapat terus menggunakan klien OAuth yang telah dibuat sebelumnya, dan mengelola klien tersebut menggunakan konsolGoogle Cloud .

Jika Anda telah mengonfigurasi aplikasi dengan klien OAuth yang dibuat menggunakan IAP 2.0 Admin API atau cara lain, aplikasi tersebut akan terus berfungsi. Tidak ada perubahan yang diperlukan pada aplikasi. Namun, jika skrip otomatisasi Anda menggunakan IAP OAuth 2.0 Admin API untuk mengonfigurasi klien baru atau mengambil secret klien untuk klien yang sudah ada, Anda harus memperbarui skrip agar tidak menggunakan IAP OAuth 2.0 Admin API.

Untuk mempelajari cara mengonfigurasi klien OAuth 2.0 yang dikelola Google untuk aplikasi Anda, lihat Akses terprogram.

Jika Anda memiliki persyaratan yang tidak dipenuhi oleh klien OAuth 2.0 yang dikelola Google, Anda dapat membagikan satu klien OAuth dengan beberapa aplikasi IAP, sehingga tidak perlu membuat klien secara manual untuk setiap aplikasi baru.

Tindakan yang diperlukan

  • Perbarui skrip otomatisasi

    Jika Anda menggunakan Terraform atau alat lain untuk mengotomatiskan konfigurasi IAP, dan Anda menggunakan IAP OAuth 2.0 Admin API, Anda harus memperbarui skrip otomatisasi untuk menggunakan klien yang dibuat sebelumnya atau menggunakan klien OAuth yang dikelola Google dengan IAP.

  • Mengonfigurasi akses terprogram untuk aplikasi menggunakan klien OAuth 2.0 yang Dikelola Google

    Jika Anda sudah memiliki beberapa aplikasi yang dilindungi oleh IAP dan Anda berencana memigrasikannya menggunakan klien OAuth 2.0 yang Dikelola Google, Anda dapat mengonfigurasi akses terprogram untuk aplikasi ini dengan mengizinkan klien OAuth 2.0.

Memigrasikan resource yang mendukung IAP

Untuk memigrasikan resource Anda agar menggunakan klien OAuth 2.0 yang dikelola Google, ikuti langkah-langkah untuk jenis resource, seperti resource Compute Engine, yang ingin Anda migrasikan.

Memigrasikan resource App Engine yang mendukung IAP

Selesaikan langkah-langkah di bagian ini untuk memigrasikan resource App Engine tempat IAP diaktifkan dan klien OAuth 2.0 dikonfigurasi.

gcloud

Sebelum melanjutkan ke langkah-langkahnya, pastikan Anda memiliki gcloud CLI versi terbaru. Untuk mengetahui petunjuk cara menginstal gcloud CLI, lihat Menginstal gcloud CLI.

  1. Gunakan Google Cloud CLI untuk melakukan autentikasi.

    gcloud auth login
    
  2. Klik URL yang muncul, lalu login.

  3. Setelah Anda login, salin kode verifikasi yang muncul dan tempelkan di command line.

  4. Jalankan perintah berikut untuk menentukan project yang berisi aplikasi yang ingin Anda terus lindungi dengan IAP.

    gcloud config set project PROJECT_ID
    
  5. Jalankan perintah berikut untuk mengambil ID klien OAuth 2.0 yang dikonfigurasi.

    gcloud app describe --format="value(iap.oauth2ClientId)"
    

    Simpan ID klien dari perintah sebelumnya jika Anda ingin mengizinkan akses terprogram.

  6. Untuk memasukkan klien OAuth 2.0 ke daftar yang diizinkan untuk akses terprogram, lakukan operasi baca-perbarui-tulis pada API setelan IAP.

    gcloud iap settings get --resource-type=app-engine --project=$PROJECT > settings.yaml
    
  7. Perbarui file settings.yaml dan tambahkan ID klien OAuth 2.0 yang sebelumnya diambil di bagian programmaticClients seperti yang ditunjukkan pada contoh berikut.

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Terapkan setelan baru di aplikasi App Engine

    gcloud iap settings set settings.yaml --resource-type=app-engine --project=PROJECT_ID
    
  9. Untuk memigrasikan aplikasi Anda, jalankan perintah berikut.

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

API

  1. Jalankan perintah berikut untuk mengambil Client ID OAuth 2.0 yang dikonfigurasi.

    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. Jalankan perintah berikut untuk mengambil setelan IAP yang ada ke dalam file settings.json.

    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. Perbarui file settings.json untuk menambahkan CLIENT_ID yang disimpan sebelumnya sebagai klien terprogram.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. Jalankan perintah berikut untuk mengupdate setelan IAP.

    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. Jalankan perintah berikut untuk menyiapkan file settings.json.

      cat << EOF > settings.json
      {
      "iap":
          {
            "enabled":true
          }
      }
      EOF
    
  6. Jalankan perintah berikut untuk memigrasikan aplikasi Anda.

      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"
    

Memigrasikan resource Compute Engine yang mendukung IAP

Selesaikan langkah-langkah di bagian ini untuk memigrasikan resource Compute Engine yang IAP-nya diaktifkan dan klien OAuth 2.0-nya dikonfigurasi.

gcloud

Sebelum melanjutkan ke langkah-langkahnya, pastikan Anda memiliki gcloud CLI versi terbaru. Untuk mengetahui petunjuk cara menginstal gcloud CLI, lihat Menginstal gcloud CLI.

  1. Gunakan Google Cloud CLI untuk melakukan autentikasi.

    gcloud auth login
    
  2. Klik URL yang muncul, lalu login.

  3. Setelah Anda login, salin kode verifikasi yang muncul dan tempelkan di command line.

  4. Jalankan perintah berikut untuk menentukan project yang berisi aplikasi yang ingin Anda terus lindungi dengan IAP.

    gcloud config set project PROJECT_ID
    
  5. Jalankan perintah berikut untuk mengambil ID klien OAuth 2.0 yang dikonfigurasi.

    Cakupan global

    
    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
    --global \
    --format="value(iap.oauth2ClientId)"
    

    Cakupan regional

    
    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
    --region REGION_NAME \
    --format="value(iap.oauth2ClientId)"
    

    Simpan ID klien dari perintah sebelumnya jika Anda ingin mengizinkan akses terprogram.

  6. Untuk memasukkan klien OAuth 2.0 ke daftar yang diizinkan untuk akses terprogram, lakukan operasi baca-perbarui-tulis pada API setelan IAP.

    Cakupan global

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME > settings.yaml
    

    Cakupan regional

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME > settings.yaml
    
  7. Perbarui file settings.yaml dan tambahkan ID klien OAuth 2.0 yang sebelumnya diambil di bagian programmaticClients seperti yang ditunjukkan pada contoh berikut:

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Terapkan setelan baru pada aplikasi Compute Engine:

    Cakupan global

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME

    Cakupan regional

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME
  9. Untuk memigrasikan aplikasi, jalankan perintah yang tercakup secara global atau regional.

    Cakupan global

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --global \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    

    Cakupan regional

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    
  10. Untuk mengonfirmasi bahwa ID klien OAuth tidak ditetapkan, jalankan perintah cakupan global atau regional berikut. Setelah menjalankan perintah, periksa output untuk memastikan bahwa kolom ID klien OAuth kosong.

    Cakupan global

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global
    

    Cakupan regional

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

API

  1. Jalankan perintah berikut untuk mengambil Client ID OAuth 2.0 yang dikonfigurasi.

    Cakupan global

    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"
    

    Cakupan regional

    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. Jalankan perintah berikut untuk mengambil setelan IAP yang ada ke dalam file settings.json.

    Cakupan global

    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
    

    Cakupan regional

    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. Perbarui file settings.json untuk menambahkan CLIENT_ID yang disimpan sebelumnya sebagai klien terprogram.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. Jalankan perintah berikut untuk mengupdate setelan IAP.

    Cakupan global

    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"
    

    Cakupan regional

    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. Jalankan perintah berikut untuk menyiapkan file settings.json.

    cat << EOF > settings.json
    {
    "iap":
          {
            "enabled":true,
            "oauth2ClientId": " ",
            "oauth2ClientSecret": " "
          }
    }
    EOF
    
  6. Jalankan perintah berikut untuk memigrasikan resource IAP Anda.

    Cakupan global

    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"
    

    Cakupan regional

    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. Untuk mengonfirmasi bahwa ID klien OAuth tidak ditetapkan, jalankan perintah cakupan global atau regional berikut. Setelah menjalankan perintah, periksa output untuk memastikan bahwa kolom ID klien OAuth kosong.

    Cakupan global

    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"
    

    Cakupan regional

    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

Jika Anda memigrasikan resource yang sudah diaktifkan IAP untuk menggunakan klien OAuth yang dikelola Google, Anda harus menghapus setelan kolom oauth2_client_id dan oauth2_client_secret secara eksplisit. Untuk membatalkan setelan kolom yang memperbarui nilai ke satu karakter spasi, seperti yang ditunjukkan dalam contoh berikut:

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 = " "
  }
}

Kolom oauth2_client_id dan oauth2_client_secret bersifat opsional, dan jika Anda menggunakan resource baru yang mendukung IAP, Anda dapat mengabaikannya.

Untuk mengetahui informasi selengkapnya tentang cara menggunakan Terraform dengan Google Cloud, lihat dokumentasi Terraform.

Memigrasikan resource Cloud Run yang mendukung IAP

Selesaikan langkah-langkah di bagian ini untuk memigrasikan resource Cloud Run yang IAP-nya diaktifkan dan klien OAuth 2.0-nya dikonfigurasi.

gcloud

Sebelum melanjutkan ke langkah-langkahnya, pastikan Anda memiliki gcloud CLI versi terbaru. Untuk mengetahui petunjuk cara menginstal gcloud CLI, lihat Menginstal gcloud CLI.

  1. Untuk mengautentikasi, gunakan Google Cloud CLI dan jalankan perintah berikut.

    gcloud auth login
    
  2. Klik URL yang muncul, lalu login.

  3. Setelah Anda login, salin kode verifikasi yang muncul dan tempelkan di command line.

  4. Jalankan perintah berikut untuk menentukan project yang berisi aplikasi yang ingin Anda terus lindungi dengan IAP.

    gcloud config set project PROJECT_ID
    
  5. Jalankan perintah berikut untuk mengambil ID klien OAuth 2.0 yang dikonfigurasi.

    Cakupan global

    
    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global \
        --format="value(iap.oauth2ClientId)"
    

    Cakupan regional

    
    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
      --region REGION_NAME \
      --format="value(iap.oauth2ClientId)"
    

    Simpan ID klien dari perintah sebelumnya jika Anda ingin mengizinkan akses terprogram.

  6. Untuk memasukkan klien OAuth 2.0 ke daftar yang diizinkan untuk akses terprogram, lakukan operasi baca-perbarui-tulis di API setelan IAP.

    Cakupan global

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME > settings.yaml
    

    Cakupan regional

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME > settings.yaml
    
  7. Perbarui file settings.yaml dan tambahkan ID klien OAuth 2.0 yang sebelumnya diambil di bagian programmaticClients seperti contoh yang ditunjukkan.

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Terapkan setelan baru pada aplikasi Compute Engine.

    Cakupan global

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME
    

    Cakupan regional

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME
    
  9. Untuk memigrasikan resource, jalankan perintah yang tercakup secara global atau regional.

    Cakupan global

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --global \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    

    Cakupan regional

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    
  10. Untuk mengonfirmasi bahwa ID klien OAuth tidak ditetapkan, jalankan perintah cakupan global atau regional berikut. Setelah menjalankan perintah, periksa output untuk memastikan bahwa kolom ID klien OAuth kosong.

    Cakupan global

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global
    

    Cakupan regional

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

API

  1. Jalankan perintah berikut untuk mengambil Client ID OAuth 2.0 yang dikonfigurasi.

    Cakupan global

    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"
    

    Cakupan regional

    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. Jalankan perintah berikut untuk mengambil setelan IAP yang ada ke dalam file settings.json.

    Cakupan global

    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
    

    Cakupan regional

    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. Perbarui file settings.json untuk menambahkan CLIENT_ID yang disimpan sebelumnya sebagai klien terprogram.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. Jalankan perintah berikut untuk mengupdate setelan IAP.

    Cakupan global

    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"
    

    Cakupan regional

    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. Jalankan perintah berikut untuk menyiapkan file settings.json.

    cat << EOF > settings.json
    {
    "iap":
          {
            "enabled":true,
            "oauth2ClientId": " ",
            "oauth2ClientSecret": " "
          }
    }
    EOF
    
  6. Jalankan perintah berikut untuk memigrasikan resource Anda.

    Cakupan global

    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"
    

    Cakupan regional

    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. Untuk mengonfirmasi bahwa ID klien OAuth tidak ditetapkan, jalankan perintah cakupan global atau regional berikut. Setelah menjalankan perintah, periksa output untuk memastikan bahwa kolom ID klien OAuth kosong.

    Cakupan global

    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"
    

    Cakupan regional

    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"
    

Memigrasikan resource Google Kubernetes Engine yang mendukung IAP

Tambahkan blok IAP berikut ke Definisi Resource Kustom (CRD) BackendConfig. Hal ini memungkinkan IAP dengan klien OAuth 2.0 yang dikelola Google.

apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
  name: config-default
  namespace: my-namespace
spec:
  iap:
    enabled: true

Menggunakan JWT akun layanan untuk mengautentikasi ke IAP

Anda dapat melakukan autentikasi ke IAP tanpa harus menggunakan OAuth Admin API yang tidak digunakan lagi dengan menggunakan JWT akun layanan.

Mendapatkan rahasia klien OAuth

Saat Anda membuat klien OAuth kustom di konsol Google Cloud , secret klien hanya ditampilkan pada saat itu. Anda bertanggung jawab untuk menyimpan rahasia ini dengan aman. Secret Manager adalah layanan yang direkomendasikan untuk menyimpan rahasia klien OAuth secara aman.

Jika Anda menggunakan Secret Manager untuk menyimpan rahasia klien OAuth, lihat Mengakses versi secret untuk mengetahui petunjuk cara mendapatkan rahasia klien.

Menentukan apakah Anda menggunakan OAuth Admin API

Untuk memeriksa apakah Anda menggunakan OAuth Admin API, selesaikan langkah-langkah berikut.

  1. Di konsol Google Cloud , buka halaman IAP API, lalu pilih project yang ingin Anda analisis.

    Buka halaman IAP API

  2. Dalam daftar Select Graphs, pilih Traffic by API method, lalu klik OK.

  3. Di bagian Methods, cari metode apa pun dengan awalan google.cloud.iap.v1.IdentityAwareProxyOAuthService, yang menunjukkan bahwa project menggunakan OAuth Admin API.

Alternatif untuk menggunakan OAuth Admin API

Jika perlu mendapatkan kredensial klien OAuth tanpa menggunakan OAuth API, Anda dapat menggunakan metode berikut:

  • Google Cloud console: Anda dapat memperoleh kredensial OAuth secara manual melalui halaman Credentials.

  • Secret Manager: Anda dapat menyimpan dan mengambil secret menggunakan Secret Manager. Untuk mempelajari cara menggunakan Secret Manager dengan Terraform, lihat google_secret_manager_secret.

  • JWT akun layanan: Gunakan Token Web JSON (JWT) akun layanan untuk autentikasi. Dengan JWT akun layanan, Anda tidak perlu menggunakan klien OAuth.