透過工作流程提出已驗證的要求

如要發出經過驗證的 HTTP 要求,工作流程必須與具備適當憑證的服務帳戶 (以電子郵件地址識別) 建立關聯。如要進一步瞭解如何將身分與存取權管理 (IAM) 服務帳戶連結至工作流程,並授予該帳戶存取資源所需的權限,請參閱「授予工作流程權限,以便存取 Google Cloud 資源」一文。

驗證權杖

為確保安全,HTTP 要求預設不會包含身分或存取權存證。您必須明確地將驗證資訊加入工作流程定義。

如要在工作流程和需要這類驗證的 HTTP 目標之間進行驗證,工作流程會根據附加至工作流程的服務帳戶憑證,在授權標頭中使用憑證,並透過 HTTPS 將憑證傳送至目標服務。連線至 Cloud Run 函式或 Cloud Run 時,請使用ID 權杖 (OIDC)。如果是託管在 googleapis.com 上的 API,請使用存取權杖 (OAuth 2.0)。

如要在工作流程中提出經過驗證的要求,請根據您要呼叫的服務,採取下列其中一項做法:

向外部 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」。

後續步驟