Per effettuare richieste HTTP autenticate, il tuo flusso di lavoro deve essere associato a un account di serviziot (identificato dal suo indirizzo email) con le credenziali appropriate. Per saperne di più su come collegare un account di servizio Identity and Access Management (IAM) a un flusso di lavoro e concedergli le autorizzazioni necessarie per accedere alle risorse, consulta Concedi l'autorizzazione di un workflow per l'accesso alle Google Cloud risorse.
Token di autenticazione
Per impostazione predefinita, le richieste HTTP non contengono token di accesso o identità per motivi di sicurezza. Devi aggiungere esplicitamente le informazioni di autenticazione alla definizione del flusso di lavoro.
Per l'autenticazione tra Workflows e una destinazione HTTP che la richiede, Workflows utilizza un token nell'intestazione di autorizzazione in base alle credenziali del account di servizio collegato al flusso di lavoro e invia il token tramite HTTPS al servizio di destinazione. Quando ti connetti con
Cloud Run 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 l'autenticazione con un'API di terze parti. In questo documento, vedi Inviare richieste autenticate ad API esterne.Google Cloud API: se disponibile, utilizza un connettore Workflows, che fornisce automaticamente l'autenticazione richiesta utilizzando il account di servizio del flusso di lavoro. Se non puoi 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 di
.googleapis.com
accetta questo metodo di autenticazione. In questo documento, vedi Inviare richieste autenticate alle API. Google CloudCloud Run Functions o Cloud Run: utilizza OIDC per connetterti a Cloud Run o Cloud Run Functions. In questo documento, consulta Effettuare richieste a Cloud Run o Cloud Run Functions.
Endpoint privati on-premise, Compute Engine, Google Kubernetes Engine (GKE) o altri Google Cloud : utilizza Identity-Aware Proxy (IAP) con OIDC per applicare le norme di controllo dell'accesso per i tuoi endpoint. Per saperne di più, consulta Richiamare un endpoint privato on-premise, Compute Engine, GKE o altro e scopri come eseguire l'autenticazione a una risorsa protetta da IAP da un utente o service account.
Inviare richieste autenticate ad API esterne
Se stai integrando un'API di terze parti, includi un'intestazione della 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 saperne di più, consulta la documentazione del fornitore dell'API.
Invia richieste autenticate alle Google Cloud API
Il account di servizio di un flusso di lavoro può generare token OAuth 2.0 che il flusso di lavoro può
utilizzare per l'autenticazione a qualsiasi API Google Cloud . Quando utilizzi questo metodo di autenticazione, il flusso di lavoro esegue l'autenticazione come service account associato. Per effettuare una richiesta HTTP utilizzando 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 supportati anche spazi e stringhe separate da virgole. Per impostazione predefinita, il valore è impostato su
https://www.googleapis.com/auth/cloud-platform
.
Invia richieste a Cloud Run Functions o Cloud Run
Quando effettui richieste a Cloud Run Functions o Cloud Run, utilizza 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 funzione Cloud Run:
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 pubblico OIDC per il token. Per impostazione predefinita, OIDC_AUDIENCE
è impostato
sullo stesso valore di url
.
Tieni presente che è possibile che Workflows richiamino funzioni Cloud Run o servizi Cloud Run con ingresso limitato al traffico interno. Con questa configurazione, i tuoi servizi non sono raggiungibili da internet, ma possono essere raggiunti da Workflows.
Per saperne di più, consulta Richiamare Cloud Run Functions o Cloud Run.