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")
.