Utilizzo delle condizioni di nomi host e percorsi

In questa pagina vengono descritte le condizioni di nomi host (Gestione di identità e accessi).

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 ai dipendenti del gruppo Accesso con privilegi solo se il percorso dell'URL inizia con /admin.

Per scoprire di più sull'utilizzo delle condizioni di nomi host e percorsi, consulta la sezione Attributi degli attributi.

Normalizzazione 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 nomi host e percorsi in modi diversi. Per rimuovere 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 del criterio, IAP normalizza il percorso e viene eseguito un secondo controllo del criterio. L'accesso è consentito se sia i percorsi non normalizzati sia quelli normalizzati superano il controllo del criterio.

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 supera il controllo, IAP esegue un secondo controllo dei criteri sul percorso normalizzato (/internal/admin).

Nomi host

La normalizzazione del nome host comporta quanto segue:

  • Rimozione dei punti finali
  • Caratteri in lettere minuscole
  • Conversione in ASCII

I nomi host che includono caratteri non ASCII vengono ulteriormente normalizzati utilizzando Punycode. Devi utilizzare Punycode per normalizzare la stringa del tuo nome host affinché venga trovata una corrispondenza.

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 del percorso prevede quanto segue:

  • Rimozione dei parametri del percorso
  • Risolvere i percorsi relativi verso l'equivalente equivalente

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

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 a /internal/admin
  • /a/../b è normalizzato a /b
  • /bar;param1/baz;baz;param2 è normalizzato a /bar/baz

Suffissi di sottodominio

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