Utilizzare le condizioni nome host e percorso

Questa pagina descrive le condizioni di Identity and Access Management (IAM) per nome host e percorso.

Puoi proteggere le risorse di Identity-Aware Proxy (IAP) utilizzando il nome host e il percorso di un URL di richiesta. Ad esempio, la condizione IAM request.path.startsWith può essere utilizzata per concedere l'accesso solo ai dipendenti del gruppo Accesso privilegiato se il percorso dell'URL inizia con /admin.

Per ulteriori informazioni sull'utilizzo delle condizioni nome host e percorso, consulta Attributi della richiesta.

Normalizzazione delle stringhe

Un URL ha un nome host e un percorso. Ad esempio, l'URL https://sheets.google.com/create?query=param ha un nome host sheets.google.com e un percorso /create.

I backend possono interpretare i nomi host e i percorsi in modi diversi. Per rimuovere l'ambiguità, IAP normalizza le stringhe di nome host e percorso durante il controllo delle norme.

IAP esegue due controlli dei criteri quando una richiesta ha un percorso non normalizzato. Se il percorso non normalizzato supera il controllo dei criteri, IAP lo normalizza ed esegue un secondo controllo dei criteri. L'accesso viene concesso se sia i percorsi non normalizzati sia quelli normalizzati superano il controllo delle norme.

Ad esempio, se una richiesta ha il percorso /internal;some_param/admin, l'IAP esegue prima un controllo delle norme sul percorso non normalizzato (/internal). Se questo controllo va a buon fine, l'IAP esegue un secondo controllo delle norme sul percorso normalizzato (/internal/admin).

Nomi host

La normalizzazione dei nomi host prevede quanto segue:

  • Rimozione dei punti finali
  • Caratteri in minuscolo
  • Conversione in ASCII

I nomi host che includono caratteri non ASCII vengono ulteriormente normalizzati utilizzando il Punycode. Per eseguire una corrispondenza, devi utilizzare Punycode per normalizzare la stringa del nome host.

Per normalizzare la stringa del nome host con Punycode, utilizza un convertitore come Punycoder.

Di seguito sono riportati alcuni esempi di nomi host normalizzati:

  • FOO.com è normalizzato a foo.com
  • café.fr è normalizzato a xn--caf-dma.fr

Percorsi

La normalizzazione dei percorsi prevede quanto segue:

  • Rimozione dei parametri path
  • Risolvere i percorsi relativi nel loro equivalente assoluto

Un parametro path include tutti i caratteri da un ; al / successivo o alla fine del percorso.

Le richieste che contengono sezioni di percorso che iniziano con ..; sono considerate non valide. Ad esempio, /..;bar/ e /bar/..;/ restituiscono l'errore HTTP 400: Bad Request.

Di seguito sono riportati alcuni esempi di percorsi normalizzati:

  • /internal;some_param/admin è normalizzato a /internal/admin
  • /a/../b è normalizzato a /b
  • /bar;param1/baz;baz;param2 è normalizzato a /bar/baz

Suffissi dei sottodomini

Un criterio impostato su request.host.endsWith("google.com") corrisponde sia a sub_domain.google.com sia a testgoogle.com. Se il tuo obiettivo è limitare il criterio solo ai sottodomini che terminano con google.com, impostalo su request.host.endsWith(".google.com").