Esta página descreve as condições de gestão de identidade e de acesso (IAM) do nome do anfitrião e do caminho.
Pode proteger os recursos do Identity-Aware Proxy (IAP) através do nome do anfitrião e do caminho de um URL de pedido.
Por exemplo, a condição request.path.startsWith
do IAM pode ser usada para conceder acesso apenas a funcionários no grupo Acesso privilegiado se o caminho do URL começar por /admin
.
Para mais informações sobre a utilização de condições de nome de anfitrião e caminho, consulte os atributos de pedido.
Normalização de strings
Um URL tem um nome de anfitrião e um caminho. Por exemplo, o URL
https://sheets.google.com/create?query=param
tem um nome do anfitrião de sheets.google.com
e um caminho de /create
.
Os backends podem interpretar os nomes de anfitriões e os caminhos de formas diferentes. Para remover a ambiguidade, o IAP normaliza as strings de nome de anfitrião e caminho ao verificar as políticas.
O IAP realiza duas verificações de políticas quando um pedido tem um caminho não normalizado. Se o caminho não normalizado passar na verificação de políticas, o IAP normaliza o caminho e é feita uma segunda verificação de políticas. O acesso é concedido se os caminhos não normalizados e normalizados passarem na verificação de políticas.
Por exemplo, se um pedido tiver o caminho /internal;some_param/admin
, o IAP executa primeiro uma verificação de políticas no caminho não normalizado (/internal
). Se essa verificação for aprovada, o IAP executa uma segunda verificação de políticas no caminho normalizado (/internal/admin
).
Nomes de anfitriões
A normalização do nome do anfitrião envolve o seguinte:
- Remover pontos finais
- Usar carateres em minúsculas
- A converter para ASCII
Os nomes de anfitriões que incluem carateres não ASCII são ainda mais normalizados através do Punycode. Tem de usar o Punycode para normalizar a string do nome de anfitrião para que seja possível fazer uma correspondência.
Para normalizar a string do nome do anfitrião com Punycode, use um conversor como o Punycode.
Seguem-se exemplos de nomes de anfitrião normalizados:
FOO.com
é normalizado parafoo.com
café.fr
é normalizado paraxn--caf-dma.fr
Caminhos
A normalização do caminho envolve o seguinte:
- Remover parâmetros do caminho
- Resolver caminhos relativos para o respetivo equivalente absoluto
Um parâmetro de caminho inclui todos os carateres de um ;
até ao /
seguinte ou ao final do caminho.
Os pedidos que contêm secções de caminho que começam por ..;
são considerados inválidos. Por exemplo, /..;bar/
e /bar/..;/
devolvem o erro HTTP 400: Bad
Request
.
Seguem-se exemplos de caminhos normalizados:
/internal;some_param/admin
é normalizado para/internal/admin
/a/../b
é normalizado para/b
/bar;param1/baz;baz;param2
é normalizado para/bar/baz
Extensões de subdomínio
Uma política definida com request.host.endsWith("google.com")
corresponde a sub_domain.google.com
e testgoogle.com
. Se o seu objetivo for limitar a política apenas a subdomínios que terminem com google.com
, defina a política como request.host.endsWith(".google.com")
.