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.
}
フィールド
認証構成。以下は、相互に排他的なフィールドのリストです。レスポンスに設定されるフィールドは、最大 1 つです。
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}

注: CES サービス エージェント service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com に roles/secretmanager.secretAccessor ロールを付与する必要があります。

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}

注: CES サービス エージェント service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com に roles/secretmanager.secretAccessor ロールを付与する必要があります。

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 ヘッダーで送信されます。

サービス アカウントには、CES サービス エージェント service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com に付与された roles/iam.serviceAccountTokenCreator ロールが必要です。

scopes[]

string

省略可。付与する OAuth スコープ。指定しない場合は、デフォルトのスコープ https://www.googleapis.com/auth/cloud-platform が使用されます。

BearerTokenConfig

署名なしトークンを使用した認証の構成。

JSON 表現
{
  "token": string
}
フィールド
token

string

必須。署名なしトークン。$context.variables.<name_of_variable> の形式で指定してください。