Inviare richieste autenticate da un flusso di lavoro

Per effettuare richieste HTTP autenticate, il flusso di lavoro deve essere associato a un account di servizio (identificato dal relativo 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 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 un target HTTP che richiede questo tipo di 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 all'interno di un flusso di lavoro, esegui una delle seguenti operazioni a seconda del servizio che stai chiamando:

Inviare richieste autenticate ad API esterne

Se stai integrando un'API di terze parti, includi un'intestazione di 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.

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ò utilizzare per autenticarsi a 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 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"
            }
          }
        }
      }
    ]
      
La chiave 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 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 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, 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"
            }
          }
        }
      }
    ]
      
La chiave 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 o servizi Cloud Run con l'accesso 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 Eseguire chiamate alle funzioni Cloud Run o a Cloud Run.

Passaggi successivi