Bermigrasi dari IAP OAuth Admin API

Halaman ini memberikan langkah-langkah untuk bermigrasi dari penggunaan klien OAuth 2.0 yang dibuat menggunakan Identity-Aware Proxy (IAP) OAuth 2.0 Admin API ke penggunaan klien OAuth 2.0 yang dikelola Google yang di-deploy oleh IAP.

Mulai 22 Januari 2025, IAP OAuth 2.0 Admin API, yang digunakan untuk membuat klien IAP OAuth 2.0, tidak digunakan lagi, karena Anda tidak perlu lagi membuat dan mengelola klien OAuth. IAP kini otomatis men-deploy klien OAuth 2.0 yang dikelola Google saat klien OAuth tidak dikonfigurasi. Klien OAuth 2.0 yang dikelola Google membatasi akses ke aplikasi yang mengaktifkan IAP kepada pengguna dalam organisasi yang sama saat mereka mengakses aplikasi tersebut melalui browser.

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

Jika Anda tidak memerlukan integrasi yang konsisten dengan semua resource yang mengaktifkan IAP menggunakan klien OAuth yang dikelola Google, Anda tidak perlu memigrasikan resource yang diaktifkan dengan IAP sebelum penghentian.

Jika menggunakan akses terprogram untuk melindungi aplikasi dan resource dengan IAP, Anda tidak dapat menggunakan klien OAuth 2.0 yang dikelola Google. Anda harus membuat klien OAuth menggunakan konsol atau menggunakan akun layanan.

Tindakan yang diperlukan

Memigrasikan resource yang mengaktifkan IAP

Untuk memigrasikan resource agar dapat 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, 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. Untuk memigrasikan aplikasi, jalankan perintah berikut.

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

API

  1. Jalankan perintah berikut untuk menyiapkan file settings.json.

     cat << EOF > settings.json
     {
     "iap":
         {
           "enabled":true
         }
     }
     EOF
    
  2. 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/<var>PROJECT_ID</var>?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, 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. Untuk memigrasikan aplikasi, jalankan perintah 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=" "
  6. 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 menyiapkan file settings.json.

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

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

Hapus nilai yang ada untuk client ID dan secret OAuth. Contoh:


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 = " "
  }
}
Untuk informasi selengkapnya, 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 versi gcloud CLI 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. Untuk memigrasikan resource, jalankan perintah 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=" "

  6. 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 menyiapkan file settings.json.

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

  3. 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 (CRD) kustom BackendConfig. Tindakan 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