Mendapatkan identitas pengguna

Halaman ini menjelaskan cara mendapatkan identitas pengguna dengan Identity-Aware Proxy (IAP). Dengan mendapatkan identitas pengguna, aplikasi Anda dapat memverifikasi bahwa permintaan berasal melalui IAP. Untuk mengamankan aplikasi dengan benar, Anda harus selalu menggunakan salah satu mekanisme di bawah ini untuk mendapatkan identitas pengguna yang diautentikasi IAP.

Mendapatkan identitas pengguna dengan header yang ditandatangani

Untuk memastikan permintaan ke Compute Engine, GKE, Cloud Run, lingkungan standar App Engine, atau aplikasi lingkungan fleksibel App Engine 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 bertanda tangan.

IAP juga meneruskan identitas pengguna ke layanan backend 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 menggunakan header ini, Anda harus membandingkannya dengan informasi identitas dari header JWT terautentikasi 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 dan persisten untuk pengguna. accounts.google.com:userIDvalue

Mendapatkan identitas pengguna dengan API Pengguna lingkungan standar App Engine

Atau, jika Anda memiliki aplikasi lingkungan standar App Engine, Users API dapat digunakan untuk mendapatkan identitas pengguna di kode aplikasi Anda.

Jika aplikasi sudah menggunakan API ini, Anda tidak perlu mengubah apa pun. IAP memberikan identitas pengguna, tetapi nilai untuk setiap ID pengguna Users API milik pengguna akan berubah jika IAP diaktifkan.

Guna mendapatkan identitas pengguna yang diverifikasi IAP untuk permintaan, panggil Users API untuk menampilkan pengguna saat ini. Jika fungsi tersebut menampilkan pengguna, seperti req.getUserPrincipal() != null di Java, berarti pengguna tersebut telah diautentikasi oleh IAP.

Jika IAP diaktifkan, saat pertama kali pengguna mengakses aplikasi Anda, mereka akan dialihkan ke layar izin untuk mengonfirmasi bahwa mereka ingin membagikan identitasnya ke aplikasi Anda. Hal ini akan terjadi meskipun pengguna memberikan izin ke aplikasi ini sebelum Anda mengaktifkan IAP, dan akan terjadi lagi jika Anda menonaktifkan IAP, lalu mengaktifkannya lagi.

Jika Anda menggunakannya, 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 yang diaktifkan, ikuti langkah-langkah berikut:

  1. Buka konsol Google Admin.
    Buka konsol Admin
  2. Di daftar kontrol, pilih Keamanan.
    1. Jika Anda tidak melihat Keamanan dalam daftar, pilih Kontrol lainnya dari panel abu-abu di bagian bawah halaman, lalu pilih Keamanan dari daftar kontrol.
    2. Jika tidak dapat melihat kontrol, pastikan Anda login sebagai administrator untuk domain tersebut.
  3. Pada daftar opsi, pilih Tampilkan lainnya, lalu Setelan lanjutan.
  4. Di bagian Autentikasi, pilih Kelola akses klien API.
  5. Di kolom Nama Klien, masukkan client ID OAuth 2.0 IAP. Anda dapat menemukan client ID IAP pada halaman Credentials.
    Buka halaman kredensial IAP
  6. Di kolom Satu atau Beberapa Cakupan API, masukkan email, openid.
  7. Klik Authorize.

Untuk menyederhanakan proses ini, Anda dapat menggunakan panggilan API untuk menggunakan satu client ID OAuth 2.0 IAP untuk semua aplikasi. Anda tidak dapat menggunakan konsol Google Cloud untuk menentukan client ID yang akan digunakan dengan IAP.

Langkah selanjutnya