arrow_back

Autenticação de usuário: Identity-Aware Proxy

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Autenticação de usuário: Identity-Aware Proxy

Lab 1 hora universal_currency_alt 1 crédito show_chart Introdutório
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP499

Laboratórios autoguiados do Google Cloud

Visão geral

Neste laboratório, você criará um pequeno aplicativo da Web com o Google App Engine. Depois, verá várias maneiras de usar o Identity-Aware Proxy (IAP) para restringir o acesso ao aplicativo e enviar informações de identidade do usuário a ele. Esse aplicativo fará o seguinte:

  • Exibir uma página de boas-vindas
  • Acessar informações de identidade do usuário transmitidas pelo IAP
  • Usar a verificação criptográfica para evitar o spoofing dessas informações

O que você aprenderá

  • Como escrever e implantar um aplicativo simples do App Engine usando Python
  • Como ativar e desativar o IAP para restringir o acesso ao aplicativo
  • Como transferir informações de identidade do usuário do IAP para o aplicativo
  • Como verificar criptograficamente as informações do IAP para se proteger contra spoofing

Introdução

Muitas vezes, é preciso autenticar os usuários do seu app da Web, e isso costuma exigir uma programação especial dele. Para os apps do Google Cloud, você pode transferir essa responsabilidade para o serviço Identity-Aware Proxy. Se você só precisar restringir o acesso a usuários selecionados, não precisará fazer mudanças no aplicativo. Quando é preciso saber a identidade do usuário para manter as preferências dele no servidor, por exemplo, o Identity-Aware Proxy pode fazer isso para você com pouco código no aplicativo.

O que é o Identity-Aware Proxy?

O Identity-Aware Proxy (IAP) é um serviço do Google Cloud que intercepta solicitações da Web enviadas ao aplicativo, autentica o autor delas por meio do serviço de identidade do Google e só permite a transmissão quando elas vêm de um usuário autorizado. Além disso, o IAP pode modificar o cabeçalho das solicitações para incluir informações sobre o usuário autenticado.

Pré-requisitos

Sua experiência de aprendizado será melhor se você tiver conhecimento básico da linguagem de programação Python.

O laboratório se concentra no Google App Engine e no IAP. Não veremos detalhes sobre conceitos e blocos de código que não forem relevantes ao tema. No caso do código, os blocos serão disponibilizados para você copiar e colar.

Configuração e requisitos

Antes de clicar no botão Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você verá o seguinte:

    • O botão Abrir Console do Cloud
    • Tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações se forem necessárias
  2. Clique em Abrir Console do Google. O laboratório ativa recursos e depois abre outra guia com a página Fazer login.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Caso seja preciso, copie o Nome de usuário no painel Detalhes do laboratório e cole esse nome na caixa de diálogo Fazer login. Clique em Avançar.

  4. Copie a Senha no painel Detalhes do laboratório e a cole na caixa de diálogo Olá. Clique em Avançar.

    Importante: você precisa usar as credenciais do painel à esquerda. Não use suas credenciais do Google Cloud Ensina. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  5. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do GCP vai ser aberto nesta guia.

Observação: para ver uma lista dos produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo. Ícone do menu de navegação

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Depois de se conectar, vai notar que sua conta já está autenticada, e que o projeto está configurado com seu PROJECT_ID. A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

  2. A saída será parecida com esta:

Saída:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = <project_ID>

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: para conferir a documentação completa da gcloud, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.

Fazer o download do código

Clique na área da linha de comando no Cloud Shell para digitar os comandos.

Faça o download do código em um bucket de armazenamento público e mude para a pasta de código:

gsutil cp gs://spls/gsp499/user-authentication-with-iap.zip . unzip user-authentication-with-iap.zip cd user-authentication-with-iap

Essa pasta contém uma subpasta para cada etapa do laboratório. Acesse cada pasta no momento correspondente.

Tarefa 1: implante o aplicativo e proteja-o com o IAP

Este é um aplicativo padrão do App Engine escrito em Python que mostra uma página de boas-vindas com a mensagem "Hello, World". Vamos implantá-lo, testá-lo e restringir o acesso a ele usando o IAP.

Revise o código do aplicativo

  • Mude da pasta principal do projeto para a subpasta 1-HelloWorld, que contém o código desta etapa.
cd 1-HelloWorld

O código do aplicativo está no arquivo main.py. Ele usa o framework da Web Flask para responder às solicitações da Web com o conteúdo de um modelo. O arquivo desse modelo está em templates/index.html e contém apenas HTML simples para esta etapa. Um segundo arquivo de modelo em templates/privacy.html inclui um exemplo básico de política de privacidade.

Há dois outros arquivos: requirements.txt lista todas as bibliotecas Python não padrão que o aplicativo usa, e app.yaml informa ao Google Cloud que esse é um aplicativo Python do App Engine.

Você pode listar cada arquivo no shell usando o comando cat. Por exemplo:

cat main.py

Outra opção é iniciar o editor de código do Cloud Shell clicando no ícone de lápis no canto superior direito da janela do Cloud Shell e verificar o código.

Não é preciso alterar nenhum arquivo nesta etapa.

Implantar no App Engine

  1. Atualize o ambiente de execução em Python para python39.
sed -i 's/python37/python39/g' app.yaml
  1. Implante o app no ambiente padrão do App Engine para Python.
gcloud app deploy
  1. Selecionar uma região .

  2. Digite Y para sim ao responder que quer continuar.

Observação: se aparecer uma mensagem de erro relacionado à propagação GAIA, execute novamente o comando gcloud app deploy.

Em alguns minutos, a implantação será concluída. Você vai ver uma mensagem informando que é possível ver o aplicativo com gcloud app browse.

  1. Insira este comando:
gcloud app browse
  1. Clique no link exibido para abri-lo em uma nova guia ou cole o URL em uma guia aberta manualmente, se necessário. Como esta é a primeira vez que o app é executado, levará alguns segundos para ele aparecer enquanto uma instância de nuvem é iniciada. Em seguida, você verá a janela a seguir.

Página do IAP com a guia Hello World

É possível abrir o mesmo URL em qualquer computador conectado à Internet para ver essa página da Web. O acesso ainda não está restrito.

Clique em Verificar meu progresso para conferir o objetivo. Implante um aplicativo do App Engine

Restringir o acesso com o IAP

  1. Na janela do Console do Cloud, clique no Menu de navegação Ícone do menu de navegação > Segurança > Identity-Aware Proxy.

  2. Clique em ATIVAR API.

  3. Clique em ACESSAR IDENTITY-AWARE PROXY.

  4. Clique em CONFIGURAR TELA DE PERMISSÃO.

  5. Selecione Interno em "Tipo de usuário" e clique em Criar.

  6. Preencha os espaços obrigatórios com os valores corretos:

Campo

Valor

Nome do app

Exemplo do IAP

E-mail para suporte do usuário

Selecione seu endereço de e-mail de aluno do laboratório no menu suspenso.

Página inicial do aplicativo

O URL usado para ver seu app. É possível encontrar ao executar o comando gcloud app browse novamente no Cloud Shell.

Link da Política de Privacidade do aplicativo

O link da página de privacidade no app, igual ao da página inicial com /privacy adicionado ao final

Domínios autorizados

Clique em + ADICIONAR DOMÍNIOA parte do URL do aplicativo referente ao nome do host, por exemplo, iap-example-999999.appspot.com. Ela está na barra de endereço da página da Web "Hello World" que foi aberta. Não inclua https:// do início nem / do fim do URL.

Dados de contato do desenvolvedor

Forneça pelo menos um e-mail.

  1. Clique em Salvar e continuar.

  2. Selecione Escopos e clique em Salvar e continuar.

  3. Para um Resumo, clique em Voltar para o painel.

Talvez seja solicitado que você crie credenciais. Você não precisa fazer isso neste laboratório. Basta fechar esta guia do navegador.

  1. No Cloud Shell, execute este comando para desativar a API Flex:
gcloud services disable appengineflex.googleapis.com Observação: o App Engine tem ambiente padrão e flexível que é otimizado para diferentes arquiteturas de aplicativos. Atualmente, ao ativar o IAP para o App Engine, se a API Flex estiver ativada, o Google Cloud vai buscar uma conta de serviço Flex. Seu projeto do laboratório vem com várias APIs já ativadas por conveniência. Porém, isso cria uma situação única em que a API Flex é ativada sem a criação de uma conta de serviço.
  1. Volte e atualize a página do Identity-Aware Proxy. Agora você verá uma lista de recursos que podem ser protegidos.

Clique no botão na coluna IAP localizada na linha do app do App Engine para ativar o IAP.

  1. O domínio será protegido pelo IAP. Clique em Ativar.

Verifique se o IAP está ativado

  1. Abra uma guia do navegador e navegue até o URL do seu app. A tela "Fazer login com o Google" será aberta para você acessar o app.

  2. Entre com a conta que você usou para fazer login no Console. Você verá uma tela negando seu acesso.

Você protegeu seu app com o IAP, mas ainda não informou ao serviço quais contas têm permissão.

  1. Volte à página do Identity-Aware Proxy do Console, marque a caixa de seleção ao lado do app do App Engine e veja a barra lateral à direita.

Cada endereço de e-mail, endereço do Grupo do Google ou nome de domínio do Workspace com permissão de acesso precisa ser adicionado como um membro.

  1. Clique em Adicionar principal.

  2. Insira seu endereço de e-mail de Estudante.

  3. Depois, escolha o papel Cloud IAP > Usuário do app da Web protegido pelo IAP para atribuí-lo a esse endereço.

Você pode inserir mais endereços ou domínios do Workspace da mesma maneira.

Adicione participantes à caixa de diálogo &quot;App do App Engine&quot;, Cloud IAP > Usuário do app da Web protegido pelo IAP

  1. Clique em Salvar.

A mensagem "Política atualizada" aparecerá na parte inferior da janela.

Clique em Verificar meu progresso para conferir o objetivo. Ative e adicione a política ao IAP

Testar o acesso

Navegue de volta para o aplicativo e recarregue a página. Agora você verá o aplicativo da Web, porque já fez login com um usuário autorizado.

Se o IAP não tiver confirmado novamente sua autorização, você continuará vendo a página "You don't have access" ("Você não tem acesso"). Nesse caso, siga estas etapas:

  1. Abra o navegador da Web no endereço da página inicial com /_gcp_iap/clear_login_cookie adicionado ao final do URL, como em https://iap-example-999999.appspot.com/_gcp_iap/clear_login_cookie.
  2. Você verá uma nova tela "Fazer login com o Google", com sua conta já preenchida. Não clique na conta. Em vez disso, clique em "Usar outra conta" e insira novamente suas credenciais.
Observação: demora cerca de um minuto para a mudança de papel ser aplicada. Se a página ainda mostrar a mensagem de "You don't have access" ("Você não tem acesso") mesmo depois de seguir os passos anteriores, espere um minuto e tente atualizar a página.

Isso fará com que o IAP verifique novamente o acesso, e você verá a tela inicial do aplicativo.

Se você tiver acesso a outro navegador ou puder usar o modo de navegação anônima e tiver outra conta válida do Gmail ou Workspace, use isso para navegar até a página do aplicativo e fazer login com a outra conta. Como ela não foi autorizada, você verá a tela "You Don't Have Access" em vez do aplicativo.

Tarefa 2: acesse as informações de identidade do usuário

Quando um aplicativo é protegido com o IAP, ele pode usar as informações de identidade transmitidas pelo IAP no cabeçalho das solicitações da Web. Nesta etapa, o aplicativo receberá o endereço de e-mail do usuário que fez login e um ID de usuário único e permanente atribuído a ele pelo serviço de identidade do Google. Esses dados serão exibidos para o usuário na página de boas-vindas.

  • No Cloud Shell, mude para a pasta para esta primeira etapa:
cd ~/user-authentication-with-iap/2-HelloUser

Implantar no App Engine

  1. Atualize o ambiente de execução em Python para python39.
sed -i 's/python37/python39/g' app.yaml
  1. Como a implantação leva alguns minutos, comece implantando o app no ambiente padrão do App Engine para Python:
gcloud app deploy
  1. Digite Y para sim ao responder que quer continuar.

Em alguns minutos, a implantação será concluída. Enquanto você espera, analise os arquivos do aplicativo conforme descrito abaixo.

Clique em Verificar meu progresso para conferir o objetivo. Acesse as informações de identidade do usuário

Analisar os arquivos do aplicativo

Esta pasta contém o mesmo conjunto de arquivos visto no app anterior implantado, 1-HelloWorld, mas dois deles foram alterados: main.py e templates/index.html. O programa passou por mudanças para buscar as informações do usuário transmitidas pelo IAP no cabeçalho das solicitações, e o modelo agora exibe esses dados.

Existem duas linhas em main.py que buscam os dados de identidade transmitidos pelo IAP:

user_email = request.headers.get('X-Goog-Authenticated-User-Email') user_id = request.headers.get('X-Goog-Authenticated-User-ID')

Os cabeçalhos X-Goog-Authenticated-User- são transmitidos pelo IAP, e os nomes são indiferentes a maiúsculas, portanto, use só maiúsculas ou minúsculas, como preferir. Agora a instrução render_template inclui esses valores para eles serem exibidos:

page = render_template('index.html', email=user_email, id=user_id)

Coloque os nomes em chaves duplas para que o modelo index.html mostre esses valores:

Hello, {{ email }}! Your persistent ID is {{ id }}.

Os dados transmitidos têm o prefixo accounts.google.com, que mostra a origem das informações. Se você quiser, o aplicativo poderá remover tudo até os dois pontos (inclusive esta pontuação) para exibir os valores brutos.

Teste o IAP atualizado

De volta à implantação, quando ela estiver pronta, você verá uma mensagem informando que é possível ver o aplicativo com gcloud app browse.

  1. Insira este comando:
gcloud app browse
  1. Se uma nova guia não abrir no navegador, copie o link exibido e acesse-o em outra guia normalmente. Você vai ver uma página semelhante a esta:

Página do IAP com a guia Hello World

Talvez seja necessário aguardar alguns minutos para que a nova versão do aplicativo substitua a anterior. Se necessário, atualize a página para ver algo semelhante ao exemplo acima.

Desative o IAP

O que acontece com o aplicativo quando o IAP é desativado ou ignorado por outros aplicativos em execução no mesmo projeto na nuvem, por exemplo? Desative o IAP para saber.

  1. Na janela do Console do Cloud, clique no Menu de navegação > Segurança > Identity-Aware Proxy.
  2. Clique no botão ativar do IAP ao lado do app do App Engine para desativar o IAP. Clique em DESATIVAR.

Você verá um aviso de que isso permitirá que todos os usuários acessem o app.

  1. Atualize a página da Web do aplicativo. Você verá a mesma página, mas sem informações do usuário:

Página do IAP com a guia Hello World sem informação do usuário

Como agora o aplicativo está desprotegido, um usuário pode enviar uma solicitação da Web que parece ter passado pelo IAP. Por exemplo, é possível executar o seguinte comando curl no Cloud Shell para fazer isso. Substitua <your-url-here> pelo URL correto do app:

curl -X GET <your-url-here> -H "X-Goog-Authenticated-User-Email: totally fake email"

A página da Web aparecerá na linha de comando e será semelhante ao exemplo a seguir:

<!doctype html> <html> <head> <title>IAP Hello User</title> </head> <body> <h1>Hello World</h1> <p> Hello, totally fake email! Your persistent ID is None. </p> <p> This is step 2 of the User Authentication with IAP</em> codelab. </p> </body> </html>

Não há como o aplicativo saber que o IAP foi desativado ou ignorado. Para casos em que isso é um risco em potencial, a verificação criptográfica é uma solução.

Tarefa 3: use a verificação criptográfica

Quando há o risco de o IAP ser desativado ou ignorado, o aplicativo pode verificar se as informações de identidade recebidas são válidas. Para isso, ele usa um cabeçalho de solicitação da Web adicionado pelo IAP, chamado X-Goog-IAP-JWT-Assertion. O valor do cabeçalho é um objeto assinado criptograficamente que também contém os dados de identidade do usuário. O aplicativo pode verificar a assinatura digital e usar os dados transmitidos neste objeto para ter certeza de que ele foi transmitido pelo IAP sem alterações.

A verificação da assinatura digital requer várias etapas adicionais, como a busca pelo conjunto mais recente de chaves públicas do Google. Você decide se o aplicativo precisa dessas etapas a mais com base na confidencialidade dele e no risco de que alguém possa desativar ou ignorar o IAP.

  • No Cloud Shell, mude para a pasta para esta primeira etapa:
cd ~/user-authentication-with-iap/3-HelloVerifiedUser

Implantar no App Engine

  1. Atualize o ambiente de execução em Python para python39.
sed -i 's/python37/python39/g' app.yaml
  1. Implante o app no ambiente padrão do Google App Engine para Python:
gcloud app deploy
  1. Digite Y para sim ao responder que quer continuar.

Em alguns minutos, a implantação será concluída. Enquanto você espera, analise os arquivos do aplicativo conforme descrito abaixo.

Clique em Verificar meu progresso para conferir o objetivo. Use a verificação criptográfica

Analisar os arquivos do aplicativo

Esta pasta contém o mesmo conjunto de arquivos visto em 2-HelloUser, com dois arquivos alterados e um novo. O novo arquivo é auth.py, que transmite um método user() para buscar e verificar as informações de identidade assinadas criptograficamente. Os arquivos alterados são main.py e templates/index.html, que agora usam os resultados desse método. Os cabeçalhos não verificados encontrados na última implantação também são mostrados para comparação.

  • A nova funcionalidade está principalmente na função user():
def user(): assertion = request.headers.get('X-Goog-IAP-JWT-Assertion') if assertion is None: return None, None info = jwt.decode( assertion, keys(), algorithms=['ES256'], audience=audience() ) return info['email'], info['sub']

assertion corresponde aos dados assinados criptograficamente que foram transmitidos no cabeçalho da solicitação especificada. O código usa uma biblioteca para validar e decodificar esses dados. A validação usa as chaves públicas atribuídas pelo Google para verificar os dados que assina e saber para que público os dados foram preparados (basicamente, o projeto do Google Cloud que está sendo protegido). As funções auxiliares keys() e audience() coletam e retornam esses valores.

O objeto assinado tem dois dados de que precisamos: o endereço de e-mail verificado e o valor de ID exclusivo, indicados no campo padrão sub, de assinante.

Isso conclui a Etapa 3.

Teste a verificação criptográfica

Quando a implantação estiver pronta, você verá uma mensagem informando que é possível ver o aplicativo com gcloud app browse.

  • Insira este comando:
gcloud app browse

Se uma nova guia não abrir no navegador, copie o link exibido e acesse-o em outra guia normalmente.

Lembre-se de que você desativou o IAP antes. Por isso, o aplicativo não mostrará dados do IAP. Você vai ver uma página semelhante a esta:

Página do IAP com a guia Hello World sem ID

Assim como antes, talvez seja preciso aguardar alguns minutos até que a versão mais recente da página apareça.

Como o IAP foi desativado, nenhuma informação do usuário está disponível. Agora, ative novamente o IAP.

  1. Na janela do Console do Cloud, clique no Menu de navegação > Segurança > Identity-Aware Proxy.

  2. Clique no botão IAP ao lado do app do App Engine para ativar o IAP novamente. Clique em ATIVAR.

  3. Atualize a página. Ela será parecida com o exemplo a seguir:

Página Hello World de identidade do usuário com ID

Observe que o endereço de e-mail indicado pelo método verificado não tem o prefixo accounts.google.com:.

Se o IAP estiver desativado ou for ignorado, não haverá dados verificados ou eles serão inválidos, porque eles só poderiam ter uma assinatura válida se fossem criados pelo proprietário das chaves privadas do Google.

Parabéns!

Você implantou um aplicativo da Web do App Engine. Primeiro, você restringiu o acesso ao aplicativo somente aos usuários escolhidos. Depois, você buscou e exibiu a identidade dos usuários que o IAP permitiu acessar o aplicativo e viu como essas informações poderiam ser falsificadas se o IAP fosse desativado ou ignorado. Por fim, você verificou as declarações assinadas criptograficamente da identidade do usuário, que não podem ser falsificadas.

Termine a Quest

Este laboratório autoguiado faz parte das Quests Security & Identity Fundamentals e Networking Fundamentals in Google Cloud. Uma Quest é uma série de laboratórios relacionados que formam um programa de aprendizado. Ao concluir uma Quest, você ganha um selo como reconhecimento da sua conquista. É possível publicar os selos e incluir um link para eles no seu currículo on-line ou nas redes sociais. Inscreva-se em qualquer Quest que tenha este laboratório para receber os créditos de conclusão na mesma hora. Confira o catálogo do Google Cloud Ensina para ver todas as Quests disponíveis.

Comece o próximo laboratório

Continue sua Quest em Para começar com o Cloud KMS ou tente um laboratório diferente do Google Cloud Ensina, por exemplo:

Próximas etapas/Saiba mais

Licença

Este conteúdo está sob a licença Atribuição 2.0 Genérica da Creative Commons.

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 28 de fevereiro de 2024

Laboratório testado em 28 de fevereiro de 2024

Copyright 2024 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.