Usar condições de nome do anfitrião e caminho

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 para foo.com
  • café.fr é normalizado para xn--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").