Como conseguir a identidade do usuário

Nesta página, você verá como conseguir a identidade de um usuário com o Identity-Aware Proxy (IAP). Isso permite que o aplicativo verifique se uma solicitação veio por meio do IAP. Para proteger adequadamente o app, sempre é preciso utilizar um dos mecanismos abaixo para conseguir a identidade do usuário autenticada pelo IAP.

Como conseguir a identidade do usuário com cabeçalhos assinados

Para garantir que uma solicitação para o Compute Engine, GKE, Cloud Run, ambiente padrão do App Engine ou aplicativo de ambiente flexível do App Engine tenha sido autorizada pelo IAP, seu aplicativo precisa validar cada solicitação verificando o cabeçalho de solicitação HTTP x-goog-iap-jwt-assertion. Saiba mais sobre como proteger seu app com cabeçalhos assinados.

O IAP também transmite a identidade do usuário para o serviço de back-end nos cabeçalhos HTTP mostrados a seguir. Esses cabeçalhos precisam ter o prefixo accounts.google.com do namespace. Eles estão disponíveis para compatibilidade, mas não confie neles como um mecanismo de segurança. Se você usar esses cabeçalhos, poderá compará-los com as informações de identidade do cabeçalho JWT autenticado listado acima.

Nome do cabeçalho Descrição Valor de exemplo
X-Goog-Authenticated-User-Email O endereço de e-mail do usuário. accounts.google.com:example@gmail.com
X-Goog-Authenticated-User-Id Um identificador permanente e exclusivo para o usuário. accounts.google.com:userIDvalue

Como conseguir a identidade do usuário com a API Users no ambiente padrão do App Engine

Como alternativa, se você tiver um aplicativo no ambiente padrão do App Engine, a API Users poderá ser usada para conseguir a identidade do usuário no código do app.

Se o aplicativo já usa essa API, não é necessário alterar nada. O IAP fornece a identidade do usuário, mas o valor do ID de cada um deles na API Users será alterado quando o IAP for ativado.

Para conseguir a identidade de usuário verificada pelo IAP para uma solicitação, chame a API Users para retornar ao usuário atual. Se a função retorna um usuário, como req.getUserPrincipal() != null em Java, o usuário foi autenticado pelo IAP.

Quando o IAP está ativado, na primeira vez que um usuário acessa seu app, ele é redirecionado para uma tela de consentimento para confirmar que quer compartilhar a identidade dele com o aplicativo. Isso ocorre mesmo quando o usuário dá o consentimento para esse app antes de ativar o IAP e ocorrerá novamente se você desativar o IAP e depois reativá-lo.

Quando você usa a API Users, ela normalmente suprime a tela de consentimento para aplicativos e usuários que estão no mesmo domínio do Google Workspace. Quando você ativa o IAP, a tela de consentimento não é automaticamente suprimida. Para fazer isso com o IAP ativado, siga as etapas abaixo:

  1. Acesse o Google Admin Console.
    Acessar o Admin Console
  2. Na lista de controles, selecione Segurança.
    1. Se não vir Segurança listada, selecione Mais controles na barra cinza na parte inferior da página e depois Segurança na lista de controles.
    2. Se não for possível ver os controles, verifique se o login foi feito como administrador do domínio.
  3. Na lista de opções, selecione Mostrar mais e depois Configurações avançadas.
  4. Na seção Autenticação, selecione Gerenciar acesso do cliente da API.
  5. No campo Nome do cliente, insira o ID do cliente OAuth 2.0 do IAP. Esse dado pode ser encontrado na página "Credenciais".
    Acessar a página "Credenciais" do IAP
  6. No campo Um ou mais escopos da API, insira email, openid.
  7. Clique em Autorizar.

Para simplificar esse processo, faça uma chamada de API para usar um único ID do cliente OAuth 2.0 do IAP para todos os apps. Não é possível usar o console do Google Cloud para especificar o ID do cliente a ser usado com o IAP.

A seguir