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:
API eksternal—Gunakan header permintaan
Authorization
untuk mengautentikasi dengan API pihak ketiga. Dalam dokumen ini, lihat Membuat permintaan yang diautentikasi ke API eksternal.Google Cloud API—Jika tersedia, gunakan konektor Alur Kerja, yang secara otomatis memberikan autentikasi yang diperlukan menggunakan akun layanan alur kerja. Jika Anda tidak dapat menggunakan konektor, gunakan permintaan HTTP dengan OAuth 2.0 untuk terhubung dengan Google Cloud API lainnya. Setiap API yang berakhir dengan nama host
.googleapis.com
akan menerima metode autentikasi ini. Dalam dokumen ini, lihat Membuat permintaan yang diautentikasi ke Google Cloud API.Cloud Run Functions atau Cloud Run—Gunakan OIDC untuk terhubung dengan Cloud Run atau Cloud Run Functions. Dalam dokumen ini, lihat Membuat permintaan ke Cloud Run atau fungsi Cloud Run.
Endpoint lokal pribadi, 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 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 layanan.
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" } } } } ]
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" } } } } ]
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.