Creazione di client OAuth per gli acquisti in-app in modo programmatico
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Questa pagina descrive come creare programmatically client OAuth da utilizzare con IAP, in modo da configurare IAP programmatically end-to-end per le applicazioni interne.
Limitazioni note
Esistono alcune limitazioni per i client OAuth creati tramite programmazione
con questa API:
I client OAuth creati dall'API possono essere modificati solo utilizzando l'API. Non puoi modificare un client OAuth tramite la Google Cloud console se è stato creato utilizzando l'API.
I client OAuth creati dall'API sono bloccati solo per l'utilizzo di IAP e quindi l'API non consente aggiornamenti all'URI di reindirizzamento o ad altri attributi.
L'API non opera sui client OAuth creati utilizzando la Google Cloud console.
Quando utilizzi l'API, sono consentiti solo 500 client OAuth per progetto.
I brand della schermata di consenso OAuth creati tramite API presentano limitazioni specifiche. Per ulteriori informazioni, consulta la sezione di seguito.
Informazioni sugli stati dei brand e del branding
La schermata di consenso OAuth,
che contiene informazioni sul branding per gli utenti, è nota come brand. I brand possono essere limitati agli utenti interni o pubblici. Un brand interno rende il flusso OAuth accessibile a un utente che appartiene alla stessa organizzazione Google Workspace del progetto. Un brand pubblico rende il flusso OAuth disponibile per chiunque su internet.
I brand possono essere creati manualmente o tramite programmazione tramite un'API. I brand creati con l'API vengono configurati automaticamente con impostazioni diverse:
Sono impostati come interni e devono essere impostati manualmente come pubblici, se lo si desidera
Sono impostati su uno stato "non esaminato" e deve essere attivata una revisione del brand
Per impostare manualmente un brand interno come pubblico:
Seleziona il progetto che preferisci dal menu a discesa.
Nella pagina Schermata di consenso OAuth, tieni presente che il Tipo di utente è impostato automaticamente su Interno. Per impostarlo su Pubblico, fai clic su
Modifica app. Saranno disponibili altre opzioni di configurazione.
In Tipo di applicazione, fai clic su Pubblica.
Per attivare la revisione di un brand creato con l'API non recensito:
Seleziona il progetto che preferisci dal menu a discesa.
Nella pagina Schermata per il consenso OAuth, inserisci le informazioni richieste e poi fai clic su Invia per la verifica.
Il processo di verifica può richiedere diverse settimane. Riceverai aggiornamenti via email nel corso dell'elaborazione.
Scopri di più sulla verifica. Mentre il processo di verifica è in corso, puoi comunque utilizzare l'applicazione all'interno della tua organizzazione Google Workspace.
Scopri di più sul comportamento della tua applicazione prima della verifica.
Prima di iniziare
Prima di poter creare un client, assicurati innanzitutto che al chiamante siano state concesse le seguenti autorizzazioni:
clientauthconfig.brands.list
clientauthconfig.brands.create
clientauthconfig.brands.get
clientauthconfig.clients.create
clientauthconfig.clients.listWithSecrets (obbligatorio solo per elencare i clienti OAuth con il segreto).
clientauthconfig.clients.getWithSecret
clientauthconfig.clients.delete
clientauthconfig.clients.update
Queste autorizzazioni sono incluse nei ruoli di base Editor (roles/editor) e Proprietario (roles/owner), tuttavia ti consigliamo di creare un ruolo personalizzato che contenga queste autorizzazioni e di concederlo all'utente che effettua la chiamata.
Configurare OAuth per gli acquisti in-app
I passaggi riportati di seguito descrivono come configurare la schermata per il consenso e creare un client OAuth per gli acquisti in-app.
Configurazione della schermata per il consenso
Verifica se hai già un brand utilizzando il comando
list. Puoi avere un solo brand per progetto.
gcloudiapoauth-brandslist
Di seguito è riportato un esempio di risposta gcloud, se il brand esiste:
I campi sopra indicati sono obbligatori quando chiami questa API:
supportEmail: l'indirizzo email dell'assistenza visualizzato nella schermata per il consenso OAuth.
Questo indirizzo email può essere l'indirizzo di un utente o un alias di Google Gruppi.
Anche se gli account di servizio hanno un indirizzo email, non sono indirizzi email validi e non possono essere utilizzati per creare un brand. Tuttavia, un account di servizio può essere il proprietario di un gruppo Google. Crea un nuovo gruppo Google o configura un gruppo esistente e imposta l'account di servizio desiderato come proprietario del gruppo.
applicationTitle: il nome dell'applicazione visualizzato nella schermata per il consenso OAuth.
Utilizza l'ID client (client_id nell'esempio precedente) e secret per attivare
IAP. Per ulteriori informazioni su come attivare l'IAP utilizzando le credenziali appena create, consulta i seguenti argomenti:
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 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)"]]