如要發出經過驗證的 HTTP 要求,工作流程必須與具備適當憑證的服務帳戶 (以電子郵件地址識別) 建立關聯。如要進一步瞭解如何將身分與存取權管理 (IAM) 服務帳戶連結至工作流程,並授予該帳戶存取資源所需的權限,請參閱「授予工作流程權限,以便存取 Google Cloud 資源」一文。
驗證權杖
為確保安全,HTTP 要求預設不會包含身分或存取權存證。您必須明確地將驗證資訊加入工作流程定義。
如要在工作流程和需要這類驗證的 HTTP 目標之間進行驗證,工作流程會根據附加至工作流程的服務帳戶憑證,在授權標頭中使用憑證,並透過 HTTPS 將憑證傳送至目標服務。連線至 Cloud Run 函式或 Cloud Run 時,請使用ID 權杖 (OIDC)。如果是託管在 googleapis.com
上的 API,請使用存取權杖 (OAuth 2.0)。
如要在工作流程中提出經過驗證的要求,請根據您要呼叫的服務,採取下列其中一項做法:
外部 API:使用
Authorization
要求標頭,透過第三方 API 進行驗證。請參閱本文件中的「向外部 API 發出經過驗證的要求」一節。Google Cloud API:如果可用,請使用 Workflows 連接器,該連接器會自動使用工作流程的服務帳戶提供必要的驗證。如果您無法使用連接器,請使用含有 OAuth 2.0 的 HTTP 要求,連結至其他 API。 Google Cloud 任何以
.googleapis.com
為主機名稱結尾的 API 都會接受這項驗證方法。請參閱本文件中的「向 Google Cloud API 發出經過驗證的要求」一節。Cloud Run 函式或 Cloud Run:使用 OIDC 連線至 Cloud Run 或 Cloud Run 函式。請參閱本文件中的「向 Cloud Run 或 Cloud Run 函式提出要求」一節。
私人內部部署、Compute Engine、Google Kubernetes Engine (GKE) 或其他 Google Cloud 端點:使用 Identity-Aware Proxy (IAP) 搭配 OIDC,為端點強制執行存取控制政策。如需更多資訊,請參閱「呼叫私人內部、Compute Engine、GKE 或其他端點」,並瞭解如何透過使用者或服務帳戶,對 IAP 安全性資源進行驗證。
向外部 API 發出經過驗證的要求
如果您要整合第三方 API,請在 Authorization
要求標頭中加入執行驗證所需的憑證。舉例來說,在向服務提出要求的 Authorization: Bearer ID_TOKEN
標頭中加入 ID 符記。詳情請參閱 API 供應商的說明文件。
向 Google Cloud API 提出經過驗證的要求
工作流程的服務帳戶可以產生 OAuth 2.0 權杖,工作流程可使用這些權杖驗證任何 Google Cloud API。使用這種驗證方法時,工作流程會以關聯服務帳戶的身分進行驗證。如要使用 OAuth 2.0 通訊協定提出 HTTP 要求,請在指定網址後,將 auth
部分新增至工作流程定義的 args
部分。在這個範例中,系統會向 Compute Engine API 傳送要求,以便停止 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
鍵為選用項目,但可用於指定憑證的 OAuth 2.0 範圍。將 OAUTH_SCOPE
替換為字串或字串清單。系統也支援以空格和半形逗號分隔的字串。預設值為 https://www.googleapis.com/auth/cloud-platform
。
向 Cloud Run 函式或 Cloud Run 提出要求
向 Cloud Run 函式或 Cloud Run 提出要求時,請使用 OIDC 進行驗證。
如要使用 OIDC 提出 HTTP 要求,請在指定網址後,將 auth
部分新增至工作流程定義的 args
部分。在這個範例中,系統會傳送要求來叫用 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
鍵為選用項目,但可用於指定權杖的 OIDC 目標對象。根據預設,OIDC_AUDIENCE
會設為與 url
相同的值。
請注意,工作流程可以叫用 Cloud Run 函式或 Cloud Run 服務,但該服務的入站流量必須限制為內部流量。在這種設定下,網際網路無法存取您的服務,但工作流程可以存取。
如需更多資訊,請參閱「呼叫 Cloud Run 函式或 Cloud Run」。