Questa guida mostra come gestire le integrazioni di applicazioni basate su OAuth con Google Cloud.
A livello generale, per integrare un'applicazione basata su OAuth, devi:
- Crea un client OAuth.
- Crea una credenziale client OAuth.
- Nelle credenziali 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 e mitigazioni per la sicurezza di client e credenziali OAuth.
Una volta completati questi passaggi, l'applicazione basata su OAuth può accedere ai prodotti e ai datiGoogle Cloud .
Prima di iniziare
Devi aver configurato un'organizzazione Google Cloud .
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:
gcloud init
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.
Devi aver configurato un fornitore e un pool di identità per la forza lavoro 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 per la tua organizzazione, chiedi all'amministratore di concederti il ruolo IAM IAM OAuth Client Admin (roles/iam.oauthClientAdmin
) sul progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Gestisci client OAuth
Questa sezione mostra come gestire i client OAuth.
Creare 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 per rappresentare questo client OAuth.PROJECT_ID
: l'ID del progetto in cui hai creato il provider e il pool di identità della forza lavoro. 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 esempiohttps://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.googleapis.com/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 provider e il pool di identità della forza lavoro. 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 esempiohttps://myapp.com/signin-callback
.APP_OAUTH_CLIENT_ID
: un ID client per rappresentare questo client OAuth.
Dopo aver registrato l'applicazione, crea la credenziale del client OAuth e ottieni il segreto che l'applicazione OAuth utilizza per accedere aGoogle Cloud.
Elenca client OAuth
Per elencare i client OAuth registrati, esegui il comando seguente:
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.googleapis.com/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 questo 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 descriverePROJECT_ID
: l'ID del progetto in cui hai registrato l'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.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui hai registrato l'applicazione OAuthAPP_OAUTH_CLIENT_ID
: l'ID del client OAuth che vuoi descrivere
Aggiornare 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 aggiornarePROJECT_ID
: l'ID del progetto in cui hai registrato l'applicazione OAuthREDIRECT_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.googleapis.com/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 l'applicazione OAuthAPP_OAUTH_CLIENT_ID
: l'ID client OAuth per il client OAuth che vuoi aggiornareREDIRECT_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
.
Eliminare 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 eliminarePROJECT_ID
: l'ID del progetto in cui hai registrato l'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.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui hai registrato l'applicazione OAuthAPP_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.
Creare una credenziale client OAuth
Per creare una credenziale client OAuth, esegui il seguente 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 queste credenziali clientAPP_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.googleapis.com/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 l'applicazione OAuthAPP_OAUTH_CLIENT_ID
: l'ID client OAuth che puoi ottenere descrivendo l'applicazione client OAuth registrataAPP_OAUTH_CLIENT_CREDENTIAL_ID
: un ID che rappresenta queste credenziali client
Elenca le credenziali client OAuth
Per elencare le credenziali client OAuth, esegui il comando seguente:
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 credenzialiPROJECT_ID
: l'ID del progetto in cui hai registrato l'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.googleapis.com/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 l'applicazione OAuthAPP_OAUTH_CLIENT_ID
: l'ID client OAuth per cui elencare le credenziali
Descrivere una credenziale client OAuth
Per descrivere una credenziale client OAuth, esegui il comando seguente. Puoi ottenere il client secret ispezionando 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 OAuthAPP_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.googleapis.com/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 l'applicazione OAuthAPP_OAUTH_CLIENT_CREDENTIAL_ID
: l'URI di reindirizzamento per il client OAuthAPP_OAUTH_CLIENT_ID
: l'ID client OAuth che puoi ottenere descrivendo la registrazione dell'applicazione client
Nell'output, clientSecret
è il client secret. Questo è il segreto che l'applicazione
OAuth utilizza per accedere a Google Cloud.
Aggiornare 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.googleapis.com/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 l'applicazione OAuthAPP_OAUTH_CLIENT_CREDENTIAL_ID
: l'URI di reindirizzamento per il client OAuthAPP_OAUTH_CLIENT_ID
: l'ID client OAuth che puoi ottenere descrivendo la registrazione dell'applicazione client
Disattivare una credenziale client OAuth
Prima di poter eliminare una credenziale client OAuth, devi disattivarla. Per disattivare le credenziali client OAuth, esegui il seguente 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 l'applicazione OAuthAPP_OAUTH_CLIENT_ID
: l'ID client OAuthAPP_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.googleapis.com/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 l'applicazione OAuthAPP_OAUTH_CLIENT_ID
: l'ID client OAuthAPP_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 OAuthPROJECT_ID
: l'ID del progetto in cui hai registrato l'applicazione OAuthAPP_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.googleapis.com/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 l'applicazione OAuthAPP_OAUTH_CLIENT_ID
: l'ID delle credenziali clientAPP_OAUTH_CLIENT_CREDENTIAL_ID
: l'ID client OAuth