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