Membuat permintaan terautentikasi dari alur kerja

Untuk membuat permintaan HTTP terautentikasi, alur kerja Anda harus dikaitkan dengan akun layanan (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 Memberi alur kerja izin 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 melakukan autentikasi antara Workflows dan target HTTP yang memerlukan autentikasi tersebut, Workflows menggunakan token di header otorisasi berdasarkan kredensial akun layanan yang dilampirkan ke alur kerja, dan mengirimkan token menggunakan HTTPS ke layanan target. Saat terhubung dengan Cloud Run 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 di header Authorization: Bearer ID_TOKEN dalam permintaan ke layanan. Untuk mengetahui informasi selengkapnya, lihat dokumentasi penyedia API.

Membuat permintaan terautentikasi ke Google Cloud API

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

Mengirim permintaan ke Cloud Run Functions 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 dari definisi alur kerja Anda, 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 Workflows dapat memanggil fungsi Cloud Run atau layanan 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 fungsi Cloud Run atau Cloud Run.

Langkah berikutnya