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
Se você ainda não configurou a tela de permissão OAuth do seu projeto, será necessário fazer isso. Para configurar sua tela de permissão OAuth, consulte Como configurar a tela de permissão OAuth.
Como configurar o acesso do IAP
-
Acesse a página Identity-Aware Proxy.
Acessar a página "Identity-Aware Proxy" - Selecione o projeto que você quer proteger com o IAP.
- Marque a caixa de seleção ao lado do recurso a que você quer conceder acesso.
- No painel lateral à direita, clique em Adicionar principal.
-
Na caixa de diálogo Adicionar principais que será 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.
- Selecione Cloud IAP > Usuário do app da Web protegido pelo IAP na lista suspensa Papéis.
- Clique em Save.
Ativando o IAP
-
Na página Identity-Aware Proxy, em Aplicativos,
encontre o aplicativo a que você quer restringir
o acesso. Para ativar o IAP para um recurso,
- 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 da CLI gcloud. Para instruções sobre como instalar a CLI gcloud, consulte Instalar a CLI gcloud.
-
Para autenticar, use a Google Cloud CLI e execute o comando a seguir.
gcloud auth login
- Para fazer login, siga o URL exibido.
- Depois de fazer login, copie o código de verificação que aparece e cole-o na linha de comando.
-
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
- 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.
- Salve o ID e a chave secreta do cliente OAuth.
-
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, use 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
Siga as instruções em Como criar clientes OAuth para o IAP para configurar a tela de consentimento OAuth e criar o cliente OAuth.
Salve o ID e a chave secreta do cliente OAuth.
Execute o seguinte comando para preparar um arquivo
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true, "oauth2ClientId" : CLIENT_ID, "oauth2ClientSecret" : CLIENT_SECRET, } } EOF
Execute o seguinte comando 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, use a Google Cloud CLI 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ê ainda não configurou a tela de permissão OAuth do seu projeto, será necessário fazer isso. Para configurar sua tela de permissão OAuth, consulte Como configurar a tela de permissão OAuth.
Como configurar o acesso do IAP
-
Acesse a página Identity-Aware Proxy.
Acessar a página "Identity-Aware Proxy" - Selecione o projeto que você quer proteger com o IAP.
-
Marque a caixa de seleção ao lado do recurso a que você quer conceder acesso.
Se você não encontrar um recurso, verifique se ele foi criado e se o controlador de entrada BackendConfig do Compute Engine está sincronizado.
Para verificar se o serviço de back-end está disponível, execute o seguinte comando gcloud:
gcloud compute backend-services list
- No painel lateral à direita, clique em Adicionar principal.
-
Na caixa de diálogo Adicionar principais que será 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.
- Selecione Cloud IAP > Usuário do app da Web protegido pelo IAP na lista suspensa Papéis.
- Clique em Save.
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.
-
Para autenticar, use a Google Cloud CLI e execute o comando a seguir.
gcloud auth login
- Para fazer login, siga o URL exibido.
- Depois de fazer login, copie o código de verificação que aparece e cole-o na linha de comando.
-
Execute o seguinte comando para especificar o projeto que contém o recurso que você quer proteger com o IAP.
gcloud config set project PROJECT_ID
- Siga as instruções em Como criar clientes OAuth para o IAP para configurar a tela de consentimento e criar o cliente OAuth.
- Salve o ID e a chave secreta do cliente OAuth.
-
Para ativar o IAP, execute o comando com escopo global ou regional.
Escopo globalgcloud compute backend-services update BACKEND_SERVICE_NAME \ --global \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
Escopo regionalgcloud 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 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
Siga as instruções em Como criar clientes OAuth para o IAP para configurar a tela de consentimento OAuth e criar o cliente OAuth.
Salve o ID e a chave secreta do cliente OAuth.
Execute o seguinte comando para preparar um arquivo
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
Execute o seguinte comando 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, use 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 tiver configurado a tela de permissão OAuth do seu projeto, será solicitado que faça isso. Para configurar essa tela, consulte Como configurar a tela de permissão OAuth
Como configurar o acesso do IAP
- Abra a página Identity-Aware Proxy.
Acesse o Identity-Aware Proxy - Selecione o projeto que você quer proteger com o IAP.
- Em Aplicativos, marque a caixa de seleção ao lado do serviço de back-end do balanceador de carga a que você quer adicionar membros.
- No painel lateral à direita, clique em Adicionar membro.
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: usuario@gmail.com pode ser uma conta do Google Workspace, como usuario@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
Selecione Cloud IAP > Usuário de app da Web protegido pelo IAP na lista Papéis.
Clique em Save.
Ativando o IAP
- Na página do IAP, em Aplicativos, encontre o serviço de back-end do balanceador de carga a que você quer restringir o acesso. Clique no botão IAP para ativar o IAP em um recurso.
- Na janela Ativar IAP, clique em Ativar para confirmar que você quer proteger o recurso com o IAP. Depois de ativar o IAP, ele precisará de 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.
Para autorizar o IAP a enviar tráfego para o serviço de back-end do Cloud Run, siga as instruções em Adicionar participantes a um serviço para incluir o princípio e o papel a seguir.
- Principal:
service-[PROJECT-NUMBER]@gcp-sa-iap.iam.gserviceaccount.com
- Papel: Invocador do Cloud Run
- Principal:
gcloud
- Siga as instruções em Como criar clientes OAuth para o IAP para configurar a tela de consentimento OAuth e criar o cliente OAuth.
- Salve o ID e a chave secreta do cliente OAuth.
- Crie uma conta de serviço executando o comando a seguir, caso ainda não tenha feito isso. Se você já criou uma conta de serviço, a execução do comando não cria contas de serviço duplicadas.
gcloud beta services identity create \ --service=iap.googleapis.com --project=PROJECT_ID
- Conceda ao invocador a permissão para a 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'
Ative o IAP executando o comando com escopo global ou regional, dependendo de o serviço de back-end do balanceador de carga ser 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, use a Google Cloud CLI para modificar a política de acesso do IAP usando o papel do Identity and Access Management roles/iap.httpsResourceAccessor
. Consulte Como gerenciar papéis e permissões para mais informações.