Personalizar uma configuração do OAuth para ativar o IAP

Nesta página, explicamos quando e como personalizar uma configuração OAuth para o Identity-Aware Proxy (IAP).

O IAP usa um cliente OAuth gerenciado pelo Google para autenticar usuários.

O cliente OAuth gerenciado pelo Google restringe o acesso a usuários dentro da mesma organização ao acessar aplicativos com o IAP ativado em um navegador.

Quando usar uma configuração OAuth personalizada

Use uma configuração OAuth personalizada para fazer o seguinte:

  • Permitir que usuários fora da organização acessem aplicativos habilitados para IAP.
  • Para exibir as informações da sua marca durante a autenticação.
  • Para ativar o acesso programático ao aplicativo.

Quando você personaliza a configuração do OAuth, é necessário definir a tela de permissão OAuth. Isso exige que as informações de marca da sua inscrição passem pelo processo de verificação do Google. Para mais informações sobre o processo de verificação, consulte Como configurar a tela de permissão OAuth.

Você é responsável por criar e gerenciar as credenciais de um cliente OAuth personalizado. Isso inclui armazenar a chave secreta do cliente com segurança e compartilhá-la com usuários autorizados quando necessário.

Comparação entre clientes OAuth gerenciados e personalizados pelo Google

A tabela a seguir mostra uma comparação entre o cliente OAuth gerenciado pelo Google e um cliente OAuth personalizado.

Cliente OAuth gerenciado pelo Google Cliente OAuth personalizado
Usuários Somente internas Parceiros internos e externos
Brand Marca do Google Cloud Marca do cliente
Configuração do OAuth Configuração feita pelo Google O cliente foi configurado
Credenciais OAuth Gerenciado pelo Google Gerenciada pelo cliente
Acesso ao aplicativo Somente fluxo do navegador Fluxo do navegador e acesso programático

Ativar o IAP usando uma configuração personalizada de cliente OAuth

App Engine

Console

Arquivo de inclusão dinâmico

Se você ainda não tiver configurado a tela de consentimento do OAuth do seu projeto, precisará fazer isso. Para configurar a tela de consentimento do OAuth, consulte Como configurar a tela de consentimento do OAuth.

Como configurar o acesso do IAP

  1. Acesse a página Identity-Aware Proxy.
    Acessar a página "Identity-Aware Proxy"
  2. Selecione o projeto que você quer proteger com o IAP.
  3. Marque a caixa de seleção ao lado do recurso que você quer conceder acesso.
  4. No painel à direita, clique em Adicionar principal.
  5. Na caixa de diálogo Adicionar membros que é exibida, insira os endereços de e-mail de grupos ou indivíduos que terão o papel Usuário do app da Web protegido pelo IAP no projeto.

    Os seguintes tipos de principais podem ter esse papel:

    • Conta do Google: user@gmail.com
    • grupo do Google: admins@googlegroups.com
    • Conta de serviço: server@example.gserviceaccount.com
    • Domínio do Google Workspace: example.com

    Inclua uma Conta do Google a que você tenha acesso.

  6. Selecione Cloud IAP > Usuário do app da Web protegido pelo IAP na lista suspensa Papéis.
  7. Clique em Salvar.

Ativando o IAP

  1. Na página Identity-Aware Proxy, em APLICAÇÕES, encontre o aplicativo a que você quer restringir o acesso. Para ativar o IAP para um recurso,
  2. Na janela Ativar IAP que é exibida, clique em Ativar para confirmar que você quer proteger seu recurso com o IAP. Depois disso, será necessário usar credenciais de login para todas as conexões com o balanceador de carga. O acesso será concedido apenas às contas com o papel usuário do app da Web protegido pelo IAP no projeto.

gcloud

Antes de configurar o projeto e o IAP, você precisa de uma versão atualizada do CLI gcloud. Para instruções sobre como instalar a CLI gcloud, consulte Instalar a CLI gcloud.

  1. Para fazer a autenticação, use a CLI do Google Cloud e execute o comando a seguir.
    gcloud auth login
  2. Para fazer login, siga o URL que aparece.
  3. Depois de fazer login, copie o código de verificação que aparece e cole-o na linha de comando.
  4. Execute o comando a seguir para especificar o projeto que contém o recurso que você quer proteger com o IAP.
    gcloud config set project PROJECT_ID
  5. Siga as instruções Como criar clientes OAuth para o IAP para configurar a tela de permissão OAuth e criar o cliente OAuth.
  6. Salve o ID e a chave secreta do cliente OAuth.
  7. Para ativar o IAP, execute o comando a seguir.
    gcloud iap web enable \
        --oauth2-client-id=CLIENT_ID \
        --oauth2-client-secret=CLIENT_SECRET \
        --resource-type=app-engine

Depois de ativar o IAP, será possível usar a CLI gcloud para modificar a política de acesso do IAP usando o papel roles/iap.httpsResourceAccessor do IAM. Saiba mais sobre como gerenciar papéis e permissões.

API

  1. Siga as instruções em Como criar clientes OAuth para IAP para configurar a tela de consentimento do OAuth e criar o cliente OAuth.

  2. Salve o ID e a chave secreta do cliente OAuth.

  3. Execute o comando a seguir para preparar um arquivo settings.json.

    cat << EOF > settings.json
    {
    "iap":
      {
        "enabled":true,
        "oauth2ClientId" : CLIENT_ID,
        "oauth2ClientSecret" : CLIENT_SECRET,
      }
    }
    EOF
    

  4. Execute o comando abaixo para ativar o 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, será possível usar a CLI do Google Cloud para modificar a política de acesso do IAP usando o papel roles/iap.httpsResourceAccessor do IAM. Saiba mais sobre como gerenciar papéis e permissões.

Google Compute Engine

Console

Se você não tiver configurado a tela de permissão OAuth do seu projeto, solicitado a fazer isso. Para configurar a tela de permissão OAuth, consulte Como configurar a tela de permissão OAuth.

Como configurar o acesso do IAP

  1. Acesse a página Identity-Aware Proxy.
    Acessar a página "Identity-Aware Proxy"
  2. Selecione o projeto que você quer proteger com o IAP.
  3. Marque a caixa de seleção ao lado do recurso ao qual você quer conceder acesso.

    Se você não encontrar um recurso, verifique se ele foi criado e se o controlador de entrada do Compute Engine BackendConfig foi sincronizado.

    Para verificar se o serviço de back-end está disponível, execute o seguinte Comando gcloud:

    gcloud compute backend-services list
  4. No painel à direita, clique em Adicionar principal.
  5. Na caixa de diálogo Adicionar participantes, insira os endereços de e-mail dos grupos ou pessoas que precisam ter o papel Usuário do app da Web protegido pelo IAP no projeto.

    Os seguintes tipos de administradores podem ter esse papel:

    • Conta do Google: user@gmail.com
    • grupo do Google: admins@googlegroups.com
    • Conta de serviço: server@example.gserviceaccount.com
    • Domínio do Google Workspace: example.com

    Inclua uma Conta do Google a que você tenha acesso.

  6. Selecione Cloud IAP > Usuário do app da Web protegido pelo IAP na lista suspensa Papéis.
  7. Clique em Salvar.

gcloud

Antes de configurar o projeto e o IAP, você precisa de uma versão atualizada da CLI gcloud. Para instruções sobre como instalar a CLI gcloud, consulte Instalar a CLI gcloud.

  1. Para autenticar, use a Google Cloud CLI e execute o comando a seguir.
    gcloud auth login
  2. Para fazer login, siga o URL que aparece.
  3. Depois de fazer login, copie o código de verificação que aparece e cole-o na linha de comando.
  4. Execute o comando a seguir para especificar o projeto que contém o recurso que você quer proteger com o IAP.
    gcloud config set project PROJECT_ID
  5. Siga as instruções em Como criar clientes OAuth para o IAP para configurar a tela de permissão OAuth e criar o cliente OAuth.
  6. Salve o ID e a chave secreta do cliente OAuth.
  7. Para ativar o IAP, execute o comando com escopo global ou regional.

    Escopo global
    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --global \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    Escopo regional
    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
        

Depois de ativar o IAP, use a CLI gcloud para modificar Política de acesso do IAP usando o papel do IAM roles/iap.httpsResourceAccessor: Saiba mais sobre como gerenciar papéis e permissões.

API

  1. Siga as instruções em Como criar clientes OAuth para IAP para configurar a tela de consentimento do OAuth e criar o cliente OAuth.

  2. Salve o ID e a chave secreta do cliente OAuth.

  3. Execute o comando a seguir para preparar um arquivo settings.json.

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

  4. Execute o comando abaixo para ativar o 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://compute.googleapis.com/compute/v1/projects/PROJECT_ID/REGION/backendServices/BACKEND_SERVICE_NAME"
    

Depois de ativar o IAP, será possível usar a CLI gcloud para modificar a política de acesso do IAP usando o papel roles/iap.httpsResourceAccessor do IAM. Saiba mais sobre como gerenciar papéis e permissões.

Cloud Run

Console

Se você não configurou a tela de permissão OAuth do seu projeto, solicitado a fazer isso. Para configurar a tela de permissão OAuth, consulte Como configurar a tela de permissão OAuth.

Como configurar o acesso do IAP

  1. Abra a página do Identity-Aware Proxy.
    Acessar o Identity-Aware Proxy
  2. Selecione o projeto que você quer proteger com o IAP.
  3. Em Aplicativos, marque a caixa de seleção ao lado do serviço de back-end do balanceador de carga ao qual você quer adicionar membros.
  4. No painel lateral à direita, clique em Adicionar membro.
  5. Na caixa de diálogo Adicionar membros, insira as contas de grupos ou indivíduos que terão o papel Usuário do app da Web protegido pelo IAP no projeto. Os seguintes tipos de contas podem ser membros:

    • Conta do Google: user@gmail.com. Também pode ser uma conta do Google Workspace, como user@google.com ou algum outro domínio do Google Workspace.
    • grupo do Google: admins@googlegroups.com
    • Conta de serviço: server@example.gserviceaccount.com
    • Domínio do Google Workspace: example.com
  6. Selecione Cloud IAP > Usuário do app da Web protegido pelo IAP na lista Papéis.

  7. Clique em Salvar.

Ativando o IAP

  1. Na página IAP, em Aplicativos, encontre o serviço de back-end do balanceador de carga para o qual você quer restringir o acesso. Clique no botão de alternância IAP para ativar o IAP em um recurso.
  2. Na janela Ativar IAP que é exibida, clique em Ativar para confirmar que você quer que o IAP proteja o recurso. Depois disso, será necessário usar credenciais de login para todas as conexões com o balanceador de carga. O acesso será concedido apenas às contas com o papel Usuário do app da Web protegido pelo IAP no projeto.
  3. Para autorizar o IAP a enviar tráfego ao serviço de back-end do Cloud Run, siga as instruções em Adicione principais a um serviço para acrescentar o princípio e o papel a seguir.

    • Principal: service-[PROJECT-NUMBER]@gcp-sa-iap.iam.gserviceaccount.com
    • Função: Chamador do Cloud Run

gcloud

  1. Siga as instruções em Como criar clientes OAuth para o IAP para configurar a tela de permissão OAuth e criar o cliente OAuth.
  2. Salve o ID e a chave secreta do cliente OAuth.
  3. Se você ainda não fez isso, crie uma conta de serviço executando o comando abaixo. Se você já criou uma conta de serviço, executar o comando não cria contas de serviço duplicadas.
    gcloud beta services identity create \
        --service=iap.googleapis.com --project=PROJECT_ID
    
  4. Conceda a permissão de invocação à conta de serviço criada na etapa anterior executando o comando a seguir.
    gcloud run services add-iam-policy-binding SERVICE-NAME \
        --member='serviceAccount:service-PROJECT-NUMBER@gcp-sa-iap.iam.gserviceaccount.com' \
        --role='roles/run.invoker'
    
  5. Ative o IAP executando o comando de escopo global ou regional, dependendo se o serviço de back-end do balanceador de carga é global ou regional. Use o ID e a chave secreta do cliente OAuth da etapa anterior.

    Escopo global

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --global \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    

    Escopo regional

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    
    Substitua:

    • BACKEND_SERVICE_NAME: o nome do serviço de back-end.
    • CLIENT_ID: o ID do cliente OAuth da etapa anterior.
    • CLIENT_SECRET: a chave secreta do cliente OAuth da etapa anterior.
    • REGION_NAME: a região em que você quer ativar o IAP.

Depois de ativar o IAP, será possível usar a CLI do Google Cloud para modificar a política de acesso do IAP usando a função roles/iap.httpsResourceAccessor do Identity and Access Management. Consulte Como gerenciar papéis e permissões para mais informações.