Autenticar usuários com Contas do Google
Neste guia de início rápido, mostramos como ativar o Identity-Aware Proxy (IAP) para proteger um aplicativo do ambiente padrão ou flexível do App Engine e conceder acesso a usuários com Contas do Google.
Se você planeja disponibilizar recursos de uma rede de fornecimento de conteúdo (CDN, na sigla em inglês), consulte o guia de práticas recomendadas de armazenamento em cache para informações importantes.
Quando um aplicativo do App Engine consiste em vários serviços, é possível configurar permissões diferentes do IAP em todos os serviços, incluindo tornar alguns serviços acessíveis publicamente e manter outros protegidos.
Para seguir as instruções detalhadas desta tarefa diretamente no Google Cloud console, clique em Orientações:
Antes de começar
- Faça login nasua Google Cloud conta. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
-
Para ativar o IAP para o App Engine, é necessário configurar a instância do App Engine. Se você ainda não configurou a instância do App Engine, consulte Como fazer a implantação no App Engine para um tutorial completo.
Por padrão, o IAP usa um cliente OAuth gerenciado pelo Google, que exige que o projeto pertença a uma organização e só permita acesso a usuários internos.
Funções exigidas
Para receber as permissões necessárias para autenticar usuários com Contas do Google, peça ao administrador para conceder a você opapel do IAM de administrador da política do IAP (roles/iap.policyAdmin) no projeto.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Ativar o IAP
Console
Se o projeto não pertencer a uma organização, use credenciais OAuth personalizadas.
Se não tiver configurado o ecrã de consentimento OAuth do seu projeto, é-lhe pedido que o faça. Para configurar o ecrã de consentimento OAuth, consulte o artigo Configurar o ecrã de consentimento OAuth.
Configurar o acesso à IAP
-
Aceda à
página Identity-Aware Proxy.
Aceda à página Identity-Aware Proxy - Selecione o projeto que quer proteger com o IAP.
- Selecione a caixa de verificação junto ao recurso ao qual quer conceder acesso.
- No painel do lado direito, clique em Adicionar diretor.
-
Na caixa de diálogo Adicionar responsáveis apresentada, introduza os endereços de email dos grupos ou
indivíduos que devem ter a função Utilizador da app Web protegida pelo IAP para o projeto.
Os seguintes tipos de principais podem ter esta função:
- Conta Google: user@gmail.com
- Grupo Google: admins@googlegroups.com
- Conta de serviço: server@example.gserviceaccount.com
- Domínio do Google Workspace: example.com
Certifique-se de que adiciona uma Conta Google à qual tem acesso.
- Selecione Cloud IAP > Utilizador da app Web protegida pelo IAP na lista pendente Funções.
- Clique em Guardar.
Ativar o IAP
-
Na página Identity-Aware Proxy, em APLICAÇÕES,
encontre a aplicação à qual quer restringir
o acesso. Para ativar a IAP para um recurso:
- Na janela Ativar IAP apresentada, clique em Ativar para confirmar que quer que o IAP proteja o seu recurso. Depois de ativar o IAP, este requer credenciais de início de sessão para todas as ligações ao seu equilibrador de carga. Apenas as contas com a função utilizador da app Web protegida pelo IAP no projeto têm acesso.
gcloud
Antes de configurar o projeto e as CAs, precisa de uma versão atualizada da CLI gcloud. Para ver instruções sobre como instalar a CLI gcloud, consulte o artigo Instale a CLI gcloud.
-
Para autenticar, use a CLI do Google Cloud e execute o seguinte comando.
gcloud auth login - Clique no URL apresentado e inicie sessão.
- Depois de iniciar sessão, copie o código de validação apresentado e cole-o na linha de comandos.
-
Execute o seguinte comando para especificar o projeto que contém as aplicações que quer proteger com o IAP.
gcloud config set project PROJECT_ID -
Para ativar a IAP, execute o seguinte comando.
gcloud iap web enable --resource-type=app-engine --versions=version -
Adicione os principais que devem ter a função de utilizador da app Web protegida pelo IAP ao projeto.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL_IDENTIFIER \ --role=roles/iap.httpsResourceAccessor- Substitua PROJECT_ID pelo ID do seu projeto.
- Substitua PRINCIPAL_IDENTIFIER pelos principais necessários. Pode ser um
tipo de domínio, grupo, conta de serviço ou utilizador. Por exemplo,
user:myemail@example.com.
Depois de ativar o IAP, pode usar a CLI gcloud para modificar a política de acesso do IAP através da função do IAM roles/iap.httpsResourceAccessor. Saiba mais sobre a
gestão de funções e autorizações.
API
Execute o seguinte comando para preparar um ficheiro
settings.json.cat << EOF > settings.json { "iap": { "enabled":true } } EOFExecute o seguinte comando para ativar a IAP.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
Depois de ativar o IAP, pode usar a CLI do Google Cloud para modificar a política de acesso do IAP através da função do IAM roles/iap.httpsResourceAccessor. Saiba mais sobre a
gestão de funções e autorizações.
É possível ativar o IAP em um serviço do App Engine no projeto. Para tornar alguns serviços acessíveis publicamente e exigir autenticação para outros, use níveis de acesso diferentes em todos os serviços.
Para saber mais, consulte Gerenciar o acesso com o IAP.
Para tornar os serviços acessíveis publicamente, conceda o papel Usuário do app da Web protegido pelo IAP a allAuthenticatedUsers.
Testar a autenticação do usuário
Depois que o papel é concedido, os principais podem acessar o app fazendo a autenticação com o IAP. Acesse o URL do aplicativo usando uma Conta do Google que recebeu o papel Usuário do app da Web protegido pelo IAP (
roles/iap.httpsResourceAccessor).Para testar o acesso, abra uma janela anônima no Chrome, acesse o URL do aplicativo e faça login quando solicitado. Os usuários que recebem o papel Usuário do app da Web protegido pelo IAP (
roles/iap.httpsResourceAccessor) e são autenticados com sucesso podem acessar o app. Os usuários que não recebem o papel necessário ou não conseguem fazer a autenticação não podem acessar o app.
A seguir
- Saiba como conseguir a identidade do usuário e desenvolver seu próprio aplicativo do App Engine.