Membuat permintaan terautentikasi dari alur kerja

Untuk membuat permintaan HTTP yang diautentikasi, alur kerja Anda harus dikaitkan dengan akun layanan (yang diidentifikasi berdasarkan alamat emailnya) yang memiliki kredensial yang sesuai. Untuk mengetahui informasi selengkapnya tentang cara melampirkan akun layanan Identity and Access Management (IAM) ke alur kerja, dan memberikan izin yang diperlukan untuk mengakses resource, lihat Memberikan izin alur kerja untuk mengakses resource Google Cloud.

Token autentikasi

Secara default, permintaan HTTP tidak berisi token identitas atau akses untuk alasan keamanan. Anda harus secara eksplisit menambahkan informasi autentikasi ke definisi alur kerja.

Untuk mengautentikasi antara Workflows dan target HTTP yang memerlukan autentikasi tersebut, Workflows menggunakan token di header otorisasi berdasarkan kredensial akun layanan yang terkait dengan alur kerja, dan mengirimkan token tersebut menggunakan HTTPS ke layanan target. Saat terhubung dengan Cloud Functions atau Cloud Run, gunakan token ID (OIDC). Untuk API yang dihosting di googleapis.com, gunakan token akses (OAuth 2.0).

Untuk membuat permintaan terautentikasi dari dalam alur kerja, lakukan salah satu hal berikut, bergantung pada layanan yang Anda panggil:

Membuat permintaan terautentikasi ke API eksternal

Jika Anda mengintegrasikan API pihak ketiga, sertakan header permintaan Authorization dengan kredensial yang diperlukan untuk melakukan autentikasi. Misalnya, sertakan token ID dalam header Authorization: Bearer ID_TOKEN dalam permintaan ke layanan. Untuk mengetahui informasi selengkapnya, baca dokumentasi penyedia API.

Membuat permintaan terautentikasi ke Google Cloud API

Akun layanan alur kerja dapat menghasilkan token OAuth 2.0 yang dapat digunakan alur kerja tersebut untuk melakukan autentikasi ke Google Cloud API apa pun. Jika Anda menggunakan metode autentikasi ini, alur kerja akan mengautentikasi sebagai akun layanan terkait. Untuk membuat permintaan HTTP menggunakan protokol OAuth 2.0, tambahkan bagian auth ke bagian args dalam definisi alur kerja Anda, setelah menentukan URL. Dalam contoh ini, permintaan dikirim ke Compute Engine API untuk menghentikan 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"
            }
          }
        }
      }
    ]
      
Kunci scopes bersifat opsional, tetapi dapat digunakan untuk menentukan cakupan OAuth 2.0 untuk token. Ganti OAUTH_SCOPE dengan string atau daftar string. String yang dipisahkan koma dan spasi juga didukung. Secara default, nilai ini ditetapkan ke https://www.googleapis.com/auth/cloud-platform.

Membuat permintaan ke Cloud Functions atau Cloud Run

Saat membuat permintaan ke Cloud Functions atau Cloud Run, gunakan OIDC untuk melakukan autentikasi.

Untuk membuat permintaan HTTP menggunakan OIDC, tambahkan bagian auth ke bagian args pada definisi alur kerja, setelah Anda menentukan URL. Dalam contoh ini, permintaan dikirim untuk memanggil Cloud Function:

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"
            }
          }
        }
      }
    ]
      
Kunci audience bersifat opsional, tetapi dapat digunakan untuk menentukan audience OIDC untuk token tersebut. Secara default, OIDC_AUDIENCE ditetapkan ke nilai yang sama dengan url.

Perhatikan bahwa Workflows dapat memanggil layanan Cloud Functions atau Cloud Run yang memiliki ingress yang dibatasi untuk traffic internal. Dengan konfigurasi ini, layanan Anda tidak dapat dijangkau dari internet, tetapi dapat dijangkau dari Workflows.

Untuk mengetahui informasi selengkapnya, lihat Memanggil Cloud Functions atau Cloud Run.

Langkah selanjutnya