Esta página explica quando e como personalizar uma configuração do 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 da mesma organização ao acessar aplicativos com IAP por um navegador.
Quando usar uma configuração OAuth personalizada
É necessário usar uma configuração OAuth personalizada para fazer o seguinte:
- Permitir o acesso a apps com IAP para usuários de fora da organização.
- Para mostrar as informações da sua marca durante a autenticação.
- Para ativar o acesso programático ao seu aplicativo.
Ao personalizar a configuração do OAuth, você precisa configurar a tela de consentimento. Para isso, as informações de branding do seu aplicativo precisam passar pelo processo de verificação do Google. Para mais informações sobre o processo de verificação, consulte Como configurar a tela de consentimento 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 o cliente OAuth gerenciado pelo Google e o personalizado
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 interno | Parceiros internos e externos |
Brand | Google Cloud marca | Marca de propriedade do cliente |
Configuração do OAuth | Google configurado | Cliente configurado |
Credenciais do OAuth | Gerenciada 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 do cliente OAuth
App Engine
Console
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
-
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 que você quer conceder acesso.
- No painel à direita, clique em Adicionar principal.
-
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 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.
- Selecione Cloud IAP > Usuário do app da Web protegido pelo IAP na lista suspensa Papéis.
- Clique em Salvar.
Ativando o IAP
-
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,
- 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
Before you set up your project and IAP, you need an up-to-date version of gcloud CLI. For instructions on how to install the gcloud CLI, see Install the gcloud CLI.
-
To authenticate, use the Google Cloud CLI and run the following command.
gcloud auth login
- To sign in, follow the URL that appears.
- After you sign in, copy the verification code that appears and paste it in the command line.
-
Run the following command to specify the project that contains the resource that you want to protect with IAP.
gcloud config set project PROJECT_ID
- Follow the instructions in Creating OAuth clients for IAP to configure the OAuth consent screen and create the OAuth client.
- Save the OAuth client ID and secret.
-
To enable IAP, run the following command.
gcloud iap web enable \ --oauth2-client-id=CLIENT_ID \ --oauth2-client-secret=CLIENT_SECRET \ --resource-type=app-engine
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
Siga as instruções em Como criar clientes OAuth para IAP para configurar a tela de consentimento do OAuth e criar o cliente OAuth.
Salve o ID e a chave secreta do cliente OAuth.
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
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 do IAM
roles/iap.httpsResourceAccessor
. Saiba mais sobre como gerenciar papéis e permissões.
Compute Engine
Console
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.
If you are running GKE clusters version 1.24 or later, you can configure
IAP and GKE by using the Kubernetes Gateway API. To do so, complete
the following steps and then follow the instructions in
Configure IAP.
Do not configure BackendConfig
.
Setting up IAP access
-
Go to the
Identity-Aware Proxy page.
Go to the Identity-Aware Proxy page - Select the project you want to secure with IAP.
-
Select the checkbox next to the resource you want to grant access to.
If you don't see a resource, ensure that the resource is created and that the BackendConfig Compute Engine ingress controller is synced.
To verify that the backend service is available, run the following gcloud command:
gcloud compute backend-services list
- On the right side panel, click Add principal.
-
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.
- Select Cloud IAP > IAP-secured Web App User from the Roles drop-down list.
- Click Save.
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.
-
To authenticate, use the Google Cloud CLI and run the following command.
gcloud auth login
- To sign in, follow the URL that appears.
- After you sign in, copy the verification code that appears and paste it in the command line.
-
Run the following command to specify the project that contains the resource that you want to protect with IAP.
gcloud config set project PROJECT_ID
- Follow the instructions in Creating OAuth clients for IAP. to configure the OAuth consent screen and create the OAuth client.
- Save the OAuth client ID and secret.
-
To enable IAP, run either the globally or regionally scoped command.
Global scope Regional scopegcloud compute backend-services update BACKEND_SERVICE_NAME \ --global \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION_NAME \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
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
Follow the instructions in Creating OAuth clients for IAP to configure the OAuth consent screen and create the OAuth client.
Save the OAuth client ID and secret.
Run the following command to prepare a
settings.json
file.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
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://compute.googleapis.com/compute/v1/projects/PROJECT_ID/REGION/backendServices/BACKEND_SERVICE_NAME"
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.
Cloud Run
Console
Se você ainda não tiver configurado a tela de consentimento do OAuth do seu projeto, será solicitado que você faça isso. Para configurar a tela de consentimento do OAuth, consulte Como configurar a tela de consentimento do OAuth.
Como configurar o acesso do IAP
- Abra a página Identity-Aware Proxy.
Acessar a página 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 em 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: 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
Selecione Cloud IAP > Usuário do app da Web protegido pelo IAP na lista Papéis.
Clique em Salvar.
Ativando o IAP
- 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 IAP para ativar o IAP em um recurso.
- Na janela Ativar IAP que aparece, 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.
Para autorizar o IAP a enviar tráfego para o serviço de back-end do Cloud Run, siga as instruções em Adicionar principais a um serviço para adicionar o seguinte princípio e papel.
- Principal:
service-[PROJECT-NUMBER]@gcp-sa-iap.iam.gserviceaccount.com
- Função: Chamador do Cloud Run
- Principal:
gcloud
- Follow the instructions in Creating OAuth clients for IAP to configure the OAuth consent screen and create the OAuth client.
- Save the OAuth client ID and secret.
- If you have not previously done so, create a service account by running the following command. If you previously created a service account, running the command does not create duplicate service accounts.
gcloud beta services identity create \ --service=iap.googleapis.com --project=PROJECT_ID
- Grant the invoker permission to the service account, created in the previous step, by running the following command.
gcloud run services add-iam-policy-binding SERVICE-NAME \ --member='serviceAccount:service-PROJECT-NUMBER@gcp-sa-iap.iam.gserviceaccount.com' \ --role='roles/run.invoker'
Enable IAP by running either the globally or regionally scoped command, depending on whether your load balancer backend service is global or regional. Use the OAuth client ID and secret from the previous step.
Global scope
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --global \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
Regional scope
Replace the following:gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION_NAME \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
- BACKEND_SERVICE_NAME: the name of the backend service.
- CLIENT_ID: the OAuth client ID, from the previous step.
- CLIENT_SECRET: the OAuth client secret, from the previous step.
- REGION_NAME: the region in which you want to enable IAP.
After you enable IAP, you can use the Google Cloud CLI to modify the IAP access policy using the Identity and Access Management role roles/iap.httpsResourceAccessor
. See Managing roles and permissions for more information.