Menggunakan kondisi nama host dan jalur

Halaman ini menjelaskan nama host dan jalur kondisi Identity and Access Management (IAM).

Anda dapat mengamankan resource Identity-Aware Proxy (IAP) menggunakan nama host dan jalur URL permintaan. Misalnya, kondisi IAM request.path.startsWith dapat digunakan untuk hanya memberikan akses kepada karyawan dalam grup Akses Hak Istimewa jika jalur URL dimulai dengan /admin.

Untuk mengetahui informasi selengkapnya tentang penggunaan kondisi nama host dan jalur, lihat atribut permintaan.

Normalisasi string

URL memiliki nama host dan jalur. Misalnya, URL https://sheets.google.com/create?query=param memiliki nama host sheets.google.com dan jalur /create.

Backend dapat menafsirkan nama host dan jalur dengan cara yang berbeda. Untuk menghilangkan ambiguitas, IAP menormalisasi nama host dan string jalur saat memeriksa kebijakan.

IAP melakukan dua pemeriksaan kebijakan jika permintaan memiliki jalur yang tidak dinormalisasi. Jika jalur yang tidak dinormalisasi lolos pemeriksaan kebijakan, IAP akan menormalisasi jalur tersebut dan pemeriksaan kebijakan kedua akan dilakukan. Akses akan diberikan jika jalur yang tidak dinormalisasi dan yang dinormalisasi lulus pemeriksaan kebijakan.

Misalnya, jika suatu permintaan memiliki jalur /internal;some_param/admin, IAP akan melakukan pemeriksaan kebijakan terlebih dahulu pada jalur yang tidak dinormalisasi (/internal). Jika pemeriksaan tersebut lulus, IAP akan melakukan pemeriksaan kebijakan kedua pada jalur yang dinormalisasi (/internal/admin).

Nama host

Normalisasi nama host melibatkan hal berikut:

  • Menghapus titik di akhir
  • Karakter huruf kecil
  • Mengonversi ke ASCII

Nama host yang menyertakan karakter non-ASCII dinormalisasi lebih lanjut menggunakan Punycode. Anda harus menggunakan Punycode untuk menormalisasi string nama host agar pencocokan dibuat.

Untuk menormalisasi string nama host dengan Punycode, gunakan pengonversi seperti Punycoder.

Berikut adalah contoh nama host yang dinormalkan:

  • FOO.com dinormalkan ke foo.com
  • café.fr dinormalkan ke xn--caf-dma.fr

Jalur

Normalisasi jalur melibatkan hal berikut:

  • Menghapus parameter jalur
  • Menyelesaikan jalur relatif ke padanan absolutnya

Parameter jalur mencakup semua karakter dari ; ke / berikutnya atau akhir jalur.

Permintaan yang berisi bagian jalur yang diawali dengan ..; dianggap tidak valid. Misalnya, /..;bar/ dan /bar/..;/ menampilkan error HTTP 400: Bad Request.

Berikut adalah contoh jalur yang dinormalkan:

  • /internal;some_param/admin dinormalkan ke /internal/admin
  • /a/../b dinormalkan ke /b
  • /bar;param1/baz;baz;param2 dinormalkan ke /bar/baz

Akhiran subdomain

Kebijakan yang ditetapkan dengan request.host.endsWith("google.com") cocok dengan sub_domain.google.com dan testgoogle.com. Jika sasaran Anda adalah membatasi kebijakan hanya untuk subdomain yang diakhiri dengan google.com, tetapkan kebijakan ke request.host.endsWith(".google.com").