Nesta página, descrevemos as condições do Identity and Access Management (IAM).
É possível proteger recursos do Identity-Aware Proxy (IAP) usando o
nome do host e o caminho de um URL de solicitação.
Por exemplo, a condição do IAM request.path.startsWith só pode ser
usada para conceder acesso aos funcionários no grupo Acesso prioritário se
o caminho do URL começar com /admin.
Para mais informações sobre as condições de nome e caminho do host, veja Atributos de solicitação.
Normalização de strings
Um URL tem um nome e caminho de host. Por exemplo, o URL
https://sheets.google.com/create?query=param
tem o nome de host sheets.google.com e o caminho /create.
Os back-ends podem interpretar os nomes e caminhos de host de maneiras diferentes. Para remover a ambiguidade, o IAP normaliza essas informações ao verificar as políticas.
O IAP executa duas verificações de política quando uma solicitação tem um caminho não normalizado. Se esse caminho passar na verificação, ele será normalizado e uma segunda verificação de política será executada pelo IAP. Será concedido acesso se os caminhos não normalizados e normalizados passarem na verificação.
Por exemplo, se uma solicitação tiver o caminho /internal;some_param/admin,
o IAP primeiro executará uma verificação
de política no caminho não normalizado (/internal). Se essa verificação for aprovada,
o IAP executará uma segunda verificação no normalizado
(/internal/admin).
Nomes de host
A normalização de nome de host envolve o seguinte:
- Removendo pontos à direita
- Colocando os caracteres em minúsculo
- Convertendo para ASCII
Os nomes de host que incluem caracteres não ASCII são normalizados usando o Puncode. Você precisa usar o Punycode para normalizar a string do nome do host para que uma correspondência seja feita.
Para normalizar sua string de nome de host com o punycode, use um conversão como o punycoder.
Veja a seguir exemplos de nomes de host normalizados:
FOO.comé a versão normalizada parafoo.com.café.fré a versão normalizada paraxn--caf-dma.fr.
Caminhos
A normalização de caminho envolve o seguinte:
- Removendo parâmetros de caminho
- Resolvendo caminhos relativos ao equivalente absoluto deles.
Um parâmetro de caminho inclui todos os caracteres de ; até o próximo / ou o fim desse caminho.
Solicitações que contenham seções de caminho começando com ..; são consideradas
inválidas. Por exemplo, /..;bar/ e /bar/..;/ retornam o erro HTTP 400: Bad
Request.
Veja a seguir exemplos de caminhos normalizados:
/internal;some_param/adminé a versão normalizada para/internal/admin./a/../bé a versão normalizada para/b./bar;param1/baz;baz;param2é a versão normalizada para/bar/baz.
Terminações de subdomínios
Uma política definida com request.host.endsWith("google.com") corresponde a
sub_domain.google.com e testgoogle.com. Se seu objetivo é limitar a
política somente aos subdomínios que terminam com google.com, defina a política como
request.host.endsWith(".google.com").