Autentique utilizadores com Contas Google

Esta página explica como implementar uma aplicação do ambiente padrão ou flexível do App Engine e protegê-la com o Identity-Aware Proxy (IAP). O início rápido inclui código de exemplo para uma app Web do ambiente padrão do App Engine que valida o nome de um utilizador com sessão iniciada. Este início rápido usa o Cloud Shell para clonar e implementar a aplicação de exemplo. Pode usar este guia de início rápido para ativar o IAP para a sua própria app do ambiente padrão do App Engine ou do ambiente flexível do App Engine.

Se planear publicar recursos a partir de uma rede de fornecimento de conteúdo (RFC), consulte o guia de práticas recomendadas para ver informações importantes.

Quando uma aplicação do App Engine consiste em vários serviços, é possível configurar diferentes autorizações da IAP nos diferentes serviços, incluindo tornar apenas alguns dos serviços acessíveis publicamente, mantendo os outros protegidos.


Para seguir orientações passo a passo para esta tarefa diretamente na Google Cloud consola, clique em Orientar-me:

Visita guiada


Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

Antes de começar

Para ativar o IAP para o App Engine, precisa do seguinte:

  • Um Google Cloud projeto da consola com a faturação ativada.

Se ainda não tiver a instância do App Engine configurada, consulte o artigo Implementar o App Engine para ver um guia completo.

O IAP usa um cliente OAuth gerido pela Google para autenticar os utilizadores. Apenas os utilizadores na organização podem aceder à aplicação com IAP ativada. Se quiser permitir o acesso a utilizadores externos à sua organização, consulte o artigo Ative o IAP para aplicações externas.

Ativar CNA

Consola

O cliente OAuth gerido pela Google não está disponível quando ativa as CAs através da Google Cloud consola.

Dynamic include file

If you haven't configured your project's OAuth consent screen, you'll be prompted to do so. To configure your OAuth consent screen, see Setting up your OAuth consent screen.

Setting up IAP access

  1. Go to the Identity-Aware Proxy page.
    Go to the Identity-Aware Proxy page
  2. Select the project you want to secure with IAP.
  3. Select the checkbox next to the resource you want to grant access to.
  4. On the right side panel, click Add principal.
  5. In the Add principals dialog that appears, enter the email addresses of groups or individuals who should have the IAP-secured Web App User role for the project.

    The following kinds of principals can have this role:

    • Google Account: user@gmail.com
    • Google Group: admins@googlegroups.com
    • Service account: server@example.gserviceaccount.com
    • Google Workspace domain: example.com

    Make sure to add a Google Account that you have access to.

  6. Select Cloud IAP > IAP-secured Web App User from the Roles drop-down list.
  7. Click Save.

Turning on IAP

  1. On the Identity-Aware Proxy page, under Applications, find the application you want to restrict access to. To turn on IAP for a resource,
  2. In the Turn on IAP window that appears, click Turn On to confirm that you want IAP to secure your resource. After you turn on IAP, it requires login credentials for all connections to your load balancer. Only principals with the IAP-Secured Web App User (roles/iap.httpsResourceAccessor) role on the project will be given access.

gcloud

Before you set up your project and IAP, you need an up-to-date version of the gcloud CLI. For instructions on how to install the gcloud CLI, see Install the gcloud CLI.

  1. To authenticate, use the Google Cloud CLI and run the following command.
    gcloud auth login
  2. Click the URL that appears and sign in.
  3. After you sign in, copy the verification code that appears and paste it in the command line.
  4. Run the following command to specify the project that contains the applications that you want to protect with IAP.
    gcloud config set project PROJECT_ID
  5. To enable IAP, run the following command.
    gcloud iap web enable --resource-type=app-engine --versions=version
  6. Add principals who should have the IAP-secured Web App user role to the project.
    gcloud projects add-iam-policy-binding PROJECT_ID \
           --member=PRINCIPAL_IDENTIFIER \
           --role=roles/iap.httpsResourceAccessor
    • Replace PROJECT_ID with your project ID.
    • Replace PRINCIPAL_IDENTIFIER with the necessary principals. This can be a type of domain, group, serviceAccount, or user. For example, user:myemail@example.com.

After you enable IAP, you can use the gcloud CLI to modify the IAP access policy using the IAM role roles/iap.httpsResourceAccessor. Learn more about managing roles and permissions.

API

  1. Run the following command to prepare a settings.json file.

    cat << EOF > settings.json
    {
    "iap":
      {
        "enabled":true
      }
    }
    EOF
    

  2. Run the following command to enable 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"
    

After you enable IAP, you can use the Google Cloud CLI to modify the IAP access policy using the IAM role roles/iap.httpsResourceAccessor. Learn more about managing roles and permissions.

Teste a autenticação de utilizadores

  1. Aceda ao URL da app a partir de uma Conta Google que adicionou ao IAP com a função de utilizador da app Web protegida pelo IAP, conforme descrito acima. Deve ter acesso sem restrições à app.

  2. Use uma janela de navegação anónima no Chrome para aceder à app e iniciar sessão quando lhe for pedido. Se tentar aceder à app com uma conta que não esteja autorizada com a função Utilizador da app Web protegida pelo IAP, é apresentada uma mensagem a indicar que não tem acesso.

O que se segue?