Esta página descreve como obter a identidade de um utilizador com o Identity-Aware Proxy (IAP). A obtenção da identidade do utilizador permite que a sua aplicação valide se um pedido foi feito através de CAsI. Para proteger corretamente a sua app, tem de usar sempre um dos mecanismos abaixo para obter a identidade do utilizador autenticada pela IAP.
Obter a identidade do utilizador com cabeçalhos assinados
Para se certificar de que um pedido à sua app do Compute Engine, GKE, Cloud Run, ambiente padrão do App Engine ou ambiente flexível do App Engine foi autorizado pelo IAP, a sua app tem de validar todos os pedidos verificando o cabeçalho do pedido HTTP x-goog-iap-jwt-assertion
.
Saiba como proteger a sua app com cabeçalhos assinados.
O IAP também transmite a identidade do utilizador ao seu serviço de back-end
nos seguintes cabeçalhos HTTP. Estes cabeçalhos devem ter o prefixo do espaço de nomes
accounts.google.com
. Estes cabeçalhos estão disponíveis para compatibilidade, mas não deve usá-los como um mecanismo de segurança. Se usar estes cabeçalhos, tem de compará-los com as informações de identidade do cabeçalho JWT autenticado indicado acima.
Nome do cabeçalho | Descrição | Valor de exemplo |
---|---|---|
X-Goog-Authenticated-User-Email
|
O endereço de email do utilizador |
accounts.google.com:example@gmail.com
|
X-Goog-Authenticated-User-Id
|
Um identificador exclusivo e persistente do utilizador. |
accounts.google.com:userIDvalue
|
Obter a identidade do utilizador com a API Users do ambiente padrão do App Engine
Em alternativa, se tiver uma app do ambiente padrão do App Engine, pode usar a API Users para obter a identidade do utilizador no código da app.
Se a sua aplicação já usa esta API, não tem de alterar nada. As CNA fornecem a identidade do utilizador, mas o valor do ID do utilizador da API Users de cada utilizador muda quando as CNA são ativadas.
Para obter a identidade do utilizador validada pela IAP para um pedido, chame a API Users para devolver o utilizador atual. Se a função devolver um utilizador, como req.getUserPrincipal() != null
em Java, o utilizador foi autenticado pela IAP.
Ecrã de consentimento
Quando a IAP está ativada, da primeira vez que um utilizador acede à sua app, é redirecionado para um ecrã de consentimento para confirmar que quer partilhar a sua identidade com a sua app. Isto ocorre mesmo que o utilizador tenha concedido consentimento a esta app antes de ativar a IAP e ocorre novamente se desativar a IAP e, em seguida, a reativar.
Se estiver a usar a API Users, normalmente, esta suprime o ecrã de consentimento para apps e utilizadores que estejam no mesmo domínio do Google Workspace. Quando ativa as compras na app, o ecrã de consentimento não é suprimido automaticamente. Para suprimir o ecrã de consentimento com as CAs ativadas, siga os passos abaixo:
- Aceda à consola do administrador Google.
Aceda à consola do administrador - Na lista de controlos, selecione Segurança.
- Se não vir a opção Segurança, selecione Mais controlos na barra cinzenta na parte inferior da página e, de seguida, selecione Segurança na lista de controlos.
- Se não conseguir ver os controlos, certifique-se de que tem sessão iniciada como administrador do domínio.
- Na lista de opções, selecione Mostrar mais e, de seguida, Definições avançadas.
- Na secção Autenticação, selecione Gerir o acesso do cliente de API.
- No campo Nome do cliente, introduza o ID de cliente OAuth 2.0 do IAP. Pode encontrar o ID de cliente da IAP na página Credenciais.
Aceda à página de credenciais de IAP - No campo Um ou mais âmbitos da API, introduza
email, openid
. - Clique em Autorizar.
Para simplificar este processo, pode usar uma chamada de API para usar um único ID de cliente OAuth 2.0 de IAP para todas as apps. Não pode usar a consola Google Cloud para especificar o ID do cliente a usar com as CAsI.
O que se segue?
- Saiba mais acerca da gestão de identidades e acessos.