ApiAuthentication

API 呼叫需要驗證資訊。

JSON 表示法
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "apiKeyConfig": {
    object (ApiKeyConfig)
  },
  "oauthConfig": {
    object (OAuthConfig)
  },
  "serviceAgentIdTokenAuthConfig": {
    object (ServiceAgentIdTokenAuthConfig)
  },
  "serviceAccountAuthConfig": {
    object (ServiceAccountAuthConfig)
  },
  "bearerTokenConfig": {
    object (BearerTokenConfig)
  }
  // End of mutually exclusive fields.
}
欄位
驗證設定。以下列出互斥欄位。回應中最多會設定一個欄位:
apiKeyConfig

object (ApiKeyConfig)

選用。API 金鑰驗證的設定。

oauthConfig

object (OAuthConfig)

選用。OAuth 的設定。

serviceAgentIdTokenAuthConfig

object (ServiceAgentIdTokenAuthConfig)

選用。從 CES 服務代理程式產生的 ID 權杖驗證設定。

serviceAccountAuthConfig

object (ServiceAccountAuthConfig)

選用。服務帳戶驗證的設定。

bearerTokenConfig

object (BearerTokenConfig)

選用。不記名權杖驗證的設定。

互斥欄位的結尾。

ApiKeyConfig

使用 API 金鑰進行驗證的設定。

JSON 表示法
{
  "keyName": string,
  "apiKeySecretVersion": string,
  "requestLocation": enum (ApiKeyConfig.RequestLocation)
}
欄位
keyName

string

這是必要旗標,API 金鑰的參數名稱或標頭名稱。例如:如果 API 要求是「https://example.com/act?X-Api-Key=」,則「X-Api-Key」就是參數名稱。

apiKeySecretVersion

string

這是必要旗標,儲存 API 金鑰的 SecretManager 密鑰版本資源名稱。格式:projects/{project}/secrets/{secret}/versions/{version}

注意:請將 roles/secretmanager.secretAccessor 角色授予 CES 服務代理 service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com。

requestLocation

enum (ApiKeyConfig.RequestLocation)

這是必要旗標,要求中的金鑰位置。

ApiKeyConfig.RequestLocation

要求中 API 金鑰的位置。

列舉
REQUEST_LOCATION_UNSPECIFIED 不明。請勿使用這個值。
HEADER 代表 HTTP 標頭中的金鑰。
QUERY_STRING 代表查詢字串中的鍵。

OAuthConfig

使用 OAuth 驗證的設定。

JSON 表示法
{
  "oauthGrantType": enum (OAuthConfig.OauthGrantType),
  "clientId": string,
  "clientSecretVersion": string,
  "tokenEndpoint": string,
  "scopes": [
    string
  ]
}
欄位
oauthGrantType

enum (OAuthConfig.OauthGrantType)

這是必要旗標,OAuth 授權類型。

clientId

string

這是必要旗標,OAuth 供應商提供的用戶端 ID。

clientSecretVersion

string

這是必要旗標,儲存用戶端密鑰的 SecretManager 密鑰版本資源名稱。格式:projects/{project}/secrets/{secret}/versions/{version}

注意:請將 roles/secretmanager.secretAccessor 角色授予 CES 服務代理 service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com。

tokenEndpoint

string

這是必要旗標,OAuth 供應商的權杖端點,用於交換存取權杖。

scopes[]

string

選用。要授予的 OAuth 範圍。

OAuthConfig.OauthGrantType

OAuth 授權類型。系統僅支援用戶端憑證授權。

列舉
OAUTH_GRANT_TYPE_UNSPECIFIED 不明。預設值為 CLIENT_CREDENTIAL。
CLIENT_CREDENTIAL 代表用戶端憑證流程。

ServiceAgentIdTokenAuthConfig

這個類型沒有任何欄位。

使用服務代理程式產生的 ID 權杖進行驗證的設定。

ServiceAccountAuthConfig

使用自訂服務帳戶進行驗證的設定。

JSON 表示法
{
  "serviceAccount": string,
  "scopes": [
    string
  ]
}
欄位
serviceAccount

string

這是必要旗標,用於驗證的服務帳戶電子郵件地址。CES 會使用這個服務帳戶交換存取權杖,然後在要求的 Authorization 標頭中傳送存取權杖。

服務帳戶必須獲派 roles/iam.serviceAccountTokenCreator 角色,才能授予 CES 服務代理 service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com。

scopes[]

string

選用。要授予的 OAuth 範圍。如未指定,系統會使用預設範圍 https://www.googleapis.com/auth/cloud-platform。

BearerTokenConfig

使用不記名權杖進行驗證的設定。

JSON 表示法
{
  "token": string
}
欄位
token

string

這是必要旗標,不記名權杖。格式必須為 $context.variables.<name_of_variable>。