Este guia explica como migrar de clientes OAuth 2.0 criados usando a API Admin OAuth do Identity-Aware Proxy (IAP) para os clientes OAuth 2.0 gerenciados pelo Google e implantados automaticamente pelo IAP.
O que vai mudar?
Estamos descontinuando a API Admin OAuth do IAP, que inclui as seguintes APIs para gerenciamento manual de clientes e marcas OAuth:
Em vez de gerenciar manualmente clientes OAuth 2.0, o IAP agora cria e gerencia automaticamente clientes OAuth quando necessário. Essa mudança simplifica o gerenciamento de clientes, reduz erros manuais e otimiza os processos de implantação.
O que não muda
Essa descontinuação não afeta os clientes OAuth que você configura manualmente usando a API Compute Engine, a API App Engine ou o console Google Cloud .
É possível continuar criando novas configurações de marca e cliente do OAuth e gerenciando-as usando o console Google Cloud . As configurações atuais vão continuar recebendo suporte total.
Se você não usa a API Admin OAuth do IAP, essa mudança não vai afetar você.
Descrição detalhada
Em 22 de janeiro de 2025, a API Admin OAuth 2.0 do IAP, usada para criar um cliente OAuth 2.0 do IAP, será descontinuada. A API Admin do OAuth 2.0 da IAP não é mais necessária porque não é mais preciso configurar clientes OAuth. O IAP agora usa um cliente OAuth gerenciado pelo Google para acesso ao navegador por padrão ou quando nenhum cliente OAuth 2.0 é configurado explicitamente. O cliente OAuth 2.0 gerenciado pelo Google restringe o acesso a aplicativos ativados para IAP a usuários da mesma organização quando eles acessam esses aplicativos por um navegador.
Com a descontinuação da API Admin do OAuth 2.0 do Identity-Aware Proxy (IAP), não é mais possível criar ou gerenciar novos clientes OAuth. Os clientes OAuth criados antes dessa descontinuação não serão invalidados. Você pode continuar usando os clientes OAuth que criou anteriormente e gerenciá-los usando o console Google Cloud .
Se você tiver aplicativos configurados com clientes OAuth criados usando a API Admin do IAP 2.0 ou de outra forma, eles vão continuar funcionando. Nenhuma mudança é necessária nos aplicativos. No entanto, se você tiver uma automação configurada para criar novos clientes na implantação de aplicativos ou buscar chaves secretas de clientes atuais, atualize os scripts de automação para remover a dependência da API Admin OAuth 2.0 do IAP.
Se você planeja usar o cliente OAuth 2.0 gerenciado pelo Google, siga o guia Acesso programático para configurar o acesso programático desses aplicativos.
Se você tiver um requisito que não é atendido pelo cliente OAuth 2.0 gerenciado pelo Google, compartilhe um único cliente OAuth com vários aplicativos IAP, eliminando a necessidade de criar manualmente um cliente para cada novo aplicativo.
Ações necessárias
Atualizar scripts de automação
Se você usa o Terraform ou outras ferramentas para automatizar a configuração do IAP e usa a API Admin do OAuth 2.0 do IAP, atualize os scripts de automação para usar um cliente pré-criado ou o cliente OAuth gerenciado pelo Google com o IAP.
Configurar o acesso programático para aplicativos usando os clientes OAuth2.0 gerenciados pelo Google
Se você já tiver alguns aplicativos protegidos pela IAP e planejar migrá-los para usar o cliente OAuth 2.0 gerenciado pelo Google, configure o acesso programático para esses aplicativos adicionando clientes OAuth 2.0 à lista de permissões.
Migrar recursos ativados para IAP
Para migrar seus recursos e usar o cliente OAuth 2.0 gerenciado pelo Google, siga as etapas para o tipo de recurso que você quer migrar, como um recurso do Compute Engine.
Migrar recursos do App Engine ativados para IAP
Conclua as etapas desta seção para migrar recursos do App Engine em que o IAP está ativado e um cliente OAuth 2.0 está configurado.
gcloud
Antes de continuar com as etapas, verifique se você tem uma versão atualizada da CLI gcloud. Para instruções sobre como instalar a CLI gcloud, consulte Instalar a CLI gcloud.
Use a Google Cloud CLI para fazer a autenticação.
gcloud auth login
Clique no URL que aparece e faça login.
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 os aplicativos que você quer continuar protegendo com o IAP.
gcloud config set project PROJECT_ID
Execute o comando a seguir para buscar o ID do cliente OAuth 2.0 configurado.
gcloud app describe --format="value(iap.oauth2ClientId)"
Salve o ID do cliente do comando anterior se quiser permitir o acesso programático.
Para permitir o acesso programático do cliente OAuth 2.0, faça uma operação de leitura-atualização-gravação na API de configurações do IAP.
gcloud iap settings get --resource-type=app-engine --project=$PROJECT > settings.yaml
Atualize o arquivo settings.yaml e adicione o ID do cliente OAuth 2.0 buscado anteriormente em
programmaticClients
, conforme mostrado no exemplo.accessSettings: oauthSettings: programmaticClients: - CLIENT_ID
Aplicar as novas configurações no aplicativo do App Engine
gcloud iap settings set settings.yaml --resource-type=app-engine --project=PROJECT_ID
Para migrar seus apps, execute o seguinte comando.
gcloud iap web enable --resource-type=app-engine
API
Execute o comando a seguir para buscar o ID do cliente OAuth 2.0 configurado.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://appengine.googleapis.com/v1/apps/PROJECT_ID?fields=iap"
Execute o comando a seguir para buscar as configurações de IAP atuais em um arquivo
settings.json
.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/appengine-PROJECT_ID:iapSettings" > settings.json
Atualize o arquivo
settings.json
para adicionar o CLIENT_ID salvo anteriormente como um cliente programático.{ "accessSettings": { "oauthSettings": { "programmaticClients": [ "CLIENT_ID" ] }, }, }
Execute o comando a seguir para atualizar as configurações da 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://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/appengine-PROJECT_ID:iapSettings"
Execute o comando a seguir para preparar um arquivo
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
Execute o comando a seguir para migrar seus apps.
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"
Migrar recursos do Compute Engine ativados para IAP
Siga as etapas desta seção para migrar recursos do Compute Engine em que a IAP está ativada e um cliente OAuth 2.0 está configurado.
gcloud
Antes de continuar com as etapas, verifique se você tem uma versão atualizada da CLI gcloud. Para instruções sobre como instalar a CLI gcloud, consulte Instalar a CLI gcloud.
Use a Google Cloud CLI para fazer a autenticação.
gcloud auth login
Clique no URL que aparece e faça login.
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 os aplicativos que você quer continuar protegendo com o IAP.
gcloud config set project PROJECT_ID
Execute o comando a seguir para buscar o ID do cliente OAuth 2.0 configurado.
Escopo global
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --global \ --format="value(iap.oauth2ClientId)"
Escopo regional
Salve o ID do cliente do comando anterior se quiser permitir o acesso programático.gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION_NAME \ --format="value(iap.oauth2ClientId)"
Para permitir o acesso programático do cliente OAuth 2.0, faça uma operação de leitura-atualização-gravação na API de configurações do IAP.
Escopo global
gcloud iap settings get \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME > settings.yaml
Escopo regional
gcloud iap settings get \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME \ --region=REGION_NAME > settings.yaml
Atualize o arquivo settings.yaml e adicione o ID do cliente OAuth 2.0 buscado anteriormente em
programmaticClients
, conforme mostrado no exemplo.accessSettings: oauthSettings: programmaticClients: - CLIENT_ID
Aplicar as novas configurações no aplicativo do Compute Engine
Escopo global
gcloud iap settings set settings.yaml \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME
Escopo regional
gcloud iap settings set settings.yaml \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME \ --region=REGION_NAME
Para migrar seus aplicativos, execute o comando com escopo global ou regional.
Escopo global
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --global \ --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
Escopo regional
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION_NAME \ --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
Para confirmar que o ID do cliente OAuth não está definido, execute o seguinte comando de escopo global ou regional. Depois de executar o comando, verifique a saída para garantir que o campo "ID do cliente OAuth" esteja vazio.
Escopo global
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --global
Escopo regional
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION_NAME
API
Execute o comando a seguir para buscar o ID do cliente OAuth 2.0 configurado.
Escopo global
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
Escopo regional
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
Execute o comando a seguir para buscar as configurações de IAP atuais em um arquivo
settings.json
.Escopo global
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
Escopo regional
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
Atualize o arquivo
settings.json
para adicionar o CLIENT_ID salvo anteriormente como um cliente programático.{ "accessSettings": { "oauthSettings": { "programmaticClients": [ "CLIENT_ID" ] }, }, }
Execute o comando a seguir para atualizar as configurações da IAP.
Escopo global
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "@settings.json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings"
Escopo regional
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "@settings.json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings"
Execute o comando a seguir para preparar um arquivo
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true, "oauth2ClientId": " ", "oauth2ClientSecret": " " } } EOF
Execute o comando a seguir para migrar seus recursos do IAP.
Escopo global
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/global/backendServices/BACKEND_SERVICE_NAME"
Escopo regional
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/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"Para confirmar que o ID do cliente OAuth não está definido, execute o seguinte comando de escopo global ou regional. Depois de executar o comando, verifique a saída para garantir que o campo "ID do cliente OAuth" esteja vazio.
Escopo global
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
Escopo regional
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
Terraform
Se você estiver migrando recursos atuais habilitados para IAP para usar um
cliente OAuth gerenciado pelo Google, será necessário remover explicitamente os campos oauth2_client_id
e oauth2_client_secret
atualizando-os para um único espaço em branco.
Exemplo:
resource "google_compute_backend_service" "default" {
name = "tf-test-backend-service-external"
protocol = "HTTP"
load_balancing_scheme = "EXTERNAL"
iap {
oauth2_client_id = " "
oauth2_client_secret = " "
}
}
Os campos oauth2_client_id
e oauth2_client_secret
são opcionais. Se você estiver trabalhando com novos recursos ativados para IAP, ignore-os.
Para mais informações, consulte a documentação do Terraform.
Migrar recursos do Cloud Run com IAP ativado
Siga as etapas desta seção para migrar recursos do Cloud Run em que a IAP está ativada e um cliente OAuth 2.0 está configurado.
gcloud
Antes de continuar com as etapas, verifique se você tem uma versão atualizada da CLI gcloud. Para instruções sobre como instalar a CLI gcloud, consulte Instalar a gcloud CLI.
Para autenticar, use a Google Cloud CLI e execute o seguinte comando:
gcloud auth login
Clique no URL que aparece e faça login.
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 os aplicativos que você quer continuar protegendo com o IAP.
gcloud config set project PROJECT_ID
Execute o comando a seguir para buscar o ID do cliente OAuth 2.0 configurado.
Escopo global
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --global \ --format="value(iap.oauth2ClientId)"
Escopo regional
Salve o ID do cliente do comando anterior se quiser permitir o acesso programático.gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION_NAME \ --format="value(iap.oauth2ClientId)"
Para permitir o acesso programático do cliente OAuth 2.0, faça uma operação de leitura-atualização-gravação na API de configurações do IAP.
Escopo global
gcloud iap settings get \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME > settings.yaml
Escopo regional
gcloud iap settings get \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME \ --region=REGION_NAME > settings.yaml
Atualize o arquivo settings.yaml e adicione o ID do cliente OAuth 2.0 buscado anteriormente em
programmaticClients
, conforme mostrado no exemplo.accessSettings: oauthSettings: programmaticClients: - CLIENT_ID
Aplicar as novas configurações no aplicativo do Compute Engine
Escopo global
gcloud iap settings set settings.yaml \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME
Escopo regional
gcloud iap settings set settings.yaml \ --resource-type=compute \ --project=PROJECT_ID \ --service=BACKEND_SERVICE_NAME \ --region=REGION_NAME
Para migrar seus recursos, execute o comando com escopo global ou regional.
Escopo global
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --global \ --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
Escopo regional
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION_NAME \ --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
Para confirmar que o ID do cliente OAuth não está definido, execute o seguinte comando de escopo global ou regional. Depois de executar o comando, verifique a saída para garantir que o campo "ID do cliente OAuth" esteja vazio.
Escopo global
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --global
Escopo regional
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION_NAME
API
Execute o comando a seguir para buscar o ID do cliente OAuth 2.0 configurado.
Escopo global
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
Escopo regional
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
Execute o comando a seguir para buscar as configurações de IAP atuais em um arquivo
settings.json
.Escopo global
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
Escopo regional
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
Atualize o arquivo
settings.json
para adicionar o CLIENT_ID salvo anteriormente como um cliente programático.{ "accessSettings": { "oauthSettings": { "programmaticClients": [ "CLIENT_ID" ] }, }, }
Execute o comando a seguir para atualizar as configurações da IAP.
Escopo global
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "@settings.json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings"
Escopo regional
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d "@settings.json" \ "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings"
Execute o comando a seguir para preparar um arquivo
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true, "oauth2ClientId": " ", "oauth2ClientSecret": " " } } EOF
Execute o comando a seguir para migrar seus recursos.
Escopo global
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/global/backendServices/BACKEND_SERVICE_NAME"
Escopo regional
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/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"Para confirmar que o ID do cliente OAuth não está definido, execute o seguinte comando de escopo global ou regional. Depois de executar o comando, verifique a saída para garantir que o campo "ID do cliente OAuth" esteja vazio.
Escopo global
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
Escopo regional
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
Migrar recursos do Google Kubernetes Engine com IAP
Adicione o seguinte bloco do IAP à definição de recurso personalizado (CRD) do BackendConfig. Isso ativa o IAP com o cliente OAuth 2.0 gerenciado pelo Google.
apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
name: config-default
namespace: my-namespace
spec:
iap:
enabled: true
Usar um JWT de conta de serviço para autenticar na IAP
É possível se autenticar no IAP sem usar a API OAuth Admin descontinuada com um JWT de conta de serviço.
Receber a chave secreta de um cliente OAuth
Para acessar a chave secreta de um cliente OAuth sem usar a API OAuth Admin descontinuada, use o Secret Manager seguindo as instruções neste exemplo do Terraform: google_secret_manager_secret
.
Determinar se você está usando a API Admin OAuth
Para verificar se você está usando a API OAuth Admin, siga estas etapas.
No console Google Cloud , abra a página de APIs do IAP e selecione o projeto que você quer analisar.
Acessar a página das APIs IAPNa lista Selecionar gráficos, escolha Tráfego por método de API e clique em OK.
Na seção Métodos, procure métodos com o prefixo
google.cloud.iap.v1.IdentityAwareProxyOAuthService
, que indica que o projeto usa a API OAuth Admin.