Como criar de maneira programática clientes OAuth para o IAP
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Esta página descreve como criar de maneira programática clientes OAuth para uso com o IAP, permitindo que você configure o IAP de maneira programática de ponta a ponta para aplicativos internos.
Limitações conhecidas
Há algumas limitações para clientes OAuth criados de maneira programática
usando essa API:
Os clientes OAuth criados pela API só podem ser modificados usando a API. Não
é possível modificar um cliente OAuth pelo console Google Cloud se ele foi criado
usando a API.
Os clientes OAuth criados pela API são bloqueados apenas para uso do IAP.
Portanto, a API não permite atualizações no URI de redirecionamento ou em outros
atributos.
A API não opera nos clientes OAuth criados usando o Google Cloud console.
Apenas 500 clientes OAuth são permitidos por projeto ao usar a API.
As marcas da tela de consentimento OAuth criadas pela API têm limitações específicas. Consulte a seção abaixo para mais informações.
Como entender as marcas e o estado da marca
A tela de consentimento OAuth, que contém informações de marca para os usuários, é conhecida como marca. As marcas podem ser limitadas a usuários internos ou públicos. Uma marca interna torna o
fluxo OAuth acessível para alguém que pertença à mesma organização do espaço de trabalho do Google
que o projeto. Uma marca pública disponibiliza o fluxo OAuth para qualquer pessoa na Internet.
As marcas podem ser criadas manual ou programaticamente por meio de uma API. As marcas criadas pela API são definidas automaticamente com configurações diferentes:
Elas são definidos como internas e devem ser definidas manualmente como públicas, se desejado
Elas são definidos como um estado "não revisado" e uma avaliação de marca deve ser acionada
Para definir manualmente uma marca interna como pública:
Na página tela de consentimento do OAuth, observe que o Tipo de usuário é definido automaticamente como Interno. Para defini-lo como Público, clique em Editar aplicativo. Mais opções de configuração estão disponíveis.
Em tipo de aplicativo, clique em Público.
Para acionar uma revisão de marca para uma marca criada pela API sem revisão:
Na página Tela de consentimento do OAuth, insira as informações necessárias e clique em Enviar para verificação.
O processo de verificação pode levar algumas semanas. Enviaremos atualizações do progresso por e-mail.
Saiba mais sobre a verificação. Enquanto o processo de verificação estiver em andamento, você ainda poderá usar o
aplicativo na sua organização do Google Workspace.
Saiba mais sobre como seu aplicativo se comportará antes de ser verificado.
Antes de começar
Antes de criar um cliente, primeiro verifique se o autor da chamada recebeu as seguintes permissões:
clientauthconfig.brands.list
clientauthconfig.brands.create
clientauthconfig.brands.get
clientauthconfig.clients.create
clientauthconfig.clients.listWithSecrets (somente obrigatório para listar clientes
OAuth com segredo).
clientauthconfig.clients.getWithSecret
clientauthconfig.clients.delete
clientauthconfig.clients.update
Essas permissões estão incluídas nos papéis básicos de editor (roles/editor) e de proprietário
(roles/owner). No entanto, em vez de usar esses papéis, recomendamos que você crie um
papel personalizado que contenha essas
permissões e o conceda ao autor da chamada.
Configurar o OAuth para IAP
Veja nas etapas a seguir como configurar a tela de consentimento e criar um cliente oauth para IAP.
Como configurar a tela de consentimento
Verifique se você já tem uma marca usando o
comando list. É possível
ter apenas uma marca por projeto.
gcloudiapoauth-brandslist
Veja um exemplo de resposta do gcloud, se a marca existir:
Os campos acima são obrigatórios ao chamar esta API:
supportEmail: o e-mail de suporte exibido na tela de consentimento do OAuth.
Esse endereço de e-mail pode ser um endereço de usuário ou um alias dos Grupos do Google.
Embora as contas de serviço também tenham um endereço de e-mail, elas não são endereços de e-mail
válidos e não podem ser usadas ao criar uma marca. No entanto,
uma conta de serviço pode ser a proprietária de um Grupo do Google. Crie
um novo Grupo do Google ou configure um grupo existente e defina a conta de
serviço desejada como proprietário do grupo.
applicationTitle: o nome do aplicativo exibido na tela de consentimento do
OAuth.
Use o ID do cliente (client_id no exemplo acima) e secret para ativar o
IAP. Consulte os tópicos a seguir para mais informações sobre
como ativar o IAP usando as credenciais que você acabou de criar:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-18 UTC."],[[["\u003cp\u003eThis guide outlines how to programmatically create OAuth clients for Identity-Aware Proxy (IAP) to enable end-to-end setup for internal applications.\u003c/p\u003e\n"],["\u003cp\u003eOAuth clients created via the API are specifically for IAP usage, cannot be modified through the Google Cloud console, and have limited attributes, such as redirect URIs that can not be updated.\u003c/p\u003e\n"],["\u003cp\u003eAPI-created brands for OAuth consent screens are initially set to internal and "unreviewed," requiring manual adjustment to public and submission for a brand review, which will halt the creation of new clients when changed.\u003c/p\u003e\n"],["\u003cp\u003eBefore creating clients, ensure the caller has the required permissions like \u003ccode\u003eclientauthconfig.brands.list\u003c/code\u003e and \u003ccode\u003eclientauthconfig.clients.create\u003c/code\u003e, and that you have a Google Group setup with a valid service account.\u003c/p\u003e\n"],["\u003cp\u003eThe API allows only 500 OAuth clients to be created per project.\u003c/p\u003e\n"]]],[],null,["# Programmatically creating OAuth clients for IAP\n\nThis page describes how to programmatically create OAuth clients for use with\nIAP, enabling you to set up IAP\nprogrammatically end-to-end for internal applications.\n\nKnown limitations\n-----------------\n\nThere are a few limitations for OAuth clients created programmatically\nusing this API:\n\n- OAuth clients created by the API can only be modified by using the API. You cannot modify an OAuth client via the Google Cloud console if it was created by using the API.\n- The OAuth clients created by the API are locked for IAP usage only, and therefore the API does not allow any updates to the redirect URI or other attributes.\n- The API does not operate on the OAuth clients that were created using the Google Cloud console.\n- Only 500 OAuth clients are allowed per project when using the API.\n- API-created OAuth consent screen brands have specific limitations. See the [section below](#branding) for more information.\n\nUnderstanding brands and branding state\n---------------------------------------\n\nThe [OAuth consent screen](https://console.cloud.google.com/apis/credentials/consent),\nwhich contains branding information for users, is known as a **brand**. Brands\ncan be limited to internal users or public users. An internal brand makes the\nOAuth flow accessible to someone who belongs to the same Google Workspace\norganization as the project. A public brand makes the OAuth flow available to\nanyone on the internet.\n\nBrands can be created manually or programmatically via an API. API-created\nbrands are automatically configured with different settings:\n\n- They're set to internal and must be manually set to public if desired\n- They're set to an \"unreviewed\" state and a brand review must be triggered\n\nTo manually set an internal brand to public:\n\n1. Open the [OAuth consent screen](https://console.cloud.google.com/apis/credentials/consent).\n2. Select your desired project from the drop-down menu.\n3. On the **OAuth consent screen** page, note that the **User Type** is automatically set to **Internal** . To set it to **Public** , click **Edit App**. More configuration options become available.\n4. Under **Application type** , click **Public**.\n\n| **Note:** When an API-created internal brand is set to public, the [`identityAwareProxyClients.create()`](/iap/docs/reference/rest/v1/projects.brands.identityAwareProxyClients/create) API will stop working, as it requires the brand to be set to internal. Therefore, you cannot create new OAuth clients via the API after an internal brand is made public.\n\nTo trigger a brand review for an unreviewed API-created brand:\n\n1. Open the [OAuth consent screen](https://console.cloud.google.com/apis/credentials/consent).\n2. Select your desired project from the drop-down menu.\n3. On the **OAuth consent screen** page, enter any required information, and then click **Submit for verification**.\n\nThe verification process may take up to several weeks, and you will receive\nemail updates as it progresses.\n[Learn more](https://support.google.com/cloud/answer/9110914?hl=en) about\nverification. While the verification process is ongoing, you can still use the\napplication within your Google Workspace organization.\n[Learn more](https://support.google.com/cloud/answer/7454865?hl=en_US) about how\nyour application will behave before it's verified.\n\nBefore you begin\n----------------\n\nBefore you can create a client, first ensure that the caller has been granted\nthe following permissions:\n\n- `clientauthconfig.brands.list`\n- `clientauthconfig.brands.create`\n- `clientauthconfig.brands.get`\n- `clientauthconfig.clients.create`\n- `clientauthconfig.clients.listWithSecrets` (Only required for listing OAuth clients with secret.)\n- `clientauthconfig.clients.getWithSecret`\n- `clientauthconfig.clients.delete`\n- `clientauthconfig.clients.update`\n\nThese permissions are included in the Editor (`roles/editor`) and Owner\n(`roles/owner`) [basic roles](/iam/docs/understanding-roles#basic),\nhowever we recommend that you create a\n[custom role](/iam/docs/understanding-roles#custom_roles) that contains these\npermissions and grant it to the caller instead.\n\nSet up OAuth for IAP\n--------------------\n\nThe following steps describe how to configure the consent screen and create and\noauth client for IAP.\n\n### Configuring consent screen\n\n1. Check if you already have an existing brand by using the\n [list](/sdk/gcloud/reference/iap/oauth-brands/list) command. You may\n only have one brand per project.\n\n ```bash\n gcloud iap oauth-brands list\n ```\n\n The following is an example gcloud response, if the brand exists: \n\n name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]\n applicationTitle: [APPLICATION_TITLE]\n supportEmail: [SUPPORT_EMAIL]\n orgInternalOnly: true\n\n | **Note:** If a brand already exists for a project and has been configured for external users (`orgInternalOnly: false`), but you want to restrict it to internal users, you must make that change manually from the [OAuth consent screen](https://console.cloud.google.com/auth/audience) in order to create OAuth clients with this API.\n2. If no brand exists, use the\n [create](/sdk/gcloud/reference/iap/oauth-brands/create) command:\n\n ```bash\n gcloud iap oauth-brands create --application_title=APPLICATION_TITLE --support_email=SUPPORT_EMAIL\n ```\n\n\n The above fields are required when calling this API:\n - `supportEmail`: The support email displayed on the OAuth consent screen.\n This email address can either be a user's address or a Google Groups alias.\n While service accounts also have an email address, they are not actual\n valid email addresses, and cannot be used when creating a brand. However,\n a service account can be the owner of a Google Group. Either create a\n new Google Group or configure an existing group and set the desired service\n account as an owner of the group.\n\n | **Note:** The user issuing the request must be an owner of the specified support email address.\n - `applicationTitle`: The application name displayed on OAuth consent\n screen.\n\n The response contains the following fields: \n\n name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]\n applicationTitle: [APPLICATION_TITLE]\n supportEmail: [SUPPORT_EMAIL]\n orgInternalOnly: true\n\n### Creating an IAP OAuth Client\n\n1. Use the create command to\n [create](/sdk/gcloud/reference/iap/oauth-clients/create) a client. Use\n the brand `name` from previous step.\n\n ```bash\n gcloud iap oauth-clients create projects/PROJECT_NUMBER/brands/BRAND-ID --display_name=NAME\n ```\n\n The response contains the following fields: \n\n name: projects/[PROJECT_NUMBER]/brands/[BRAND_NAME]/identityAwareProxyClients/[CLIENT_ID]\n secret: [CLIENT_SECRET]\n displayName: [NAME]\n\nUse the client ID (`client_id` in the above example) and `secret` to enable\nIAP. See the following topics for more information about\nenabling IAP using the credentials you've just created:\n\n- [IAP for Kubernetes Engine](/iap/docs/enabling-kubernetes-howto)\n- [IAP for App Engine](/iap/docs/app-engine-quickstart)\n- [IAP for Compute Engine](/iap/docs/enabling-compute-howto)\n- [IAP for Cloud Run](/iap/docs/enabling-cloud-run)"]]