Membuat permintaan terautentikasi dari alur kerja

Untuk membuat permintaan HTTP yang diautentikasi, alur kerja Anda harus dikaitkan dengan akun layanan (diidentifikasi dengan 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 karena alasan keamanan. Anda harus menambahkan informasi autentikasi secara eksplisit ke definisi alur kerja.

Untuk mengautentikasi antara Alur Kerja dan target HTTP yang memerlukan autentikasi tersebut, Alur Kerja menggunakan token di header otorisasi berdasarkan kredensial akun layanan yang dilampirkan ke alur kerja, dan mengirim token menggunakan HTTPS ke layanan target. Saat terhubung dengan fungsi Cloud Run 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 yang diautentikasi ke API eksternal

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

Membuat permintaan yang diautentikasi ke Google Cloud API

Akun layanan alur kerja dapat membuat token OAuth 2.0 yang dapat digunakan alur kerja untuk melakukan autentikasi ke Google Cloud API apa pun. Saat Anda menggunakan metode autentikasi ini, alur kerja akan diautentikasi sebagai akun layanan terkait. Untuk membuat permintaan HTTP menggunakan protokol OAuth 2.0, tambahkan bagian auth ke bagian args dari definisi alur kerja Anda, setelah Anda 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. Spasi dan string yang dipisahkan koma juga didukung. Secara default, nilai ditetapkan ke https://www.googleapis.com/auth/cloud-platform.

Membuat permintaan ke fungsi Cloud Run atau Cloud Run

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

Untuk membuat permintaan HTTP menggunakan OIDC, tambahkan bagian auth ke bagian args definisi alur kerja, setelah Anda menentukan URL. Dalam contoh ini, permintaan dikirim untuk memanggil fungsi 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"
            }
          }
        }
      }
    ]
      
Kunci audience bersifat opsional, tetapi dapat digunakan untuk menentukan audiens OIDC untuk token. Secara default, OIDC_AUDIENCE ditetapkan ke nilai yang sama dengan url.

Perhatikan bahwa Workflow dapat memanggil fungsi Cloud Run atau layanan Cloud Run yang memiliki traffic masuk yang dibatasi untuk traffic internal. Dengan konfigurasi ini, layanan Anda tidak dapat dijangkau dari internet, tetapi dapat dijangkau dari Alur Kerja.

Untuk informasi selengkapnya, lihat Memanggil fungsi Cloud Run atau Cloud Run.

Langkah selanjutnya