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)

(선택사항) Bearer 토큰 인증 구성입니다.

상호 배타적 필드의 끝입니다.

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

Bearer 토큰을 사용한 인증 구성입니다.

JSON 표현
{
  "token": string
}
필드
token

string

필수 항목입니다. Bearer 토큰입니다. $context.variables.<name_of_variable> 형식이어야 합니다.