Menyesuaikan konfigurasi OAuth untuk mengaktifkan IAP

Halaman ini menjelaskan waktu 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 ke pengguna dalam organisasi yang sama saat mengakses aplikasi yang diaktifkan IAP melalui browser.

Kapan harus menggunakan konfigurasi OAuth kustom

Anda harus menggunakan konfigurasi OAuth kustom untuk melakukan hal berikut:

  • Untuk mengizinkan akses ke aplikasi berkemampuan 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 aplikasi Anda melalui proses verifikasi Google. Untuk informasi selengkapnya tentang proses verifikasi, lihat Menyiapkan layar izin OAuth.

Anda bertanggung jawab untuk membuat dan mengelola kredensial untuk klien OAuth kustom. Hal ini termasuk menyimpan rahasia klien secara 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 Pelanggan dikonfigurasi
Kredensial OAuth Dikelola Google Dikelola pelanggan
Akses aplikasi Hanya 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

Before you set up your project and IAP, you need an up-to-date version of gcloud CLI. For instructions on how to install the gcloud CLI, see Install the gcloud CLI.

  1. To authenticate, use the Google Cloud CLI and run the following command.
    gcloud auth login
  2. To sign in, follow the URL that appears.
  3. After you sign in, copy the verification code that appears and paste it in the command line.
  4. Run the following command to specify the project that contains the resource that you want to protect with IAP.
    gcloud config set project PROJECT_ID
  5. Follow the instructions in Creating OAuth clients for IAP to configure the OAuth consent screen and create the OAuth client.
  6. Save the OAuth client ID and secret.
  7. To enable IAP, run the following command.
    gcloud iap web enable \
        --oauth2-client-id=CLIENT_ID \
        --oauth2-client-secret=CLIENT_SECRET \
        --resource-type=app-engine

After you enable IAP, you can use the gcloud CLI to modify the IAP access policy using the IAM role roles/iap.httpsResourceAccessor. Learn more about managing roles and permissions.

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

Before you set up your project and IAP, you need an up-to-date version of the gcloud CLI. For instructions on how to install the gcloud CLI, see Install the gcloud CLI.

  1. To authenticate, use the Google Cloud CLI and run the following command.
    gcloud auth login
  2. To sign in, follow the URL that appears.
  3. After you sign in, copy the verification code that appears and paste it in the command line.
  4. Run the following command to specify the project that contains the resource that you want to protect with IAP.
    gcloud config set project PROJECT_ID
  5. Follow the instructions in Creating OAuth clients for IAP. to configure the OAuth consent screen and create the OAuth client.
  6. Save the OAuth client ID and secret.
  7. To enable IAP, run either the globally or regionally scoped command.

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

After you enable IAP, you can use the gcloud CLI to modify the IAP access policy using the IAM role roles/iap.httpsResourceAccessor. Learn more about managing roles and permissions.

API

  1. Follow the instructions in Creating OAuth clients for IAP to configure the OAuth consent screen and create the OAuth client.

  2. Save the OAuth client ID and secret.

  3. Run the following command to prepare a settings.json file.

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

  4. Run the following command to enable 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"
    

After you enable IAP, you can use the gcloud CLI to modify the IAP access policy using the IAM role roles/iap.httpsResourceAccessor. Learn more about managing roles and permissions.

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. Follow the instructions in Creating OAuth clients for IAP to configure the OAuth consent screen and create the OAuth client.
  2. Save the OAuth client ID and secret.
  3. If you have not previously done so, create a service account by running the following command. If you previously created a service account, running the command does not create duplicate service accounts.
    gcloud beta services identity create \
        --service=iap.googleapis.com --project=PROJECT_ID
    
  4. Grant the invoker permission to the service account, created in the previous step, by running the following command.
    gcloud run services add-iam-policy-binding SERVICE-NAME \
        --member='serviceAccount:service-PROJECT-NUMBER@gcp-sa-iap.' \
        --role='roles/run.invoker'
    
  5. Enable IAP by running either the globally or regionally scoped command, depending on whether your load balancer backend service is global or regional. Use the OAuth client ID and secret from the previous step.

    Global scope

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

    Regional scope

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    
    Replace the following:

    • BACKEND_SERVICE_NAME: the name of the backend service.
    • CLIENT_ID: the OAuth client ID, from the previous step.
    • CLIENT_SECRET: the OAuth client secret, from the previous step.
    • REGION_NAME: the region in which you want to enable IAP.

After you enable IAP, you can use the Google Cloud CLI to modify the IAP access policy using the Identity and Access Management role roles/iap.httpsResourceAccessor. See Managing roles and permissions for more information.