Menyesuaikan konfigurasi OAuth untuk mengaktifkan IAP

Halaman ini menjelaskan kapan dan cara menyesuaikan konfigurasi OAuth untuk Identity-Aware Proxy (IAP).

IAP menggunakan klien OAuth yang dikelola Google untuk mengautentikasi pengguna.

Klien OAuth yang dikelola Google membatasi akses untuk pengguna dalam organisasi yang sama saat mengakses aplikasi yang mengaktifkan IAP melalui browser.

Kapan harus menggunakan konfigurasi OAuth kustom

Anda harus menggunakan konfigurasi OAuth kustom untuk melakukan hal berikut:

  • Untuk mengizinkan akses ke aplikasi yang mengaktifkan IAP bagi pengguna di luar organisasi.
  • Untuk menampilkan informasi merek Anda sendiri selama autentikasi.
  • Untuk mengaktifkan akses terprogram ke aplikasi Anda.

Saat menyesuaikan konfigurasi OAuth, Anda harus mengonfigurasi layar izin OAuth. Hal ini mengharuskan informasi branding untuk aplikasi Anda melalui proses verifikasi Google. Untuk mengetahui informasi selengkapnya tentang proses verifikasi, lihat Menyiapkan layar izin OAuth.

Anda bertanggung jawab untuk membuat dan mengelola kredensial untuk klien OAuth kustom. Hal ini mencakup menyimpan secret klien dengan aman dan membagikannya kepada pengguna yang diberi otorisasi jika diperlukan.

Perbandingan klien OAuth yang dikelola Google dan klien OAuth kustom

Tabel berikut memberikan perbandingan antara klien OAuth yang dikelola Google dan klien OAuth kustom.

Klien OAuth yang dikelola Google Klien OAuth kustom
Pengguna Khusus internal Internal dan Eksternal
Merek Merek Google Cloud Merek milik pelanggan
Konfigurasi OAuth Dikonfigurasi Google Dikonfigurasi pelanggan
Kredensial OAuth Dikelola Google Dikelola pelanggan
Akses aplikasi Khusus alur browser Alur browser dan Akses terprogram

Mengaktifkan IAP menggunakan konfigurasi klien OAuth kustom

App Engine

Konsol

File yang disertakan secara dinamis

Jika belum mengonfigurasi layar izin OAuth project, Anda akan diminta untuk melakukannya. Untuk mengonfigurasi layar izin OAuth, lihat Menyiapkan layar izin OAuth.

Menyiapkan akses IAP

  1. Buka halaman Identity-Aware Proxy.
    Buka halaman Identity-Aware Proxy
  2. Pilih project yang ingin Anda amankan dengan IAP.
  3. Pilih kotak centang di samping resource yang ingin Anda beri akses.
  4. Di panel samping kanan, klik Tambahkan akun utama.
  5. Pada dialog Add principals yang muncul, masukkan alamat email grup atau individu yang seharusnya memiliki peran IAP-secured Web App User untuk project tersebut.

    Jenis akun utama berikut dapat memiliki peran ini:

    • Akun Google: pengguna@gmail.com
    • Google Grup: admin@googlegroups.com
    • Akun layanan: server@example.gserviceaccount.com
    • Domain Google Workspace: example.com

    Pastikan untuk menambahkan Akun Google yang dapat Anda akses.

  6. Pilih Cloud IAP > IAP-secured Web App User dari menu drop-down Roles.
  7. Klik Simpan.

Mengaktifkan IAP

  1. Di halaman Identity-Aware Proxy, di bagian APPLICATIONS, temukan aplikasi yang ingin Anda batasi aksesnya. Untuk mengaktifkan IAP untuk suatu resource,
  2. Di jendela Turn on IAP yang muncul, klik Turn On untuk mengonfirmasi bahwa Anda ingin IAP mengamankan resource. Setelah diaktifkan, IAP akan memerlukan kredensial login untuk semua koneksi ke load balancer Anda. Akses hanya akan diberikan pada akun dengan peran IAP-Secured Web App User pada project.

gcloud

Sebelum menyiapkan project dan IAP, Anda memerlukan gcloud CLI versi terbaru. Untuk mengetahui petunjuk cara menginstal gcloud CLI, baca Menginstal gcloud CLI.

  1. Untuk melakukan autentikasi, gunakan Google Cloud CLI dan jalankan perintah berikut.
    gcloud auth login
  2. Untuk login, ikuti URL yang muncul.
  3. Setelah Anda login, salin kode verifikasi yang muncul dan tempelkan di command line.
  4. Jalankan perintah berikut untuk menentukan project yang berisi resource yang ingin dilindungi dengan IAP.
    gcloud config set project PROJECT_ID
  5. Ikuti petunjuk dalam Membuat klien OAuth untuk IAP guna mengonfigurasi layar izin OAuth dan membuat klien OAuth.
  6. Simpan client ID dan rahasia OAuth.
  7. Untuk mengaktifkan IAP, jalankan perintah berikut.
    gcloud iap web enable \
        --oauth2-client-id=CLIENT_ID \
        --oauth2-client-secret=CLIENT_SECRET \
        --resource-type=app-engine \
        --versions=VERSION

Setelah mengaktifkan IAP, Anda dapat menggunakan gcloud CLI untuk mengubah kebijakan akses IAP menggunakan peran IAM roles/iap.httpsResourceAccessor. Pelajari lebih lanjut cara mengelola peran dan izin.

API

  1. Ikuti petunjuk dalam Membuat klien OAuth untuk IAP guna mengonfigurasi layar izin OAuth dan membuat klien OAuth.

  2. Simpan client ID dan rahasia OAuth.

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

    cat << EOF > settings.json
    {
    "iap":
      {
        "enabled":true,
        "oauth2ClientId" : CLIENT_ID,
        "oauth2ClientSecret" : CLIENT_SECRET,
      }
    }
    EOF
    

  4. Jalankan perintah berikut untuk mengaktifkan 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://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
    

Setelah mengaktifkan IAP, Anda dapat menggunakan Google Cloud CLI untuk mengubah kebijakan akses IAP menggunakan peran IAM roles/iap.httpsResourceAccessor. Pelajari lebih lanjut cara mengelola peran dan izin.

Compute Engine

Konsol

Jika belum mengonfigurasi layar izin OAuth project, Anda akan diminta untuk melakukannya. Untuk mengonfigurasi layar izin OAuth, lihat Menyiapkan layar izin OAuth.

Menyiapkan akses IAP

  1. Buka halaman Identity-Aware Proxy.
    Buka halaman Identity-Aware Proxy
  2. Pilih project yang ingin Anda amankan dengan IAP.
  3. Pilih kotak centang di samping resource yang ingin Anda beri akses.

    Jika Anda tidak melihat resource, pastikan resource sudah dibuat dan pengontrol ingress Compute Engine BackendConfig sudah disinkronkan.

    Untuk memverifikasi bahwa layanan backend tersedia, jalankan perintah gcloud berikut:

    gcloud compute backend-services list
  4. Di panel samping kanan, klik Tambahkan akun utama.
  5. Pada dialog Add principals yang muncul, masukkan alamat email grup atau individu yang seharusnya memiliki peran IAP-secured Web App User untuk project tersebut.

    Jenis akun utama berikut dapat memiliki peran ini:

    • Akun Google: pengguna@gmail.com
    • Google Grup: admin@googlegroups.com
    • Akun layanan: server@example.gserviceaccount.com
    • Domain Google Workspace: example.com

    Pastikan untuk menambahkan Akun Google yang dapat Anda akses.

  6. Pilih Cloud IAP > IAP-secured Web App User dari menu drop-down Roles.
  7. Klik Simpan.

gcloud

Sebelum menyiapkan project dan IAP, Anda memerlukan versi gcloud CLI 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. Untuk login, ikuti URL yang muncul.
  3. Setelah Anda login, salin kode verifikasi yang muncul dan tempelkan di command line.
  4. Jalankan perintah berikut untuk menentukan project yang berisi resource yang ingin dilindungi dengan IAP.
    gcloud config set project PROJECT_ID
  5. Ikuti petunjuk dalam Membuat klien OAuth untuk IAP. guna mengonfigurasi layar izin OAuth dan membuat klien OAuth.
  6. Simpan client ID dan rahasia OAuth.
  7. Untuk mengaktifkan IAP, jalankan perintah cakupan secara global atau regional.

    Cakupan global
    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --global \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    Cakupan regional
    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
        

Setelah mengaktifkan IAP, Anda dapat menggunakan gcloud CLI untuk mengubah kebijakan akses IAP menggunakan peran IAM roles/iap.httpsResourceAccessor. Pelajari lebih lanjut cara mengelola peran dan izin.

API

  1. Ikuti petunjuk dalam Membuat klien OAuth untuk IAP guna mengonfigurasi layar izin OAuth dan membuat klien OAuth.

  2. Simpan client ID dan rahasia OAuth.

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

    cat << EOF > settings.json
    {
    "iap":
      {
        "enabled":true
      }
    }
    EOF
    

  4. Jalankan perintah berikut untuk mengaktifkan 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://compute.googleapis.com/compute/v1/projects/PROJECT_ID/REGION/backendServices/BACKEND_SERVICE_NAME"
    

Setelah mengaktifkan IAP, Anda dapat menggunakan gcloud CLI untuk mengubah kebijakan akses IAP menggunakan peran IAM roles/iap.httpsResourceAccessor. Pelajari lebih lanjut cara mengelola peran dan izin.

Cloud Run

Konsol

Jika belum mengonfigurasi layar izin OAuth project, Anda akan diminta untuk melakukannya. Untuk mengonfigurasi layar izin OAuth, lihat Menyiapkan layar izin OAuth

Menyiapkan akses IAP

  1. Buka halaman Identity-Aware Proxy.
    Buka Identity-Aware Proxy
  2. Pilih project yang ingin Anda amankan dengan IAP.
  3. Di bagian Applications, centang kotak di samping layanan backend load balancer tempat Anda ingin menambahkan anggota.
  4. Di panel samping kanan, klik Tambahkan anggota.
  5. Pada dialog Tambahkan anggota, masukkan akun grup atau individu yang seharusnya memiliki peran IAP-secured Web App User untuk project. Jenis akun berikut dapat menjadi anggota:

    • Akun Google: user@gmail.com - Akun ini juga dapat berupa akun Google Workspace, seperti pengguna@google.com atau domain Google Workspace lainnya.
    • Google Grup: admin@googlegroups.com
    • Akun layanan: server@example.gserviceaccount.com
    • Domain Google Workspace: example.com
  6. Pilih Cloud IAP > IAP-secured Web App User dari daftar Roles.

  7. Klik Simpan.

Mengaktifkan IAP

  1. Di halaman IAP, di bagian Applications, temukan layanan backend load balancer yang ingin Anda batasi aksesnya. Klik tombol IAP untuk mengaktifkan IAP pada resource.
  2. Di jendela Aktifkan IAP yang muncul, klik Aktifkan untuk mengonfirmasi bahwa Anda ingin IAP mengamankan resource. Setelah diaktifkan, IAP akan memerlukan kredensial login untuk semua koneksi ke load balancer Anda. Hanya akun dengan peran IAP-Secured Web App User dalam project yang akan diberi akses.
  3. Untuk mengizinkan IAP mengirim traffic ke layanan Cloud Run backend, ikuti petunjuk di Menambahkan akun utama ke layanan untuk menambahkan prinsip dan peran berikut.

    • Kepala Sekolah: service-[PROJECT-NUMBER]@gcp-sa-iap.iam.gserviceaccount.com
    • Peran: Cloud Run Invoker

gcloud

  1. Ikuti petunjuk dalam Membuat klien OAuth untuk IAP guna mengonfigurasi layar izin OAuth dan membuat klien OAuth.
  2. Simpan client ID dan rahasia OAuth.
  3. Jika Anda belum pernah melakukannya, buat akun layanan dengan menjalankan perintah berikut. Jika sebelumnya Anda telah membuat akun layanan, menjalankan perintah tersebut tidak akan membuat akun layanan duplikat.
    gcloud beta services identity create \
        --service=iap.googleapis.com --project=PROJECT_ID
    
  4. Berikan izin invoker ke akun layanan yang dibuat di langkah sebelumnya dengan menjalankan perintah berikut.
    gcloud run services add-iam-policy-binding SERVICE-NAME \
        --member='serviceAccount:service-PROJECT-NUMBER@gcp-sa-iap.iam.gserviceaccount.com' \
        --role='roles/run.invoker'
    
  5. Aktifkan IAP dengan menjalankan perintah yang tercakup secara global atau regional, bergantung pada apakah layanan backend load balancer Anda bersifat global atau regional. Gunakan client ID dan rahasia OAuth dari langkah sebelumnya.

    Cakupan global

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

    Cakupan regional

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    
    Ganti kode berikut:

    • BACKEND_SERVICE_NAME: nama layanan backend.
    • CLIENT_ID: client ID OAuth, dari langkah sebelumnya.
    • CLIENT_SECRET: rahasia klien OAuth, dari langkah sebelumnya.
    • REGION_NAME: wilayah tempat Anda ingin mengaktifkan IAP.

Setelah mengaktifkan IAP, Anda dapat menggunakan Google Cloud CLI untuk mengubah kebijakan akses IAP menggunakan peran Identity and Access Management roles/iap.httpsResourceAccessor. Lihat Mengelola peran dan izin untuk informasi selengkapnya.