Bermigrasi dari IAP OAuth Admin API

Identity-Aware Proxy (IAP) OAuth Admin API kini tidak digunakan lagi. Panduan ini menunjukkan cara memigrasikan klien OAuth yang ada ke klien OAuth yang dikelola Google. Jika Anda tidak menggunakan IAP OAuth Admin API, perubahan ini tidak akan memengaruhi Anda.

Untuk memeriksa apakah project Anda menggunakan OAuth Admin API, lihat Memeriksa penggunaan OAuth Admin API. Jika project Anda menggunakan OAuth Admin API, Anda harus mengikuti 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 dan grup perintah gcloud CLI berikut untuk pengelolaan klien OAuth dan brand secara manual:

Anda tidak dapat lagi membuat atau mengelola klien OAuth kustom menggunakan IAP OAuth Admin API. Alih-alih mengelola klien OAuth 2.0 secara manual, IAP menggunakan klien OAuth yang dikelola Google. Hal ini menyederhanakan pengelolaan klien OAuth, mengurangi error 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 ini tidak memengaruhi klien OAuth yang Anda konfigurasi secara manual menggunakan Compute Engine API, App Engine API, atau konsol Google Cloud . Hal ini juga tidak memengaruhi API IAP atau grup perintah gcloud CLI lainnya (termasuk jalur rilis alpha dan beta) yang mengelola kebijakan akses, setelan, atau penerusan TCP IAP—seperti gcloud iap web (misalnya, get-iam-policy dan remove-iam-policy-binding), gcloud iap settings, dan gcloud iap tcp—karena perintah tersebut menggunakan API IdentityAwareProxyAdminService, bukan API IdentityAwareProxyOAuthService yang tidak digunakan lagi.

Anda dapat terus membuat konfigurasi merek dan klien OAuth baru serta mengelolanya menggunakan konsol Google Cloud . Anda tidak perlu memigrasikan klien OAuth yang ada; Anda dapat terus menggunakan dan mengelolanya melalui konsolGoogle Cloud , bukan IAP OAuth Admin API.

Memeriksa penggunaan IAP OAuth Admin API

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

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

    Buka Penggunaan API IAP

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

  3. Di daftar Select Graphs, pilih Traffic by API method, lalu klik OK.

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

Deskripsi mendetail

Mulai 22 Januari 2025, IAP OAuth 2.0 Admin API, yang digunakan untuk membuat klien OAuth 2.0 IAP, tidak digunakan lagi. 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 Anda buat sebelumnya dan mengelola klien tersebut menggunakan konsol Google Cloud .

Jika Anda memiliki aplikasi yang dikonfigurasi dengan klien OAuth yang dibuat menggunakan IAP 2.0 Admin API atau lainnya, aplikasi tersebut akan terus berfungsi. Tidak diperlukan perubahan pada aplikasi. Namun, jika skrip otomatisasi atau alat Infrastructure as Code (IaC) Anda menggunakan IAP OAuth 2.0 Admin API untuk mengonfigurasi klien baru atau mengambil rahasia klien untuk klien yang ada, Anda harus mengupdate skrip tersebut agar tidak menggunakan IAP OAuth 2.0 Admin API.

Apakah Anda akan terus menggunakan klien yang dikelola pengguna yang sudah ada atau mempertimbangkan untuk beralih ke opsi yang dikelola Google, bergantung pada persyaratan Anda untuk branding dan akses eksternal. Untuk mengetahui perincian mendetail tentang semua perbedaan fungsional, lihat Tabel perbandingan klien OAuth kustom dan yang dikelola Google. Jika aplikasi Anda memerlukan Client ID kustom untuk branding atau akses eksternal, gunakan konsol Google Cloud untuk membuat Client ID. Untuk mengetahui informasi selengkapnya tentang klien OAuth kustom, lihat Menyesuaikan konfigurasi OAuth untuk mengaktifkan IAP.

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

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

Tindakan yang diperlukan

  • Memperbarui skrip otomatisasi

    Jika Anda menggunakan Terraform, gcloud CLI (gcloud iap oauth-brands atau gcloud iap oauth-clients, termasuk alpha dan beta), atau alat lainnya untuk mengotomatiskan konfigurasi IAP, dan Anda menggunakan IAP OAuth 2.0 Admin API, Anda harus mengupdate skrip otomatisasi untuk menggunakan klien yang telah 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 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 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 mengaktifkan 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 dan login.

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

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

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

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

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

  6. Untuk mengizinkan klien OAuth 2.0 untuk akses terprogram, lakukan operasi baca-update-tulis pada API setelan IAP.

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

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Menerapkan 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 mengaktifkan IAP

Selesaikan langkah-langkah di bagian ini untuk memigrasikan resource Compute 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 dan login.

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

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

    gcloud config set project PROJECT_ID
    
  5. Jalankan perintah berikut untuk mengambil client ID 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 client ID dari perintah sebelumnya jika Anda ingin mengizinkan akses terprogram.

  6. Untuk memberi klien OAuth 2.0 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 client ID OAuth 2.0 yang diambil sebelumnya di bagian programmaticClients seperti yang ditunjukkan dalam 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 Anda, jalankan perintah berikut. Untuk menghapus client ID OAuth dan rahasia OAuth, teruskan satu spasi yang diapit tanda kutip (" ") dalam perintah. Layanan backend menggunakan klien OAuth yang dikelola Google.

    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 Anda telah menghapus client ID OAuth dan rahasia klien OAuth, serta bahwa layanan backend menggunakan klien OAuth yang dikelola Google, jalankan gcloud compute backend-services describe. Untuk menghapus kolom ini selama migrasi, perintah gcloud compute backend-services update menggunakan satu spasi (" "), yang ditafsirkan oleh Compute Engine API sebagai petunjuk untuk menghapus nilai oauth2ClientId dan oauth2ClientSecret.

    Cakupan global

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global
    

    Cakupan regional

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

    Setelah Anda menjalankan perintah describe, periksa bagian iap dari output. Migrasi yang berhasil ditunjukkan saat kolom oauth2ClientId menampilkan satu spasi (' '), dan kolom oauth2ClientSecret berisi hash SHA256 (36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068) dari satu spasi.

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 client ID OAuth tidak ditetapkan, jalankan perintah cakupan global atau regional berikut. Setelah menjalankan perintah, periksa output untuk memastikan bahwa kolom client ID 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 mendukung IAP yang ada untuk menggunakan klien OAuth yang dikelola Google, Anda harus secara eksplisit membatalkan penetapan kolom oauth2_client_id dan oauth2_client_secret. Untuk membatalkan penetapan kolom yang memperbarui nilai menjadi satu karakter spasi kosong, 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 penggunaan Terraform dengan Google Cloud, lihat dokumentasi Terraform.

Memigrasikan resource Cloud Run yang mengaktifkan IAP

Selesaikan langkah-langkah di bagian ini untuk memigrasikan resource Cloud Run 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. Untuk melakukan autentikasi, gunakan Google Cloud CLI dan jalankan perintah berikut.

    gcloud auth login
    
  2. Klik URL yang muncul dan login.

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

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

    gcloud config set project PROJECT_ID
    
  5. Jalankan perintah berikut untuk mengambil client ID 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 client ID dari perintah sebelumnya jika Anda ingin mengizinkan akses terprogram.

  6. Untuk mengizinkan klien OAuth 2.0 untuk akses terprogram, lakukan operasi baca-update-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 client ID OAuth 2.0 yang diambil sebelumnya di bagian programmaticClients seperti contoh yang ditampilkan.

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Terapkan setelan baru di 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 dengan cakupan 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 client ID OAuth tidak ditetapkan, jalankan perintah cakupan global atau regional berikut. Setelah menjalankan perintah, periksa output untuk memastikan bahwa kolom client ID 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 client ID OAuth tidak ditetapkan, jalankan perintah cakupan global atau regional berikut. Setelah menjalankan perintah, periksa output untuk memastikan bahwa kolom client ID 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 mengaktifkan IAP

Tambahkan blok IAP berikut ke Definisi Resource Kustom (CRD) BackendConfig. Tindakan ini akan mengaktifkan 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 melakukan autentikasi 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 , rahasia 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 dengan aman.

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

Memverifikasi apakah Anda menggunakan IAP OAuth Admin API

Untuk memeriksa apakah project Anda menggunakan OAuth Admin API IAP, lihat Memeriksa penggunaan OAuth Admin API.

Alternatif untuk menggunakan OAuth Admin API

Jika Anda 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: Menggunakan Token Web JSON (JWT) akun layanan untuk autentikasi. Dengan JWT akun layanan, Anda tidak perlu menggunakan klien OAuth.