Faça pedidos autenticados a partir de um fluxo de trabalho

Para fazer pedidos HTTP autenticados, o seu fluxo de trabalho tem de estar associado a uma conta de serviço (identificada pelo respetivo endereço de email) que tenha as credenciais adequadas. Para mais informações sobre como anexar uma conta de serviço de gestão de identidade e de acesso (IAM) a um fluxo de trabalho e conceder-lhe as autorizações necessárias para aceder a recursos, consulte o artigo Conceda uma autorização de fluxo de trabalho para aceder a Google Cloud recursos.

Símbolos de autenticação

Por predefinição, os pedidos HTTP não contêm tokens de identidade nem de acesso por motivos de segurança. Tem de adicionar explicitamente informações de autenticação à definição do fluxo de trabalho.

Para autenticar entre os fluxos de trabalho e um destino HTTP que requer tal autenticação, os fluxos de trabalho usam um token no cabeçalho de autorização com base nas credenciais da conta de serviço anexada ao fluxo de trabalho e enviam o token através de HTTPS para o serviço de destino. Quando se ligar a funções do Cloud Run ou ao Cloud Run, use um token de ID (OIDC). Para APIs alojadas em googleapis.com, use uma chave de acesso (OAuth 2.0).

Para fazer um pedido autenticado a partir de um fluxo de trabalho, faça um dos seguintes passos, consoante o serviço que está a chamar:

Fazer pedidos autenticados a APIs externas

Se estiver a integrar uma API de terceiros, inclua um cabeçalho de pedido Authorization com as credenciais necessárias para realizar a autenticação. Por exemplo, inclua um token de ID num cabeçalho Authorization: Bearer ID_TOKEN no pedido ao serviço. Para mais informações, consulte a documentação do fornecedor da API.

Faça pedidos autenticados a Google Cloud APIs

A conta de serviço de um fluxo de trabalho pode gerar tokens OAuth 2.0 que o fluxo de trabalho pode usar para autenticar em qualquer API. Google Cloud Quando usa este método de autenticação, o fluxo de trabalho é autenticado como a respetiva conta de serviço associada. Para fazer um pedido HTTP através do protocolo OAuth 2.0, adicione uma secção auth à secção args da definição do fluxo de trabalho, depois de especificar o URL. Neste exemplo, é enviado um pedido à API Compute Engine para parar uma 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"
            }
          }
        }
      }
    ]
      
A chave scopes é opcional, mas pode ser usada para especificar âmbitos do OAuth 2.0 para o token. Substitua OAUTH_SCOPE por uma string ou uma lista de strings. As strings separadas por espaços e vírgulas também são suportadas. Por predefinição, o valor está definido como https://www.googleapis.com/auth/cloud-platform.

Faça pedidos a funções do Cloud Run ou ao Cloud Run

Quando fizer pedidos a funções do Cloud Run ou ao Cloud Run, use o OIDC para autenticar.

Para fazer um pedido HTTP através do OIDC, adicione uma secção auth à secção args da definição do fluxo de trabalho, depois de especificar o URL. Neste exemplo, é enviado um pedido para invocar uma função do 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"
            }
          }
        }
      }
    ]
      
A chave audience é opcional, mas pode ser usada para especificar o público-alvo do OIDC para o token. Por predefinição, OIDC_AUDIENCE está definido com o mesmo valor que url.

Tenha em atenção que é possível que os fluxos de trabalho invoquem funções do Cloud Run ou serviços do Cloud Run com entrada restrita ao tráfego interno. Com esta configuração, os seus serviços não são acessíveis a partir da Internet, mas podem ser acedidos a partir dos fluxos de trabalho.

Para mais informações, consulte o artigo Invocar funções do Cloud Run ou o Cloud Run.

O que se segue?