En esta página, se describen las condiciones de administración de identidades y accesos (IAM) del nombre de host y la ruta.
Puedes proteger los recursos de Identity-Aware Proxy (IAP) con el nombre de host y la ruta de una URL de solicitud.
Por ejemplo, la condición request.path.startsWith
de IAM se puede usar para otorgar acceso únicamente a los empleados del grupo de Acceso privilegiado si la ruta de URL comienza con /admin
.
Para obtener más información sobre cómo usar las condiciones de nombre de host y ruta de acceso, consulta los atributos de solicitud.
Normalización de strings
Una URL tiene un nombre de host y una ruta de acceso. Por ejemplo, la URL https://sheets.google.com/create?query=param
tiene el nombre de host sheets.google.com
y la ruta /create
.
Los backends pueden interpretar nombres de host y rutas de acceso de diferentes maneras. Para evitar la ambigüedad, IAP normaliza las strings de ruta de acceso y nombre de host mediante la comprobación de las políticas.
IAP realiza dos verificaciones de la política cuando una solicitud tiene una ruta de acceso no normalizada. Si la ruta no normalizada supera la verificación de la política, IAP normaliza la ruta de acceso y se realiza una segunda verificación de la política. El acceso se otorga si las rutas normalizadas y no normalizadas pasan la verificación de la política.
Por ejemplo, si una solicitud tiene la ruta /internal;some_param/admin
, IAP primero realiza una verificación de política en la ruta no normalizada (/internal
). Si esa verificación pasa, IAP realiza una segunda verificación de política en la ruta normalizada (/internal/admin
).
Nombres de host
La normalización del nombre de host incluye lo siguiente:
- Eliminación de puntos finales
- Caracteres en minúscula
- Conversión a ASCII
Los nombres de host que incluyen caracteres que no son ASCII tienen una normalización adicional mediante Punycode. Debes usar Punycode para normalizar la string de nombre de host para que se realice una coincidencia.
Para normalizar tu string de nombre de host con Punycode, usa un conversor, como Punycoder.
Los siguientes son ejemplos de nombres de host normalizados:
FOO.com
se normaliza enfoo.com
café.fr
se normaliza enxn--caf-dma.fr
Rutas
La normalización de rutas implica lo siguiente:
- Eliminación de parámetros de ruta de acceso
- Resolución de rutas relativas a su equivalente absoluto
Un parámetro de ruta de acceso incluye todos los caracteres desde un ;
hasta el siguiente /
o el final de la ruta.
Las solicitudes que contienen secciones de ruta que comienzan con ..;
se consideran no válidas. Por ejemplo, /..;bar/
y /bar/..;/
muestran el error HTTP 400: Bad
Request
.
Los siguientes son ejemplos de rutas de acceso normalizadas:
/internal;some_param/admin
se normaliza en/internal/admin
/a/../b
se normaliza en/b
/bar;param1/baz;baz;param2
se normaliza en/bar/baz
Terminaciones de subdominios
Una política establecida con request.host.endsWith("google.com")
coincide con sub_domain.google.com
y con testgoogle.com
. Si tu objetivo es limitar tu política solo a los subdominios que terminan con google.com
, establece tu política en request.host.endsWith(".google.com")
.