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:
External API—Gunakan header permintaan
Authorization
untuk melakukan autentikasi dengan API pihak ketiga. Dalam dokumen ini, lihat bagian Membuat permintaan terautentikasi ke API eksternal.Google Cloud API—Jika tersedia, gunakan konektor Workflow, yang otomatis menyediakan autentikasi yang diperlukan menggunakan akun layanan alur kerja. Jika Anda tidak dapat menggunakan konektor, gunakan permintaan HTTP dengan OAuth 2.0 agar terhubung dengan Google Cloud API lainnya. Setiap API yang diakhiri dengan nama host
.googleapis.com
akan menerima metode autentikasi ini. Dalam dokumen ini, lihat bagian Membuat permintaan terautentikasi ke Google Cloud API.Cloud Functions atau Cloud Run—Gunakan OIDC untuk terhubung dengan Cloud Run atau Cloud Functions. Dalam dokumen ini, lihat artikel Membuat permintaan ke Cloud Run atau Cloud Functions.
Private lokal, Compute Engine, Google Kubernetes Engine (GKE), atau endpoint Google Cloud lainnya —Gunakan Identity-Aware Proxy (IAP) dengan OIDC untuk menerapkan kebijakan kontrol akses untuk endpoint Anda. Untuk mengetahui informasi selengkapnya, baca Memanggil pribadi lokal, Compute Engine, GKE, atau endpoint lainnya dan pelajari cara melakukan autentikasi ke resource yang diamankan IAP dari akun pengguna atau akun layanan.
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" } } } } ]
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" } } } } ]
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.