Per effettuare richieste HTTP autenticate, il flusso di lavoro deve essere associato a un account di servizio (identificato dal relativo indirizzo email) che dispone delle credenziali appropriate. Per saperne di più sul collegamento di un account di servizio Identity and Access Management (IAM) a un flusso di lavoro e sulla concessione a tale account delle autorizzazioni necessarie per accedere alle risorse, consulta Concedere l'autorizzazione dei flussi di lavoro per l'accesso alle risorse Google Cloud.
Token di autenticazione
Per impostazione predefinita, le richieste HTTP non contengono token di identità o di accesso per motivi di sicurezza. Devi aggiungere esplicitamente le informazioni di autenticazione alla definizione del flusso di lavoro.
Per eseguire l'autenticazione tra Workflows e una destinazione HTTP che richiede questa autenticazione, Workflows utilizza un token nell'intestazione di autorizzazione in base alle credenziali dell'account di servizio associato al flusso di lavoro e invia il token tramite HTTPS al servizio di destinazione. Per la connessione con Cloud Functions o Cloud Run, utilizza un token ID (OIDC). Per le API ospitate su googleapis.com
, utilizza un token di accesso (OAuth 2.0).
Per effettuare una richiesta autenticata dall'interno di un flusso di lavoro, esegui una delle seguenti operazioni, a seconda del servizio che stai chiamando:
API esterne: utilizza un'intestazione della richiesta
Authorization
per eseguire l'autenticazione con un'API di terze parti. In questo documento, consulta Effettuare richieste autenticate alle API esterne.API Google Cloud: se disponibile, utilizza un connettore Workflows, che fornisce automaticamente l'autenticazione richiesta utilizzando l'account di servizio del flusso di lavoro. Se non riesci a utilizzare un connettore, utilizza una richiesta HTTP con OAuth 2.0 per connetterti ad altre API Google Cloud. Qualsiasi API che termina con un nome host
.googleapis.com
accetta questo metodo di autenticazione. In questo documento, vedi Effettuare richieste autenticate alle API Google Cloud.Cloud Functions o Cloud Run: utilizza OIDC per connetterti a Cloud Run o Cloud Functions. In questo documento, vedi Effettuare richieste a Cloud Run o Cloud Functions.
Private on-premise, Compute Engine, Google Kubernetes Engine (GKE) o altri endpoint Google Cloud: utilizza Identity-Aware Proxy (IAP) con OIDC per applicare i criteri di controllo dell'accesso dell'accesso ai tuoi endpoint. Per maggiori informazioni, consulta Richiamare private on-prem, Compute Engine, GKE o altri endpoint e scopri come eseguire l'autenticazione a una risorsa protetta da IAP da un account utente o di servizio.
Effettua richieste autenticate alle API esterne
Se integri un'API di terze parti, includi l'intestazione di una richiesta Authorization
con le credenziali necessarie per eseguire l'autenticazione. Ad esempio, includi un token ID in un'intestazione Authorization: Bearer ID_TOKEN
nella richiesta al servizio. Per ulteriori informazioni, consulta la documentazione del provider dell'API.
Effettua richieste autenticate alle API Google Cloud
L'account di servizio di un flusso di lavoro può generare token OAuth 2.0 che il flusso di lavoro può utilizzare per l'autenticazione in qualsiasi API Google Cloud. Quando utilizzi questo metodo di autenticazione, il flusso di lavoro si autentica come account di servizio associato. Per effettuare una richiesta HTTP con il protocollo OAuth 2.0, aggiungi una sezione auth
alla sezione args
della definizione del flusso di lavoro, dopo aver specificato
l'URL. In questo esempio, viene inviata una richiesta all'API Compute Engine per arrestare una VM:
YAML
- step_A: call: http.post args: url: https://compute.googleapis.com/compute/v1/projects/myproject1234/zones/us-central1-b/instances/myvm001/stop auth: type: OAuth2 scopes: OAUTH_SCOPE
JSON
[ { "step_A": { "call": "http.post", "args": { "url": "https://compute.googleapis.com/compute/v1/projects/myproject1234/zones/us-central1-b/instances/myvm001/stop", "auth": { "type": "OAuth2", "scopes": "OAUTH_SCOPE" } } } } ]
scopes
è facoltativa, ma può essere utilizzata per specificare gli ambiti OAuth 2.0 per il token. Sostituisci OAUTH_SCOPE
con una
stringa o un elenco di stringhe. Sono supportate anche stringhe di spazi
e separate da virgole. Per impostazione predefinita, il valore è impostato su https://www.googleapis.com/auth/cloud-platform
.
Effettua richieste a Cloud Functions o Cloud Run
Quando effettui richieste a Cloud Functions o Cloud Run, usa OIDC per l'autenticazione.
Per effettuare una richiesta HTTP utilizzando OIDC, aggiungi una sezione auth
alla sezione args
della definizione del flusso di lavoro, dopo aver specificato l'URL. In questo esempio, viene inviata una richiesta per richiamare una Cloud Function:
YAML
- step_A: call: http.get args: url: https://us-central1-project.cloudfunctions.net/functionA query: firstNumber: 4 secondNumber: 6 operation: sum auth: type: OIDC audience: OIDC_AUDIENCE
JSON
[ { "step_A": { "call": "http.get", "args": { "url": "https://us-central1-project.cloudfunctions.net/functionA", "query": { "firstNumber": 4, "secondNumber": 6, "operation": "sum" }, "auth": { "type": "OIDC", "audience": "OIDC_AUDIENCE" } } } } ]
audience
è facoltativa, ma può essere utilizzata per specificare il segmento di pubblico OIDC per il token. Per impostazione predefinita, OIDC_AUDIENCE
è impostato
sullo stesso valore di url
.
Tieni presente che Workflows può richiamare i servizi Cloud Functions o Cloud Run il cui traffico in entrata è limitato al traffico interno. Con questa configurazione, i servizi non sono raggiungibili da internet, ma possono essere raggiunti da Workflows.
Per ulteriori informazioni, consulta Richiamare Cloud Functions o Cloud Run.