Dokumen ini menjelaskan kapan dan cara menggunakan klien OAuth kustom untuk Identity-Aware Proxy (IAP).
Secara default, IAP menggunakan klien OAuth yang dikelola Google untuk mengautentikasi pengguna. Klien OAuth yang dikelola Google hanya dapat digunakan untuk mengelola akses bagi pengguna internal yang berada dalam organisasi.
Anda harus menggunakan konfigurasi OAuth kustom untuk melakukan hal berikut:
- Mengelola akses ke aplikasi yang mendukung IAP untuk pengguna eksternal yang berada di luar organisasi Anda.
- Mengelola akses ke aplikasi web yang ada di project yang tidak ada di Google Cloud organisasi.
- Menampilkan informasi merek kustom di layar izin selama autentikasi.
Anda dapat mengonfigurasi klien OAuth kustom di IAP atau langsung di platform Anda.
Saat menggunakan klien OAuth kustom, Anda harus mengonfigurasi layar izin OAuth. Agar branding kustom muncul di layar izin, Anda harus mengirimkan aplikasi untuk verifikasi Google. Untuk mengetahui informasi selengkapnya tentang proses verifikasi, lihat Menyiapkan layar izin OAuth.
Saat mengonfigurasi klien OAuth kustom, Anda bertanggung jawab untuk membuat dan mengelola kredensial, yang mencakup menyimpan rahasia klien secara aman dan membagikannya kepada klien yang berwenang jika diperlukan.
Membandingkan 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 brand | Merek milik pelanggan |
| Konfigurasi OAuth | Dikonfigurasi oleh Google | Pelanggan dikonfigurasi |
| Kredensial OAuth | Dikelola Google | Dikelola pelanggan |
| Akses aplikasi | Alur browser saja | Alur browser dan Akses terprogram |
Mengonfigurasi halaman branding
Untuk mengonfigurasi halaman branding kustom menggunakan konsol Google Cloud , lakukan hal berikut:
Di konsol Google Cloud , buka halaman Branding OAuth:
Klik Mulai.
Di Nama aplikasi, masukkan nama aplikasi untuk layar izin.
Di bagian Email dukungan pengguna, masukkan alamat email administrator untuk dukungan.
Untuk Audiens, pilih Internal untuk membatasi akses ke pengguna dalam organisasi Anda atau Eksternal untuk mengizinkan akses ke pengguna di luar organisasi Anda.
Di Informasi kontak, masukkan email administrator yang akan dihubungi untuk aplikasi yang dilindungi oleh klien OAuth. Anda akan mengonfigurasi klien OAuth pada langkah berikutnya.
Untuk membuat konfigurasi OAuth, klik Buat.
Mengonfigurasi klien OAuth kustom di IAP
Bagian ini menjelaskan cara menyiapkan klien OAuth kustom di IAP.
Buat klien OAuth kustom
Bagian ini menjelaskan cara membuat klien OAuth kustom menggunakan konsolGoogle Cloud . Anda dapat menyiapkan klien OAuth IAP kustom di tingkat mana pun dalam hierarki resource.
Untuk membuat klien OAuth kustom untuk resource menggunakan konsol Google Cloud , lakukan hal berikut:
Di konsol Google Cloud , buka halaman IAP.
Di tab Aplikasi, dalam daftar resource, temukan resource yang ingin Anda konfigurasi.
Untuk resource tingkat project, lakukan hal berikut:
Buat klien OAuth menggunakan Google Cloud konsol:
Di kolom Tindakan, klik Opsi lainnya > Setelan.
Di dialog Setelan, pilih OAuth Kustom.
Jika Anda belum mengonfigurasi layar izin, lakukan langkah berikut:
Klik Konfigurasi layar izin.
Ikuti petunjuk untuk mengonfigurasi halaman branding yang diberikan sebelumnya dalam dokumen ini.
Pada dialog setelan IAP, klik Buat Otomatis Kredensial. IAP membuat klien dan rahasia OAuth baru untuk digunakan dengan resource ini. Di Google Auth Platform, kolom Authorized redirect URIs berisi entri dalam format berikut:
https://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
Untuk mengakses ID dan rahasia klien, klik Download kredensial. Kredensial disimpan dalam file berformat JSON. Karena file tersebut berisi kredensial sensitif untuk mengakses resource, pastikan file tersebut diamankan atau dihapus.
Untuk menyimpan konfigurasi OAuth IAP dan menerapkan klien OAuth ke IAP, klik Simpan.
Menerapkan klien OAuth kustom ke IAP
Bagian ini menjelaskan cara menerapkan klien OAuth ke IAP. Anda dapat menggunakan metode ini, bukan menerapkan klien secara langsung di platform Anda.
Untuk membuat klien OAuth kustom, ikuti Google Cloud petunjuk konsol yang diberikan sebelumnya dalam dokumen ini.
Terapkan klien OAuth kustom.
gcloud
Untuk menerapkan klien OAuth kustom menggunakan gcloud CLI, lakukan langkah berikut:
Buat file YAML setelan.
cat << EOF > iap-oauth.yaml accessSettings: oauthSettings: clientId: CLIENT_ID clientSecret: CLIENT_SECRET EOF
Ganti kode berikut:
CLIENT_ID: ID klien dari kredensial OAuth yang Anda buat sebelumnya.CLIENT_SECRET: Rahasia klien dari kredensial OAuth yang Anda buat sebelumnya.
Untuk menyetel konfigurasi OAuth, lakukan salah satu hal berikut:
- Untuk menetapkan konfigurasi OAuth di tingkat project, jalankan perintah berikut:
gcloud iap settings set iap-oauth.yaml
Untuk menyetel konfigurasi di tingkat hierarki resource lain, gunakan salah satu flag berikut, bukan flag
--project. Menetapkan klien OAuth kustom di tingkat hierarki resource memberikan branding kustom yang sama untuk semua layanan yang berjalan dalam tingkat tersebut.* <code>--folder=<var>FOLDER_ID</var></code> * <code>--organization=<var>ORGANIZATION_ID</var></code>- Untuk menyetel konfigurasi pada layanan tertentu, jalankan perintah berikut:
gcloud iap settings set iap-oauth.yaml \ --project=PROJECT_ID \ --resource-type= RESOURCE_TYPE \ --region=REGION \ --service=SERVICE_NAME
Ganti kode berikut:
PROJECT_ID: ID resource project. Untuk menyetel konfigurasi di tingkat lain, gunakan salah satu flag berikut, bukan flag--project:--folder=FOLDER_ID--organization=ORGANIZATION_ID
RESOURCE_TYPE: ganti dengan salah satu jenis resource berikut, bergantung pada resource:app-enginebackend-servicescloud-runcomputefolderforwarding-ruleiap_weborganization
REGION: region tempat Anda menjalankan layanan Cloud Run.SERVICE_NAME: Nama layanan Anda.
Terraform
Untuk menerapkan klien OAuth kustom menggunakan Terraform, lakukan hal berikut:
resource "google_iap_settings" "iap_settings" { name = IAP_RESOURCE_NAME access_settings { oauth_settings { oauth_client_id = CLIENT_ID oauth_client_secret = CLIENT_SECRET } } }Ganti kode berikut:
IAP_RESOURCE_NAME: nama resourceiap_settingsuntuk layanan, yang memiliki format berikut:projects/PROJECT_NUMBER/iap_web/REGION/services/SERVICE_NAMECLIENT_ID: ID klien dari kredensial OAuth yang Anda buat sebelumnyaCLIENT_SECRET: rahasia klien dari kredensial OAuth yang Anda buat sebelumnya
REST API
Buat file JSON setelan.
cat << EOF > iap-oauth.json { "accessSettings": { "oauthSettings": { "clientId": "CLIENT_ID", "clientSecret": "CLIENT_SECRET" } } } EOF
Ganti kode berikut:
CLIENT_ID: ID klien dari kredensial OAuth yang Anda buat sebelumnya.CLIENT_SECRET: Rahasia klien dari kredensial OAuth yang Anda buat sebelumnya.
Terapkan file setelan.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/yaml" \ "https://iap.googleapis.com/v1/projects/cb-managed-ingress-demo/iap_web/forwarding_rule-us-central1/services/psc-fr:iapSettings?update_mask=iapSettings.accessSettings.oauthSettings.oauthClientId,iapSettings.accessSettings.oauthSettings.oauthClientSecret" \ -d @iap-oauth.json
Untuk menguji bahwa aplikasi web Anda dilindungi oleh IAP dengan klien OAuth, lihat Menguji akses.
Konfigurasi klien OAuth kustom lama pada resource
Bagian berikut menjelaskan metode lama untuk mengonfigurasi klien OAuth kustom di IAP untuk jenis resource tertentu. Anda dapat melewati bagian ini jika menggunakan metode yang dijelaskan sebelumnya dalam dokumen ini.
App Engine
Bagian ini menjelaskan cara mengaktifkan klien OAuth kustom di App Engine.
gcloud
Sebelum menyiapkan project dan IAP, Anda memerlukan gcloud CLI versi 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 ID dan rahasia klien 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 ID dan rahasia klien 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.
GKE
Bagian ini menjelaskan cara mengaktifkan klien OAuth kustom di 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 guna mengonfigurasi layar izin OAuth dan membuat klien OAuth.
Buat Secret Kubernetes untuk membungkus 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: ID klien 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 asosiasi ini adalah dengan menetapkan semua port untuk layanan secara default ke BackendConfig Anda, yang dapat Anda lakukan dengan menambahkan anotasi berikut ke resource Layanan Anda:
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 rujuk tidak ada atau tidak terstruktur 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 di 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.
Layanan backend penyeimbang beban
Untuk pengguna Compute Engine dan Cloud Run, bagian ini menjelaskan cara menyiapkan klien OAuth di IAP untuk layanan backend load balancer.
gcloud
Sebelum menyiapkan project dan IAP, Anda memerlukan gcloud CLI versi 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. guna mengonfigurasi layar izin OAuth dan membuat klien OAuth.
- Simpan ID dan rahasia klien OAuth.
-
Untuk mengaktifkan IAP, jalankan perintah yang tercakup secara 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 ID dan rahasia klien 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.
Menguji akses
Setelah mengonfigurasi klien OAuth kustom, Anda dapat menguji bahwa IAP menggunakannya untuk melindungi layanan Anda dengan melakukan hal berikut:
Di halaman IAP, di tab Aplikasi, lihat aplikasi yang dikelola IAP.
Akses URL salah satu aplikasi. Jika Anda mengakses aplikasi untuk pertama kalinya sejak mengonfigurasi layar izin, Anda akan melihat layar izin yang Anda konfigurasi sebelumnya.