Utilizzo delle condizioni del nome host e del percorso

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

Puoi proteggere le risorse 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 nel gruppo Accesso con privilegi se il percorso dell'URL inizia con /admin.

Per maggiori informazioni sull'utilizzo delle condizioni relative a nome host e percorso, consulta la pagina relativa agli attributi di 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 di sheets.google.com e un percorso di /create.

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

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 normalizza il percorso ed viene eseguito un secondo controllo dei criteri. L'accesso viene concesso se sia i percorsi non normalizzati che quelli normalizzati superano il controllo dei criteri.

Ad esempio, se una richiesta ha il percorso /internal;some_param/admin, IAP esegue prima un controllo dei criteri sul percorso non normalizzato (/internal). Se questo controllo ha esito positivo, IAP esegue un secondo controllo dei criteri sul percorso normalizzato (/internal/admin).

Nomi host

La normalizzazione del nome host prevede quanto segue:

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

I nomi host che includono caratteri non ASCII vengono ulteriormente normalizzati utilizzando Punycode. Per creare 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 in foo.com
  • café.fr è normalizzato in xn--caf-dma.fr

Percorsi

La normalizzazione del percorso prevede quanto segue:

  • Rimozione dei parametri del percorso
  • Risolvere i percorsi relativi all'equivalente assoluto

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

Le richieste che contengono sezioni del 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 in /internal/admin
  • /a/../b è normalizzato in /b
  • /bar;param1/baz;baz;param2 è normalizzato in /bar/baz

Suffissi di sottodominio

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