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.
Tela de consentimento
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:
- Acesse o Google Admin Console.
Acessar o Admin Console - Na lista de controles, selecione Segurança.
- 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.
- Se não for possível ver os controles, verifique se o login foi feito como administrador do domínio.
- Na lista de opções, selecione Mostrar mais e depois Configurações avançadas.
- Na seção Autenticação, selecione Gerenciar acesso do cliente da API.
- 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 - No campo Um ou mais escopos da API, insira
email, openid
. - 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
- Saiba mais sobre o gerenciamento de identidade e acesso.