Per effettuare richieste HTTP autenticate, il flusso di lavoro deve essere associato a una (identificato in base al relativo indirizzo email) che disponga dei e credenziali. 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 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 la sicurezza motivi. Devi aggiungere esplicitamente le informazioni di autenticazione al flusso di lavoro definizione di Kubernetes.
Per eseguire l'autenticazione tra Workflows e un target 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 utilizzando HTTPS al servizio di destinazione. Quando esegui la connessione con le funzioni Cloud Run 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 a seconda del servizio che stai chiamando:
API esterne: utilizza un'intestazione di richiesta
Authorization
per autenticarti con un'API di terze parti. In questo documento, vedi Effettuare richieste autenticate ad API esterne.API Google Cloud: se disponibile, utilizza un connettore di Workflows, che fornisce automaticamente l'autenticazione richiesta utilizzando l'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
.googleapis.com
accetta questo metodo di autenticazione. In questo documento, vedi Effettuare richieste autenticate alle API Google Cloud.Funzioni Cloud Run o Cloud Run: utilizza OIDC per connetterti con Cloud Run o con le funzioni Cloud Run. In questo documento, consulta Eseguire richieste a Cloud Run o alle funzioni Cloud Run.
On-premise privati, 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 per i tuoi endpoint. Per ulteriori informazioni, consulta Eseguire chiamate a endpoint privati on-premise, Compute Engine, GKE o di altro tipo e scopri come autenticarti in una risorsa protetta da IAP da un account utente o di servizio.
Effettuare richieste autenticate ad API esterne
Se stai integrando un'API di terze parti, includi una richiesta Authorization
con le credenziali necessarie per eseguire l'autenticazione. Per
includi un token ID in una
Intestazione Authorization: Bearer ID_TOKEN
nella richiesta a
il servizio. Per ulteriori informazioni, consulta la documentazione del provider API.
Effettuare 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ò
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 utilizzando il protocollo OAuth 2.0, aggiungi un auth
alla sezione args
della definizione del tuo flusso di lavoro, dopo che hai 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 scopi OAuth 2.0 per il token. Sostituisci OAUTH_SCOPE
con una stringa o un elenco di stringhe. Sono supportate anche le stringhe separate da spazi e virgole. Per impostazione predefinita, il valore è impostato su
https://www.googleapis.com/auth/cloud-platform
.
Invia richieste alle funzioni Cloud Run o a Cloud Run
Quando invii richieste alle funzioni Cloud Run o a 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,
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 richiami Funzioni Cloud Run o servizi Cloud Run in entrata limitato al traffico interno. Con questa configurazione, i servizi non sono accessibili da internet, ma possono essere raggiunti da Workflows.
Per ulteriori informazioni, consulta Richiamare funzioni Cloud Run o Cloud Run.