Dokumen 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 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
Klien OAuth yang dikelola Google tidak dapat mengakses aplikasi yang dilindungi IAP secara terprogram. Namun, aplikasi yang dilindungi IAP
yang menggunakan klien OAuth yang dikelola Google masih dapat diakses
secara terprogram menggunakan klien OAuth terpisah yang dikonfigurasi melalui
setelan
programmatic_clients atau JWT akun layanan.
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 | Google Cloud merek | 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
Bagian berikut menjelaskan cara mengaktifkan IAP menggunakan konfigurasi klien OAuth kustom untuk berbagai resource.
App 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
-
Buka
halaman Identity-Aware Proxy.
Buka halaman Identity-Aware Proxy - Pilih project yang ingin Anda amankan dengan IAP.
- Pilih kotak centang di samping resource yang ingin Anda beri akses.
- Di panel samping kanan, klik Tambahkan akun utama.
-
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.
- Domain Google Workspace: example.com
Pastikan untuk menambahkan Akun Google yang aksesnya Anda miliki.
- Pilih Cloud IAP > IAP-Secured Web App User dari daftar drop-down Roles.
- Klik Save.
Mengaktifkan IAP
-
Di halaman Identity-Aware Proxy, pada bagian APPLICATIONS,
cari aplikasi yang aksesnya ingin Anda batasi. Untuk mengaktifkan IAP untuk resource,
- 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.
-
Untuk mengautentikasi, gunakan Google Cloud CLI dan jalankan perintah berikut.
gcloud auth login - Untuk login, ikuti URL yang muncul.
- Setelah Anda login, salin kode verifikasi yang muncul dan tempelkan di command line.
-
Jalankan perintah berikut untuk menentukan project yang berisi resource yang ingin Anda lindungi dengan IAP.
gcloud config set project PROJECT_ID - Ikuti petunjuk di Membuat klien OAuth untuk IAP untuk mengonfigurasi layar izin OAuth dan membuat klien OAuth.
- Simpan client ID dan secret OAuth.
-
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
Ikuti petunjuk di Membuat klien OAuth untuk IAP guna mengonfigurasi layar izin OAuth dan membuat klien OAuth.
Simpan client ID dan secret OAuth.
Jalankan perintah berikut untuk menyiapkan file
settings.json.cat << EOF > settings.json { "iap": { "enabled": true, "oauth2ClientId": "CLIENT_ID", "oauth2ClientSecret":" CLIENT_SECRET" } } EOFJalankan perintah berikut untuk mengaktifkan IAP.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth application-default 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.
Jika menjalankan cluster GKE versi 1.24 atau yang lebih baru, Anda dapat mengonfigurasi IAP dan GKE menggunakan Kubernetes Gateway API. Untuk melakukannya, selesaikan
langkah-langkah berikut, lalu ikuti petunjuk di
Mengonfigurasi IAP.
Jangan konfigurasikan BackendConfig.
Menyiapkan akses IAP
-
Buka
halaman Identity-Aware Proxy.
Buka halaman Identity-Aware Proxy - Pilih project yang ingin Anda amankan dengan IAP.
-
Pilih kotak centang di samping resource yang ingin Anda beri akses.
Jika Anda tidak melihat resource, pastikan resource tersebut dibuat dan pengontrol ingress Compute Engine BackendConfig disinkronkan.
Untuk memverifikasi bahwa layanan backend tersedia, jalankan perintah gcloud berikut:
gcloud compute backend-services list - Di panel samping kanan, klik Tambahkan akun utama.
-
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.
- Domain Google Workspace: example.com
Pastikan untuk menambahkan Akun Google yang aksesnya Anda miliki.
- Pilih Cloud IAP > IAP-Secured Web App User dari daftar drop-down Roles.
- Klik Simpan.
Mengaktifkan IAP
-
Di halaman Identity-Aware Proxy, pada bagian APPLICATIONS,
cari load balancer yang menayangkan instance group yang aksesnya ingin Anda batasi. Untuk mengaktifkan IAP untuk resource,
Untuk mengaktifkan IAP:- Setidaknya satu protokol dalam konfigurasi frontend load balancer harus berupa HTTPS. Pelajari cara menyiapkan load balancer.
-
Anda memerlukan izin
compute.backendServices.update,clientauthconfig.clients.create, danclientauthconfig.clients.getWithSecret. Izin ini diberikan oleh peran, seperti peran Project Editor. Untuk mempelajari lebih lanjut, lihat Mengelola akses ke resource yang diamankan IAP.
- 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 terbaru gcloud CLI. Untuk mengetahui petunjuk cara menginstal gcloud CLI, lihat Menginstal gcloud CLI.
-
Untuk mengautentikasi, gunakan Google Cloud CLI dan jalankan perintah berikut.
gcloud auth login - Untuk login, ikuti URL yang muncul.
- Setelah Anda login, salin kode verifikasi yang muncul dan tempelkan di command line.
-
Jalankan perintah berikut untuk menentukan project yang berisi resource yang ingin Anda lindungi dengan IAP.
gcloud config set project PROJECT_ID
- Ikuti petunjuk di Membuat klien OAuth untuk IAP. untuk mengonfigurasi layar izin OAuth dan membuat klien OAuth.
- Simpan client ID dan secret OAuth.
-
Untuk mengaktifkan IAP, jalankan perintah cakupan global atau regional.
Cakupan global Cakupan regionalgcloud compute backend-services update BACKEND_SERVICE_NAME \ --global \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRETgcloud 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
Ikuti petunjuk di Membuat klien OAuth untuk IAP guna mengonfigurasi layar izin OAuth dan membuat klien OAuth.
Simpan client ID dan secret OAuth.
Jalankan perintah berikut untuk menyiapkan file
settings.json.cat << EOF > settings.json { "iap": { "enabled": true, "oauth2ClientId": "CLIENT_ID", "oauth2ClientSecret": "CLIENT_SECRET" } } EOFJalankan perintah berikut untuk mengaktifkan IAP.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth application-default 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
If you haven't configured your project's OAuth consent screen, you're prompted to do so. To configure your OAuth consent screen, see Setting up your OAuth consent screen
Setting up IAP access
- Open the Identity-Aware Proxy page.
Go to Identity-Aware Proxy - Select the project you want to secure with IAP.
- Under Applications, select the checkbox next to the load balancer backend service to which you want to add members.
- On the right side panel, click Add member.
In the Add members dialog, enter the accounts of groups or individuals who should have the IAP-secured Web App User role for the project. The following kinds of accounts can be members:
- Google Account: user@gmail.com - This can also be a Google Workspace account, such as user@google.com or some other Google Workspace domain.
- Google Group: admins@googlegroups.com
- Service account: server@example.
- Google Workspace domain: example.com
Select Cloud IAP > IAP-secured Web App User from the Roles list.
Click Save.
Turning on IAP
- On the IAP page, under Applications, find the load balancer backend service to which you want to restrict access. Click the IAP toggle to enable IAP on a resource.
- In the Turn on IAP window that appears, click Turn On to confirm that you want IAP to secure your resource. After you turn on IAP, it requires login credentials for all connections to your load balancer. Only accounts with the IAP-Secured Web App User role on the project will be given access.
To authorize IAP to send traffic to the backend Cloud Run service, follow the instructions at Add principals to a service to add the following principle and role.
- Principal:
service-[PROJECT-NUMBER]@gcp-sa-iap. - Role: Cloud Run Invoker
- Principal:
gcloud
- Follow the instructions in Creating OAuth clients for IAP to configure the OAuth consent screen and create the OAuth client.
- Save the OAuth client ID and secret.
- 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 - 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' 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_SECRETRegional scope
Replace the following:gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION_NAME \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET- 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.
Google Kubernetes Engine
Konsol
Jika belum mengonfigurasi layar izin OAuth project, Anda akan diminta untuk melakukannya. Untuk mengonfigurasi layar izin OAuth, lihat Menyiapkan layar izin OAuth.
Jika menjalankan cluster GKE versi 1.24 atau yang lebih baru, Anda dapat mengonfigurasi IAP dan GKE menggunakan Kubernetes Gateway API. Untuk melakukannya, selesaikan
langkah-langkah berikut, lalu ikuti petunjuk di
Mengonfigurasi IAP.
Jangan konfigurasikan BackendConfig.
Menyiapkan akses IAP
-
Buka
halaman Identity-Aware Proxy.
Buka halaman Identity-Aware Proxy - Pilih project yang ingin Anda amankan dengan IAP.
-
Pilih kotak centang di samping resource yang ingin Anda beri akses.
Jika Anda tidak melihat resource, pastikan resource tersebut dibuat dan pengontrol ingress Compute Engine BackendConfig disinkronkan.
Untuk memverifikasi bahwa layanan backend tersedia, jalankan perintah gcloud berikut:
gcloud compute backend-services list - Di panel samping kanan, klik Tambahkan akun utama.
-
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.
- Domain Google Workspace: example.com
Pastikan untuk menambahkan Akun Google yang aksesnya Anda miliki.
- Pilih Cloud IAP > IAP-Secured Web App User dari daftar drop-down Roles.
- Klik Simpan.
Mengaktifkan IAP
-
Di halaman Identity-Aware Proxy, pada bagian APPLICATIONS,
cari load balancer yang menayangkan instance group yang aksesnya ingin Anda batasi. Untuk mengaktifkan IAP untuk resource,
Untuk mengaktifkan IAP:- Setidaknya satu protokol dalam konfigurasi frontend load balancer harus berupa HTTPS. Pelajari cara menyiapkan load balancer.
-
Anda memerlukan izin
compute.backendServices.update,clientauthconfig.clients.create, danclientauthconfig.clients.getWithSecret. Izin ini diberikan oleh peran, seperti peran Project Editor. Untuk mempelajari lebih lanjut, lihat Mengelola akses ke resource yang diamankan IAP.
- 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.
GKE
Mengonfigurasi BackendConfig
Jika menjalankan cluster GKE versi 1.24 atau yang lebih baru, Anda dapat mengonfigurasi IAP dan GKE menggunakan Kubernetes Gateway API. Lihat Mengonfigurasi IAP untuk mengetahui petunjuknya.
Ikuti petunjuk di Membuat klien OAuth untuk IAP untuk mengonfigurasi layar izin OAuth dan membuat klien OAuth.
Buat Secret Kubernetes untuk menggabungkan klien OAuth.
Ganti kode berikut:kubectl create secret generic MY_SECRET --from-literal=client_id=CLIENT_ID \ --from-literal=client_secret=CLIENT_SECRET
MY_SECRET: Nama secret yang akan dibuatCLIENT_ID: Client ID OAuthCLIENT_SECRET: Rahasia klien OAuth
Anda akan menerima konfirmasi, seperti output berikut, bahwa Secret berhasil dibuat:
secret "MY_SECRET" created
Tambahkan kredensial OAuth ke BackendConfig.
apiVersion: cloud.google.com/v1 kind: BackendConfig metadata: name: CONFIG_DEFAULT namespace: my-namespace spec: iap: enabled: true oauthclientCredentials: secretName: MY_SECRETAktifkan IAP dengan mengaitkan port Layanan dengan BackendConfig Anda. Lihat Mengaitkan BackendConfig dengan Ingress Anda. Salah satu cara untuk membuat pengaitan ini adalah dengan menetapkan semua port untuk layanan secara default ke BackendConfig, yang dapat Anda lakukan dengan menambahkan anotasi berikut ke resource Layanan:
metadata: annotations: beta.cloud.google.com/backend-config: '{"default": "CONFIG_DEFAULT"}}'
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.
Pemecahan masalah
Jika secretName yang Anda referensikan tidak ada atau tidak disusun
dengan benar, salah satu pesan error berikut akan ditampilkan:
BackendConfig default/config-default is not valid: error retrieving secret "foo": secrets "foo" not found.Untuk mengatasi error ini, pastikan Anda telah membuat Secret Kubernetes dengan benar seperti yang dijelaskan pada langkah 2.BackendConfig default/config-default is not valid: secret "foo" missing client_secret data.Untuk mengatasi error ini, pastikan Anda telah membuat kredensial OAuth dengan benar. Selain itu, pastikan Anda mereferensikan kunciclient_iddanclient_secretyang benar.