Questa guida descrive come scambiare credenziali esterne, codici di autorizzazione o token di aggiornamento con Google Cloud token di accesso utilizzando l'API Cloud OAuth (cloudoauth.googleapis.com) nelle integrazioni della federazione delle identità per la forza lavoro.
Prima di iniziare
- Configura un provider e un pool di identità per la forza lavoro. Per ulteriori informazioni, consulta Configurare la federazione delle identità per la forza lavoro.
- Registra un client OAuth e crea le credenziali client. Per saperne di più, vedi Gestire le applicazioni OAuth.
-
Abilita l'API Cloud OAuth.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
Metodi di autenticazione
L'API Cloud OAuth supporta due metodi di autenticazione client:
Autenticazione di base HTTP (consigliata): trasmetti l'ID client e il client secret codificati in Base64 nell'intestazione
Authorization:-H "Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)"
Parametri del corpo della richiesta: passa i parametri
client_ideclient_secretnel corpo della richiesta.
Scambiare un codice di autorizzazione con token
Per scambiare un codice di autorizzazione Google Cloud con un token di accesso e un
token di aggiornamento, invia una richiesta HTTP POST:
Endpoint con ambito a livello di organizzazione (single-tenant)
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Authorization: Basic BASE64_ENCODED_CREDENTIALS" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=authorization_code" \ --data-urlencode "code=AUTHORIZATION_CODE" \ --data-urlencode "redirect_uri=REDIRECT_URI"
Credenziali del corpo della richiesta
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=authorization_code" \ --data-urlencode "code=AUTHORIZATION_CODE" \ --data-urlencode "redirect_uri=REDIRECT_URI" \ --data-urlencode "client_id=CLIENT_ID" \ --data-urlencode "client_secret=CLIENT_SECRET"
Sostituisci quanto segue:
BASE64_ENCODED_CREDENTIALS: la stringa con codifica Base64 diCLIENT_ID:CLIENT_SECRET.AUTHORIZATION_CODE: il codice di autorizzazione emesso da Google Cloud.REDIRECT_URI: l'URI di reindirizzamento configurato sul client OAuth.ORGANIZATION_ID: l'ID organizzazione numerico Google Cloud.CLIENT_ID: il tuo ID client OAuth registrato.CLIENT_SECRET: il client secret OAuth.
Aggiornare un token di accesso
Quando un token di accesso scade, utilizza il tipo di concessione refresh_token per ottenere un nuovo
token di accesso di breve durata:
Endpoint con ambito a livello di organizzazione (single-tenant)
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Authorization: Basic BASE64_ENCODED_CREDENTIALS" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=refresh_token" \ --data-urlencode "refresh_token=REFRESH_TOKEN" \ --data-urlencode "redirect_uri=REDIRECT_URI"
Sostituisci REFRESH_TOKEN con il token di aggiornamento restituito in precedenza
dall'endpoint del token.
Campi di risposta del token
Quando uno scambio di token ha esito positivo, l'API Cloud OAuth restituisce uno stato HTTP 200 OK contenente i seguenti campi:
| Campo | Tipo | Descrizione |
|---|---|---|
access_token |
string |
Il token di accesso OAuth 2.0 emesso dall'API Cloud OAuth per chiamare le API Google Cloud . |
refresh_token |
string |
Il token di aggiornamento utilizzato per ottenere nuovi token di accesso alla scadenza del token attuale. |
expires_in |
integer |
La durata rimanente del token di accesso in secondi (in genere 3599). |
token_type |
string |
Il tipo di token (ad esempio, Bearer). |
scope |
string |
L'elenco degli ambiti associati al token. |
id_token |
string |
Il token ID OIDC contenente le rivendicazioni di identità autenticata. |
Per informazioni sulle risposte di errore restituite dall'API Cloud OAuth, consulta Errori di scambio di token dell'API Cloud OAuth.
Passaggi successivi
- Recuperare le informazioni utente con l'API Cloud OAuth
- Recuperare i gruppi aziendali con l'API Cloud OAuth
- Panoramica dell'API Cloud OAuth
- Gestire le applicazioni OAuth per la federazione delle identità della forza lavoro
- Riferimento API REST Cloud OAuth