Inviare richieste autenticate da un flusso di lavoro

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:

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"
            }
          }
        }
      }
    ]
      
La chiave 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"
            }
          }
        }
      }
    ]
      
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 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.

Passaggi successivi