Halaman ini menjelaskan cara mendapatkan identitas pengguna dengan Identity-Aware Proxy (IAP). Mendapatkan identitas pengguna memungkinkan aplikasi Anda memverifikasi bahwa permintaan masuk melalui IAP. Untuk mengamankan aplikasi dengan benar, Anda harus selalu menggunakan salah satu mekanisme berikut untuk mendapatkan identitas pengguna yang diautentikasi IAP.
Mendapatkan identitas pengguna dengan header yang ditandatangani
Untuk memastikan permintaan ke aplikasi Compute Engine, GKE, Cloud Run, lingkungan standar App Engine, atau lingkungan fleksibel App Engine Anda telah diizinkan oleh IAP, aplikasi Anda harus memvalidasi setiap permintaan dengan memeriksa header permintaan HTTP x-goog-iap-jwt-assertion
.
Pelajari cara mengamankan aplikasi Anda dengan header yang ditandatangani.
IAP juga meneruskan identitas pengguna ke layanan backend Anda
di header HTTP berikut. Header ini harus memiliki awalan namespace
accounts.google.com
. Header ini tersedia untuk kompatibilitas,
tetapi Anda tidak boleh mengandalkannya sebagai mekanisme keamanan. Jika Anda menggunakan header ini, Anda harus membandingkannya dengan informasi identitas dari header JWT yang diautentikasi yang tercantum di atas.
Nama header | Deskripsi | Nilai contoh |
---|---|---|
X-Goog-Authenticated-User-Email
|
Alamat email pengguna |
accounts.google.com:example@gmail.com
|
X-Goog-Authenticated-User-Id
|
ID unik yang persisten untuk pengguna. |
accounts.google.com:userIDvalue
|
Mendapatkan identitas pengguna dengan Users API lingkungan standar App Engine
Atau, jika Anda memiliki aplikasi lingkungan standar App Engine, Users API dapat digunakan untuk mendapatkan identitas pengguna dalam kode aplikasi Anda.
Jika aplikasi Anda sudah menggunakan API ini, Anda tidak perlu mengubah apa pun. IAP memberikan identitas pengguna, tetapi nilai untuk setiap ID pengguna Users API pengguna akan berubah saat IAP diaktifkan.
Untuk mendapatkan identitas pengguna yang diverifikasi IAP untuk permintaan, panggil
Users API untuk menampilkan pengguna saat ini. Jika fungsi menampilkan pengguna, seperti req.getUserPrincipal() != null
di Java, pengguna diautentikasi oleh IAP.
Layar persetujuan
Saat IAP diaktifkan, pengguna akan dialihkan ke layar izin untuk mengonfirmasi bahwa mereka ingin membagikan identitasnya ke aplikasi Anda saat pertama kali mengakses aplikasi Anda. Hal ini terjadi meskipun pengguna telah memberikan izin ke aplikasi ini sebelum Anda mengaktifkan IAP, dan akan terjadi lagi jika Anda menonaktifkan IAP lalu mengaktifkannya kembali.
Jika Anda menggunakan Users API, API ini biasanya menyembunyikan layar izin untuk aplikasi dan pengguna yang berada dalam domain Google Workspace yang sama. Saat Anda mengaktifkan IAP, layar izin tidak akan otomatis disembunyikan. Untuk menyembunyikan layar izin dengan IAP diaktifkan, ikuti langkah-langkah berikut:
- Buka konsol Google Admin.
Buka konsol Admin - Pada daftar kontrol, pilih Keamanan.
- Jika Anda tidak melihat Keamanan tercantum, pilih Kontrol lainnya dari panel abu-abu di bagian bawah halaman, lalu pilih Keamanan dari daftar kontrol.
- Jika Anda tidak dapat melihat kontrol, pastikan Anda login sebagai administrator untuk domain.
- Pada daftar opsi, pilih Kontrol data dan akses, lalu Kontrol API.
- Di bagian Autentikasi, pilih Kelola akses klien API.
- Di kolom Nama Klien, masukkan ID klien OAuth 2.0 IAP. Anda dapat menemukan ID klien IAP di
halaman Kredensial.
Buka halaman kredensial IAP - Di kolom Satu atau Beberapa Cakupan API, masukkan
email, openid
. - Klik Otorisasi.
Untuk menyederhanakan proses ini, Anda dapat menggunakan panggilan API untuk menggunakan satu ID klien OAuth 2.0 IAP untuk semua aplikasi. Anda tidak dapat menggunakan konsol Google Cloud untuk menentukan client ID yang akan digunakan dengan IAP.
Langkah berikutnya
- Pelajari lebih lanjut Identity and Access Management.