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 penyertaan 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. Di dialog Add principals yang muncul, masukkan alamat email grup atau individu yang harus memiliki peran IAP-secured Web App User untuk project tersebut.

    Jenis akun utama berikut dapat memiliki peran ini:

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

    Pastikan untuk menambahkan Akun Google yang aksesnya Anda miliki.

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

Mengaktifkan IAP

  1. Di halaman Identity-Aware Proxy, pada bagian APPLICATIONS, cari aplikasi yang aksesnya ingin Anda batasi. Untuk mengaktifkan IAP untuk resource,
  2. Di jendela Aktifkan IAP yang muncul, klik Aktifkan untuk mengonfirmasi bahwa Anda ingin IAP mengamankan resource Anda. Setelah Anda mengaktifkan IAP, kredensial login diperlukan untuk semua koneksi ke load balancer Anda. Hanya akun dengan peran IAP-Secured Web App User di project yang akan diberikan akses.

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 mengautentikasi, 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 Anda lindungi dengan IAP.
    gcloud config set project PROJECT_ID
  5. Ikuti petunjuk di Membuat klien OAuth untuk IAP untuk mengonfigurasi layar izin OAuth dan membuat klien OAuth.
  6. Simpan client ID dan secret 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

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 di Membuat klien OAuth untuk IAP guna mengonfigurasi layar izin OAuth dan membuat klien OAuth.

  2. Simpan client ID dan secret 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 dibuat dan pengontrol ingress Compute Engine BackendConfig 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. Di dialog Add principals yang muncul, masukkan alamat email grup atau individu yang harus memiliki peran IAP-secured Web App User untuk project tersebut.

    Jenis akun utama berikut dapat memiliki peran ini:

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

    Pastikan untuk menambahkan Akun Google yang aksesnya Anda miliki.

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

gcloud

Sebelum menyiapkan project dan IAP, Anda memerlukan versi terbaru gcloud CLI. 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. 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 Anda lindungi dengan IAP.
    gcloud config set project PROJECT_ID
  5. Ikuti petunjuk di Membuat klien OAuth untuk IAP. untuk mengonfigurasi layar izin OAuth dan membuat klien OAuth.
  6. Simpan client ID dan secret OAuth.
  7. Untuk mengaktifkan IAP, jalankan perintah yang dicakup 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 di Membuat klien OAuth untuk IAP guna mengonfigurasi layar izin OAuth dan membuat klien OAuth.

  2. Simpan client ID dan secret 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 Aplikasi, centang kotak di samping layanan backend load balancer yang ingin Anda tambahkan anggota.
  4. Di panel samping kanan, klik Tambahkan anggota.
  5. Pada dialog Tambahkan anggota, masukkan akun grup atau individu yang harus memiliki peran IAP-secured Web App User untuk project tersebut. Jenis akun berikut dapat menjadi anggota:

    • Akun Google: user@gmail.com - Ini juga dapat berupa akun Google Workspace, seperti user@google.com atau beberapa 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, pada bagian Aplikasi, temukan layanan backend load balancer yang aksesnya ingin Anda batasi. Klik tombol IAP untuk mengaktifkan IAP di resource.
  2. Di jendela Aktifkan IAP yang muncul, klik Aktifkan untuk mengonfirmasi bahwa Anda ingin IAP mengamankan resource Anda. Setelah Anda mengaktifkan IAP, kredensial login diperlukan untuk semua koneksi ke load balancer Anda. Hanya akun dengan peran IAP-Secured Web App User di project yang akan diberi akses.
  3. Untuk memberikan otorisasi kepada IAP agar dapat mengirim traffic ke layanan Cloud Run backend, ikuti petunjuk di bagian Menambahkan akun utama ke layanan untuk menambahkan akun utama dan peran berikut.

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

gcloud

  1. Ikuti petunjuk di Membuat klien OAuth untuk IAP guna mengonfigurasi layar izin OAuth dan membuat klien OAuth.
  2. Simpan client ID dan secret OAuth.
  3. Jika Anda belum melakukannya sebelumnya, buat akun layanan dengan menjalankan perintah berikut. Jika sebelumnya Anda telah membuat akun layanan, menjalankan perintah ini 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 cakupan global atau regional, bergantung pada apakah layanan backend load balancer Anda bersifat global atau regional. Gunakan client ID dan secret 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: region 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 mengetahui informasi selengkapnya.