Pemecahan masalah dan pertanyaan umum (FAQ)

Dokumen ini memberikan panduan pemecahan masalah dan jawaban atas pertanyaan umum (FAQ) tentang Identity-Aware Proxy (IAP).

Memecahkan masalah login web

Jika Anda mengalami error saat login atau saat mengakses aplikasi, memeriksa traffic jaringan browser dapat membantu Anda mendiagnosis masalah.

Memeriksa traffic jaringan

  1. Buka jendela Samaran (Chrome) atau Pribadi baru di browser Anda.
  2. Buka alat developer browser Anda, lalu buka tab Network.
  3. Pilih opsi Preserve log untuk merekam semua permintaan selama pengalihan.
  4. Reproduksi masalah dengan membuka URL tempat Anda mengalami masalah.
  5. Periksa permintaan jaringan dalam log untuk mengidentifikasi tempat terjadinya error.

Menganalisis traffic jaringan

Saat mengakses aplikasi yang diamankan IAP, Anda akan dialihkan ke halaman login. Setelah autentikasi berhasil dengan penyedia identitas, permintaan akan dibuat ke domain https://iap.googleapis.com untuk menyelesaikan autentikasi sebelum cookie IAP dikeluarkan dan Anda dialihkan ke aplikasi.

Anda dapat memecahkan masalah error berdasarkan domain tempat error terjadi:

  • Error di iap.googleapis.com: Jika terjadi error di domain iap.googleapis.com, pesan error mendetail akan ditampilkan di halaman. Jika error terkait dengan setelan IAP Anda, seperti masalah klien OAuth, sesuaikan setelan Anda. Jika Anda mengalami error klien yang tidak Anda ketahui cara mengatasinya, atau jika Anda melihat error server, buka Tiket dukunganGoogle Cloud .
  • Error pada domain aplikasi Anda: Jika terjadi error setelah Anda dialihkan ke domain aplikasi yang diamankan IAP, kode error akan ditampilkan. Lihat bagian Kode error untuk mengetahui detail tentang error umum. Jika Anda tidak dapat menyelesaikan masalah, buka Tiket dukunganGoogle Cloud .

Aplikasi apa yang dapat saya amankan dengan IAP?

IAP dapat digunakan dengan hal berikut:

  • Aplikasi lingkungan standar App Engine dan lingkungan fleksibel App Engine

  • Instance Compute Engine dengan layanan backend load balancing HTTP(S)

  • Container Google Kubernetes Engine

  • Aplikasi Cloud Run dengan layanan backend load balancing HTTP(S)

  • Cloud Run dengan sekali klik dan tanpa layanan backend load balancing

    IAP tidak dapat digunakan dengan Cloud CDN.

    Mengapa ada # di akhir URL saya setelah login ke aplikasi saya?

    Di beberapa browser dan dalam kondisi tertentu, # dapat ditambahkan ke URL setelah autentikasi. Hal ini normal dan tidak akan menimbulkan masalah saat sedang login.

    Mengapa permintaan saya gagal dan menampilkan 405 Method Not Allowed?

    Hal ini biasanya terjadi jika cookie tidak disertakan dalam permintaan Anda. Metode JavaScript tidak melampirkan cookie secara default.

    Metode permintaan yang berbeda memerlukan pendekatan yang berbeda:

    • Untuk XMLHttpRequest, tetapkan withCredentials ke true.

    • Untuk Fetch API, tetapkan credentials ke include atau same-origin.

    Untuk menangani error terkait sesi, lihat Mengelola sesi IAP.

    Mengapa saya menerima HTTP 401 Unauthorized, bukan 302 Redirect?

    IAP mengirimkan 302 Redirect hanya jika klien Anda dikonfigurasi untuk menangani pengalihan.

    Tambahkan HTTP Accept="text/html,*/*" ke header permintaan Anda untuk menunjukkan dukungan terhadap pengalihan.

    Mengapa permintaan POST tidak memicu pengalihan?

    Browser tidak mengalihkan sebagai respons terhadap permintaan POST. Sebagai gantinya, IAP menampilkan kode status 401 Unauthorized.

    Untuk permintaan POST ke resource yang diamankan IAP, sertakan salah satu hal berikut:

    • Token ID di header Authorization: Bearer

    • Cookie yang valid (lihat memperbarui sesi)

    Dapatkah saya menggunakan IAP jika saya telah menonaktifkan API?

    Ya, resource yang diamankan oleh IAP tetap dapat diakses saat API dinonaktifkan, tetapi Anda tidak akan dapat mengubah izin IAM.

    Bagaimana cara mencegah pengguna dengan peran Owner menggunakan IAP untuk TCP?

    Idealnya, batasi penggunaan peran Pemilik (roles/owner) untuk mendukung izin yang lebih terperinci. Lihat praktik terbaik IAM untuk mendapatkan panduan.

    Jika tidak memungkinkan, Anda dapat memblokir IAP untuk TCP menggunakan Aturan firewall.

    Domain apa yang digunakan IAP untuk TCP?

    IAP menggunakan domain milik Google berikut:

    Mengapa saya menerima Server Error?

    Jika Anda melihat:

    The server encountered a temporary error and could not complete your request. Please try again in 30 seconds.
    

    Mungkin firewall Anda memblokir IP load balancer.

    Pastikan firewall mengizinkan traffic dari 130.211.0.0/22 dan 35.191.0.0/16. Jika IP ini tidak dapat menjangkau backend, aplikasi Anda tidak akan dapat diakses.

    Untuk koneksi TCP IAP ke VM tertentu, pastikan juga VM menerima koneksi dari rentang 35.235.240.0/20.

    Mengapa saya menerima error server internal yang terputus-putus?

    Pesan seperti An internal server error occurred while authorizing your request. Error code X menunjukkan kegagalan backend.

    Kode error 1, 30, 62, 63, 64, atau 703 biasanya mencerminkan masalah sementara. Menerapkan backoff eksponensial untuk percobaan ulang.

    Cara memperbaiki error Identity Platform (Kode error 38)

    Kode error 38 menunjukkan bahwa URL autentikasi Identity Platform untuk identitas eksternal Anda tidak dikonfigurasi dengan benar di IAP.

    Untuk menemukan URL, lakukan tindakan berikut:

    1. Buka halaman IAP.

      Buka IAP

    2. Klik tab Applications.

    3. Di kolom Resource, temukan aplikasi Anda dan centang kotaknya.

    4. Di URL Autentikasi atau URL Login, pastikan URL sudah benar.

    Untuk mempelajari cara menggunakan identitas eksternal dengan IAP, lihat Mengautentikasi pengguna dengan identitas eksternal.

    Bagaimana cara mengatasi error kuota terlampaui (Kode error 429)?

    Kode error 429 terjadi saat aplikasi Anda melebihi batas permintaan IAP. Layanan ini menerapkan kuota terpisah:

    • Permintaan berbasis browser: 360.000 per menit per project

    • Permintaan terprogram: 360.000 per menit per project

    Permintaan terprogram adalah permintaan yang menyertakan header AUTHORIZATION atau PROXY-AUTHORIZATION dan tanpa cookie IAP. Semua permintaan lainnya (termasuk yang tidak memiliki kredensial) dianggap sebagai permintaan browser.

    Batasan ini berlaku secara kolektif untuk semua resource yang dilindungi IAP dalam project Anda.

    Jika Anda mengalami error terkait kuota, pertimbangkan solusi berikut:

    • Hindari pengujian beban dalam produksi. Sebagai gantinya, gunakan jalur jaringan alternatif yang mengabaikan IAP.

    • Untuk traffic layanan ke layanan, terapkan backoff eksponensial untuk menangani error 429 dengan baik.

    • Mendistribusikan aplikasi dengan traffic tinggi ke beberapa project.

    • Gunakan Apigee atau solusi gateway API serupa untuk aplikasi berbasis API.

    • Hubungi DukunganGoogle Cloud untuk penambahan kuota jika pertumbuhan organik menyebabkan masalah.

    Masalah login atau perilaku tidak terduga dengan IAP menggunakan Identity Platform

    Saat menggunakan Penyedia Identitas (IdP) pihak ketiga dengan Identity Platform, data klaim yang besar dalam token ID dapat menyebabkan cookie sesi IAP melebihi batas ukuran browser (biasanya sekitar 4 KB). IAP menyimpan informasi sesi, termasuk klaim ini, dalam cookie browser.

    Melebihi batas ukuran cookie sesi dapat menyebabkan kegagalan login atau loop login tanpa batas. Untuk mencegah masalah ini, pertimbangkan tindakan berikut:

    • Mengurangi klaim: Konfigurasikan IdP pihak ketiga Anda untuk hanya mengirim klaim penting ke Identity Platform. Minimalkan ukuran dan jumlah klaim yang disertakan dalam token.

    • Periksa ukuran cookie: Gunakan alat developer browser untuk memeriksa ukuran cookie yang ditetapkan di domain aplikasi Anda. Cari peringatan terkait ukuran cookie, terutama untuk cookie terkait IAP.

    • Menguji klaim minimal: Konfigurasikan IdP untuk sementara agar mengirim kumpulan klaim sekecil mungkin. Jika tindakan ini menyelesaikan masalah, berarti batasan ukuran cookie adalah penyebab utamanya.

    Mengapa saya menerima error HTTP 502 dengan pesan "Empty Google Account OAuth client ID(s)/secret(s)"?

    Jika Anda mengakses aplikasi yang diamankan dengan IAP dan menerima error HTTP 502 Bad Gateway dengan pesan Empty Google Account OAuth client ID(s)/secret(s)., IAP tidak dapat menemukan kredensial OAuth untuk aplikasi Anda.

    Error ini biasanya terjadi dalam skenario berikut:

    • Project bukan milik organisasi: Klien OAuth default yang dikelola Google hanya tersedia untuk project yang termasuk dalam organisasiGoogle Cloud . Jika project Anda bukan milik organisasi, Anda harus mengonfigurasi kredensial OAuth kustom untuk App Engine atau untuk platform masing-masing.
    • Kredensial OAuth dihapus atau tidak dikonfigurasi: Jika sebelumnya Anda mengonfigurasi kredensial OAuth kustom dan klien OAuth dihapus, buat ulang kredensial di halaman Kredensial dan perbarui setelan IAP Anda seperti yang dijelaskan dalam Menggunakan klien OAuth kustom dengan IAP.

    Kode error

    Tabel berikut mencantumkan kode error dan pesan umum yang ditampilkan saat mengonfigurasi dan menggunakan IAP.

    Kode error Deskripsi Pemecahan masalah
    7, HTTP 502 Client ID atau rahasia OAuth kosong (Empty Google Account OAuth client ID(s)/secret(s).) Jika project Anda bukan milik organisasi, konfigurasikan kredensial OAuth kustom. Jika tidak, buka halaman Kredensial untuk memverifikasi client ID dan rahasia klien Anda, atau periksa setelan menggunakan metode API (GET untuk Compute Engine, GET untuk App Engine) dan reset dengan PATCH. Untuk mengetahui informasi selengkapnya, lihat Error HTTP 502.
    9 Pengalihan OAuth gagal Ini adalah error internal yang telah dicatat secara otomatis. Anda tidak perlu melakukan apa pun.
    9 (dengan aturan penulisan ulang jalur) Pengalihan OAuth gagal Aturan penulisan ulang jalur load balancer Anda mencegah penyelesaian OAuth. Pastikan semua backend di balik load balancer Anda menggunakan client ID OAuth yang sama. Anda dapat memperbaruinya menggunakan perintah gcloud compute backend-services update.
    9 (dengan aturan pemilihan rute jalur) Pengalihan OAuth gagal Buat varian aturan jalur untuk kedua versi setiap jalur (dengan dan tanpa garis miring di akhir) dan arahkan ke backend yang sama. Misalnya, sertakan aturan untuk /path/ dan /path.
    11 Client ID OAuth yang salah dikonfigurasi Periksa client ID dan rahasia Anda di halaman Kredensial. Jika setelan tersebut tampak benar, tetapi tidak berfungsi, gunakan metode API untuk memeriksa setelan (GET untuk Compute Engine, GET untuk App Engine) dan reset setelan tersebut dengan PATCH.
    13 Token OIDC tidak valid Buka halaman Credentials untuk mengonfirmasi bahwa client ID Anda belum dihapus atau diubah secara tidak benar.
    51 Browser tidak memiliki dukungan penggabungan koneksi Minta pengguna akhir untuk mengupdate browser mereka ke versi terbaru. Untuk mengetahui detail selengkapnya tentang persyaratan koneksi, lihat Membatasi akses resource.
    52 Ketidakcocokan nama host/sertifikat SSL Administrator sistem Anda perlu memperbarui sertifikat SSL agar cocok dengan nama host. Lihat Membatasi akses resource untuk mendapatkan panduan.
    52 (dengan entri peta sertifikat utama) Ketidakcocokan nama host/sertifikat SSL IAP tidak mendukung entri peta sertifikat utama. Gunakan entri terpisah untuk memetakan setiap sertifikat ke nama host yang benar. Lihat Membuat entri peta sertifikat untuk mendapatkan panduan.
    53 Nama host tidak ada di domain yang diizinkan Administrator harus menambahkan nama host Anda ke daftar domain yang diizinkan. Lihat Membatasi akses resource untuk mengetahui petunjuknya.
    253, HTTP 429 Kuota permintaan terlampaui Anda telah mencapai batas permintaan (360.000/mnt untuk setiap jenis permintaan). Pertimbangkan untuk mendistribusikan workload ke beberapa project, menerapkan throttling permintaan sisi klien, atau menghubungi Dukungan untuk penambahan kuota jika diperlukan untuk pertumbuhan yang sah.
    551 IAP diaktifkan di beberapa tempat Anda tidak dapat mengaktifkan IAP di aturan penerusan dan layanan backend. Nonaktifkan di satu lokasi dengan mengikuti panduan di Mengaktifkan untuk Compute Engine.
    700, 701 Masalah penyedia workforce pool Konfigurasikan tepat satu penyedia untuk workforce pool Anda. Tinjau Batasan workforce pool untuk mengetahui persyaratan mendetail.
    705 Client ID OAuth tidak ada untuk workforce identity Ikuti proses penyiapan lengkap: pertama, buat client ID OAuth, lalu perbarui setelan IAP Anda.
    708 Nama workforce pool tidak valid Pastikan workforce pool Anda ada dan menggunakan format yang benar: locations/global/workforcePools/WORKFORCE_POOL_ID.
    4003 Masalah koneksi atau firewall Pastikan proses VM Anda berjalan dan memproses port yang diharapkan. Pastikan juga bahwa aturan firewall Anda mengizinkan koneksi di port tersebut.
    4010 Koneksi ditutup oleh tujuan Reset VM. Jika masalah berlanjut, periksa auth.log (biasanya di /var/log/) atau gunakan konsol serial untuk diagnostik yang lebih mendetail.
    4033 Masalah izin, keberadaan, atau status VM Konfirmasi bahwa Anda telah menetapkan peran Tunnel User untuk resource melalui halaman IAP, dan pastikan VM ada dan berjalan.
    4047 Instance tidak ada atau dihentikan Pastikan VM Anda diaktifkan dan telah menyelesaikan urutan startup-nya sepenuhnya.

    Jika Anda tidak dapat menyelesaikan masalah, atau tidak melihat error yang tercantum di halaman ini, hubungi Cloud Customer Care dengan deskripsi error dan respons yang Anda dapatkan dari panggilan GET ke API. Pastikan Anda menghapus rahasia klien dari respons.