Menggunakan kondisi nama host dan jalur

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

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 Privileged Access jika jalur URL diawali dengan /admin.

Untuk mengetahui informasi selengkapnya tentang penggunaan nama host dan kondisi 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 akan menormalisasi string nama host dan jalur saat memeriksa kebijakan.

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

Misalnya, jika permintaan memiliki jalur /internal;some_param/admin, IAP akan terlebih dahulu melakukan pemeriksaan kebijakan 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
  • Mengubah karakter menjadi huruf kecil
  • Mengonversi ke ASCII

Nama host yang menyertakan karakter non-ASCII akan dinormalisasi lebih lanjut menggunakan Punycode. Anda perlu menggunakan Punycode untuk menormalisasi string nama host agar pencocokan dapat dilakukan.

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

Berikut adalah contoh nama host yang dinormalisasi:

  • FOO.com dinormalisasi menjadi foo.com
  • café.fr dinormalisasi menjadi xn--caf-dma.fr

Jalur

Normalisasi jalur melibatkan hal berikut:

  • Menghapus parameter jalur
  • Me-resolve jalur relatif ke jalur absolut yang setara

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

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

Berikut adalah contoh jalur yang dinormalisasi:

  • /internal;some_param/admin dinormalisasi menjadi /internal/admin
  • /a/../b dinormalisasi menjadi /b
  • /bar;param1/baz;baz;param2 dinormalisasi menjadi /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 Anda ke request.host.endsWith(".google.com").