Gestire l'applicazione OAuth

Puoi creare, visualizzare, aggiornare ed eliminare i client OAuth e le credenziali client per integrare le tue applicazioni basate su OAuth con Google Cloud. La registrazione di un client OAuth consente agli utenti della forza lavoro federata di accedere alle tue applicazioni e alle risorse Google Cloud .

In linea generale, per integrare un'applicazione basata su OAuth, devi:

  1. Crea un client OAuth.
  2. Crea una credenziale client OAuth.
  3. Nella credenziale client OAuth, ottieni il client secret. Per scoprire di più sui rischi associati all'archiviazione e all'accesso al client secret e sulle strategie che possono contribuire a mitigarli, consulta Rischi per la sicurezza e mitigazioni delle credenziali e del client OAuth.

Dopo aver completato questi passaggi, l'applicazione basata su OAuth può accedere ai prodotti e ai datiGoogle Cloud . Per le integrazioni di Looker, puoi reindirizzare gli utenti all'endpoint di autorizzazione (https://auth.cloud.google/authorize) per ottenere un codice di autorizzazione e poi utilizzare le credenziali client OAuth registrate per scambiare codici di autorizzazione o token di aggiornamento con l'API Cloud OAuth.

Prima di iniziare

  1. Devi aver configurato un'organizzazione Google Cloud .

  2. Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:

    gcloud init

  3. Devi aver configurato un pool di identità della forza lavoro e un provider nell'organizzazione in cui registrerai l'applicazione OAuth. Scopri come configurare la federazione delle identità per la forza lavoro per Microsoft Entra ID, Okta e altri provider OIDC e SAML 2.0.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per registrare un'applicazione OAuth e gestirne le credenziali per la tua organizzazione, chiedi all'amministratore di concederti il ruolo IAM Amministratore client OAuth IAM (roles/iam.oauthClientAdmin) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per registrare un'applicazione OAuth e gestirne le credenziali per la tua organizzazione. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per registrare un'applicazione OAuth e gestire le relative credenziali per la tua organizzazione, sono necessarie le seguenti autorizzazioni:

  • iam.oauthClients.create
  • iam.oauthClients.delete
  • iam.oauthClients.get
  • iam.oauthClients.list
  • iam.oauthClients.update
  • iam.oauthClientCredentials.create
  • iam.oauthClientCredentials.delete
  • iam.oauthClientCredentials.get
  • iam.oauthClientCredentials.list
  • iam.oauthClientCredentials.update

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Gestisci client OAuth

Questa sezione mostra come gestire i client OAuth.

Crea un client OAuth

Per creare un client OAuth:

gcloud

gcloud iam oauth-clients create APP_OAUTH_CLIENT_ID \
    --project=PROJECT_ID \
    --location=global \
    --client-type="CONFIDENTIAL_CLIENT" \
    --display-name="My OAuth application" \
    --description="An application registration for MyApp" \
    --allowed-scopes="https://www.googleapis.com/auth/cloud-platform" \
    --allowed-redirect-uris="REDIRECT_URI" \
    --allowed-grant-types="authorization_code_grant"

Sostituisci quanto segue:

  • APP_OAUTH_CLIENT_ID: un ID client che rappresenta questo client OAuth.
  • PROJECT_ID: l'ID del progetto in cui hai creato il pool di identità della forza lavoro e il provider. Il progetto deve essere creato nell'organizzazione in cui sono stati creati il pool di forza lavoro e il provider.
  • REDIRECT_URI: l'URI di reindirizzamento per l'applicazione OAuth, ad esempio https://myapp.com/signin-callback.

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  -d "{ \
        'allowedGrantTypes': ['AUTHORIZATION_CODE_GRANT'], \
        'allowedRedirectUris': ['REDIRECT_URI'], \
        'allowedScopes': ['https://www.googleapis.com/auth/cloud-platform'], \
        'clientType': 'CONFIDENTIAL_CLIENT', \
        'description': 'My OAuth client description', \
        'disabled': false, \
        'displayName': 'My OAuth client'}" \
  https://iam./v1/projects/PROJECT_ID/locations/global/oauthClients\?oauthClientId\=APP_OAUTH_CLIENT_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai creato il pool di identità della forza lavoro e il provider. Il progetto deve essere creato nell'organizzazione in cui sono stati creati il pool di forza lavoro e il provider.
  • REDIRECT_URI: l'URI di reindirizzamento per l'applicazione OAuth, ad esempio https://myapp.com/signin-callback.
  • APP_OAUTH_CLIENT_ID: un ID client che rappresenta questo client OAuth.

Dopo aver registrato l'applicazione, crei la credenziale client OAuth e ottieni il secret utilizzato dall'applicazione OAuth per accedere aGoogle Cloud.

Elenca client OAuth

Per elencare i client OAuth registrati, esegui questo comando:

gcloud

gcloud iam oauth-clients list \
    --project=PROJECT_ID \
    --location=global

REST

curl \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam./v1/projects/PROJECT_ID/locations/global/oauthClients

Sostituisci PROJECT_ID con l'ID del progetto in cui sono registrate le tue applicazioni OAuth.

Descrivi un client OAuth

Per descrivere un client OAuth, esegui il seguente comando:

gcloud

gcloud iam oauth-clients describe APP_OAUTH_CLIENT_ID \
    --project PROJECT_ID \
    --location global

Sostituisci quanto segue:

  • APP_OAUTH_CLIENT_ID: l'ID del client OAuth che vuoi descrivere
  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth

REST

curl \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam./v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth
  • APP_OAUTH_CLIENT_ID: l'ID del client OAuth che vuoi descrivere

Aggiorna un client OAuth

Per aggiornare un client OAuth, esegui questo comando.

gcloud

gcloud iam oauth-clients update APP_OAUTH_CLIENT_ID \
    --project=PROJECT_ID \
    --location=global \
    --allowed-redirect-uris="REDIRECT_URI"

Sostituisci quanto segue:

  • APP_OAUTH_CLIENT_ID: l'ID client OAuth per il client OAuth che vuoi aggiornare
  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth
  • REDIRECT_URI: l'URI di reindirizzamento per l'applicazione OAuth

Per aggiornare altri campi, utilizza i flag elencati in gcloud iam oauth-clients update.

REST

curl -d'{"allowedRedirectUris":"REDIRECT_URI"}' \
  -H "Content-Type: application/json" -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam./v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID?update_mask=allowed_redirect_uris

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth
  • APP_OAUTH_CLIENT_ID: l'ID client OAuth per il client OAuth che vuoi aggiornare
  • REDIRECT_URI: l'URI di reindirizzamento per il client OAuth

Per aggiornare altri campi, imposta update_mask sui nomi dei campi elencati in gcloud iam oauth-clients update.

Elimina un client OAuth

Per eliminare un client OAuth, esegui questo comando:

gcloud

gcloud iam oauth-clients delete APP_OAUTH_CLIENT_ID \
    --project PROJECT_ID \
    --location global

Sostituisci quanto segue:

  • APP_OAUTH_CLIENT_ID: l'ID client OAuth da eliminare
  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth

REST

curl -X DELETE \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam./v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth
  • APP_OAUTH_CLIENT_ID: l'ID client OAuth da eliminare

Gestisci le credenziali client OAuth

Questa sezione mostra come gestire le credenziali client OAuth per il client OAuth.

Crea una credenziale client OAuth

Per creare una credenziale client OAuth, esegui questo comando:

gcloud

gcloud iam oauth-clients credentials create APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --display-name='My OAuth client credential' \
    --location='global'

Sostituisci quanto segue:

  • APP_OAUTH_CLIENT_CREDENTIAL_ID: un ID che rappresenta questa credenziale client
  • APP_OAUTH_CLIENT_ID: l'ID client OAuth che puoi ottenere descrivendo l'applicazione client OAuth registrata

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  -d "{'disabled': false, 'displayName': 'My OAuth client credential'}" \
  https://iam./v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials\?oauthClientCredentialId=APP_OAUTH_CLIENT_CREDENTIAL_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth
  • APP_OAUTH_CLIENT_ID: l'ID client OAuth che puoi ottenere descrivendo l'applicazione client OAuth registrata
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: un ID che rappresenta questa credenziale client

Elenca le credenziali client OAuth

Per elencare le credenziali client OAuth, esegui questo comando:

gcloud

gcloud iam oauth-clients credentials list \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --project=PROJECT_ID \
    --location=global

Sostituisci quanto segue:

  • APP_OAUTH_CLIENT_ID: l'ID client OAuth per cui elencare le credenziali
  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth

REST

curl \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam./v1/projects/$PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth
  • APP_OAUTH_CLIENT_ID: l'ID client OAuth per cui elencare le credenziali

Descrivi una credenziale client OAuth

Per descrivere una credenziale client OAuth, esegui il seguente comando. Puoi ottenere il client secret esaminando l'output.

gcloud

gcloud iam oauth-clients credentials describe APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --location='global'

Sostituisci quanto segue:

  • APP_OAUTH_CLIENT_CREDENTIAL_ID: l'URI di reindirizzamento per il client OAuth
  • APP_OAUTH_CLIENT_ID: l'ID client OAuth che puoi ottenere descrivendo la registrazione dell'applicazione client

REST

curl \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
https://iam./v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: l'URI di reindirizzamento per il client OAuth
  • APP_OAUTH_CLIENT_ID: l'ID client OAuth che puoi ottenere descrivendo la registrazione dell'applicazione client

Nell'output, clientSecret è il client secret. Questo è il secret utilizzato dall'applicazione OAuth per accedere a Google Cloud.

Aggiorna una credenziale client OAuth

Per aggiornare una credenziale client OAuth, esegui questo comando:

gcloud

gcloud iam oauth-clients credentials update APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --client-id=APP_OAUTH_CLIENT_ID \
    --display-name="My new credential name" \
    --location=global

REST

curl -d'{"displayName":"My new credential name"}' -X PATCH \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam./v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID?update_mask=display_name

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: l'URI di reindirizzamento per il client OAuth
  • APP_OAUTH_CLIENT_ID: l'ID client OAuth che puoi ottenere descrivendo la registrazione dell'applicazione client

Disattiva una credenziale client OAuth

Prima di poter eliminare una credenziale client OAuth, devi disattivarla. Per disattivare la credenziale client OAuth, esegui questo comando:

gcloud

gcloud iam oauth-clients credentials update APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --disabled \
    --project=PROJECT_ID \
    --location=global

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth
  • APP_OAUTH_CLIENT_ID: l'ID client OAuth
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: l'ID delle credenziali client da disattivare

REST

curl -d'{"disabled":"true"}' \
  -H "Content-Type: application/json" -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam./v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID?update_mask=disabled

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth
  • APP_OAUTH_CLIENT_ID: l'ID client OAuth
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: l'ID delle credenziali client da disattivare

Elimina una credenziale client OAuth

Per eliminare una credenziale client OAuth, esegui questo comando:

gcloud

gcloud iam oauth-clients credentials delete APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --project=PROJECT_ID \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --location=global

Sostituisci quanto segue:

  • APP_OAUTH_CLIENT_CREDENTIAL_ID: l'ID client OAuth
  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth
  • APP_OAUTH_CLIENT_ID: l'ID delle credenziali client

REST

curl -X DELETE \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam./v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui hai registrato la tua applicazione OAuth
  • APP_OAUTH_CLIENT_ID: l'ID delle credenziali client
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: l'ID client OAuth

Passaggi successivi