Configurar a autenticação do OAuth 2.0 custom-channel-oauth2

Nesta página: saiba como configurar a autenticação OAuth 2.0 para canais personalizados no Adobe Journey Optimizer, incluindo a carga de solicitação de token, caminhos de credencial, extração de token e localização de token em solicitações de entrega.

Ao selecionar OAuth 2.0 como o tipo de autenticação ao criar um canal personalizado, configure a solicitação de token que o Adobe Journey Optimizer usa para recuperar um token de acesso do servidor de autorização.

O Journey Optimizer envia a solicitação de token usando a configuração endpoint, method, request e policy. Em seguida, ele extrai o token de acesso da resposta usando tokenPath e o adiciona à solicitação de entrega usando locationConfig.

A carga de autenticação do OAuth 2.0 configura a solicitação para o ponto de extremidade do token. Ela é separada da carga de mensagem enviada para o ponto de extremidade de entrega de canal personalizado.

Configurar a solicitação de token token-request

Use os exemplos a seguir para configurar sua solicitação de token. Substitua o endpoint de exemplo e os valores de credencial pelos exigidos pelo servidor de autorização. As entradas headers e queryParams nos exemplos são opcionais: remova-as se o ponto de extremidade do token não as exigir e remova as entradas correspondentes de credentialPaths.

Exemplo de corpo de formulário form-body-example

Use uma carga de form quando o ponto de extremidade do token esperar campos de formulário como grant_type, client_id ou client_secret.

{
  "type": "oauth2",
  "endpoint": {
    "uri": "https://auth.example.com/oauth/token"
  },
  "method": "post",
  "request": {
    "headers": [
      {
        "key": "sampleHeaderKey",
        "value": "sampleHeaderValue"
      }
    ],
    "queryParams": [
      {
        "key": "sampleQueryParamKey",
        "value": "sampleQueryParamValue"
      }
    ],
    "payload": {
      "type": "form",
      "content": [
        {
          "key": "grant_type",
          "value": "client_credentials"
        },
        {
          "key": "client_id",
          "value": "your-client-id"
        },
        {
          "key": "client_secret",
          "value": "your-client-secret"
        }
      ],
      "includeNullValues": false
    }
  },
  "response": {
    "type": "json"
  },
  "policy": {
    "timeoutInMilliseconds": 30000,
    "cache": {
      "enabled": true,
      "ttlInSeconds": 300
    },
    "retry": {
      "enabled": false,
      "maxRetryCount": 3
    }
  },
  "credentialPaths": [
    "header.sampleHeaderKey",
    "queryParam.sampleQueryParamKey",
    "payload.client_id",
    "payload.client_secret"
  ],
  "tokenPath": "access_token",
  "locationConfig": {
    "key": "Authorization",
    "location": "header"
  }
}

Para uma carga form, cada caminho de credencial usa a chave do campo de formulário, por exemplo, payload.client_secret. Não inclua content ou índices de matriz no caminho da credencial.

Exemplo de corpo JSON json-body-example

Use uma carga json quando o ponto de extremidade do token esperar um corpo de solicitação JSON.

{
  "type": "oauth2",
  "endpoint": {
    "uri": "https://auth.example.com/oauth/token"
  },
  "method": "post",
  "request": {
    "headers": [
      {
        "key": "sampleHeaderKey",
        "value": "sampleHeaderValue"
      }
    ],
    "queryParams": [
      {
        "key": "sampleQueryParamKey",
        "value": "sampleQueryParamValue"
      }
    ],
    "payload": {
      "type": "json",
      "content": {
        "grant_type": "client_credentials",
        "client_id": "your-client-id",
        "client_secret": "your-client-secret"
      },
      "includeNullValues": false
    }
  },
  "response": {
    "type": "json"
  },
  "policy": {
    "timeoutInMilliseconds": 30000,
    "cache": {
      "enabled": true,
      "ttlInSeconds": 300
    },
    "retry": {
      "enabled": false,
      "maxRetryCount": 3
    }
  },
  "credentialPaths": [
    "header.sampleHeaderKey",
    "queryParam.sampleQueryParamKey",
    "payload.client_id",
    "payload.client_secret"
  ],
  "tokenPath": "access_token",
  "locationConfig": {
    "key": "Authorization",
    "location": "header"
  }
}

Campos do OAuth 2.0 oauth2-fields

Campo
Descrição
type
Deve ser oauth2.
endpoint.uri
URL HTTPS do ponto de extremidade do token OAuth 2.0.
method
Método HTTP usado para chamar o ponto de extremidade do token. Use post para solicitações de token.
request.headers
Cabeçalhos opcionais enviados para o endpoint do token.
request.queryParams
Parâmetros de consulta opcionais anexados ao URL do ponto de extremidade do token.
request.payload
Corpo da solicitação de token. Suporta cargas de form e json.
request.payload.includeNullValues
Define se os campos com um valor nulo são incluídos no corpo da solicitação de token.
response.type
Formato de resposta. Use json quando o ponto de extremidade do token retornar uma resposta JSON.
policy.timeoutInMilliseconds
Tempo máximo de espera pela resposta do ponto de extremidade do token.
policy.cache
Define se o token OAuth é armazenado em cache e por quanto tempo.
policy.retry
Configuração de repetição opcional para falhas de ponto de extremidade de token.
credentialPaths
Caminhos para solicitar campos que contêm credenciais. Esses campos são tratados como credenciais e podem ser gerenciados com segurança.
tokenPath
Caminho separado por pontos para o token de acesso na resposta OAuth, por exemplo, access_token ou data.access_token.
locationConfig
Define onde o token recuperado é adicionado à solicitação de entrega.
locationConfig.key
Nome do cabeçalho ou parâmetro de consulta que carrega o token, por exemplo, Authorization.
locationConfig.location
Onde o token é adicionado: header ou queryParam.

Quando o armazenamento em cache do token é ativado, o Journey Optimizer reutiliza o token OAuth pela duração do cache configurado, em vez de chamar o endpoint do token para cada solicitação de entrega.

Identificar campos de credencial credential-paths

Use credentialPaths para identificar quais campos de solicitação contêm credenciais. Se um cabeçalho ou parâmetro de consulta contiver uma credencial, inclua o caminho dele, bem como quaisquer caminhos de credencial no corpo da solicitação. Os exemplos acima identificam o cabeçalho de amostra e os valores de parâmetro de consulta como credenciais; ajuste essa lista para corresponder à sua solicitação.

Prefixo
Usado para
Exemplo
header.
Credencial transmitida nos cabeçalhos de solicitação.
header.sampleHeaderKey
queryParam.
Credencial transmitida em parâmetros de consulta.
queryParam.sampleQueryParamKey
payload.
Credencial transmitida no corpo da solicitação.
payload.client_secret

Aplique as seguintes regras:

  • Os caminhos devem começar com header, queryParam ou payload e usar pontos como separadores.
  • Para cargas de form, use payload.<formFieldKey>.
  • Para cargas de json, use o caminho de objeto JSON, como payload.client_id ou payload.credentials.client_secret. Não inclua content no caminho.
  • Não há suporte para segmentos de caminho vazios. Por exemplo, payload..client_id é inválido.

Para um corpo JSON aninhado, use a notação de pontos conforme mostrado neste trecho de configuração:

{
  "request": {
    "payload": {
      "type": "json",
      "content": {
        "credentials": {
          "client_id": "your-client-id",
          "client_secret": "your-client-secret"
        }
      },
      "includeNullValues": false
    }
  },
  "credentialPaths": [
    "payload.credentials.client_id",
    "payload.credentials.client_secret"
  ]
}

Extrair o token de acesso token-path

tokenPath define onde o token de acesso está localizado na resposta do token OAuth 2.0.

Para a seguinte resposta, defina tokenPath como access_token:

{
  "access_token": "example-access-token",
  "token_type": "Bearer",
  "expires_in": 3600
}

Para uma resposta aninhada, defina tokenPath como data.access_token:

{
  "data": {
    "access_token": "example-access-token"
  }
}

Adicionar o token às solicitações de entrega token-location

locationConfig define onde o Journey Optimizer adiciona o token recuperado ao chamar o ponto de extremidade de entrega do canal personalizado.

Para enviar o token no cabeçalho Authorization, use:

{
  "locationConfig": {
    "key": "Authorization",
    "location": "header"
  }
}
Localização
Descrição
header
Adiciona o token como um cabeçalho HTTP.
queryParam
Adiciona o token como um parâmetro de consulta.

Limites e regras de validação limits

Campo
Limite
endpoint.uri
Deve ser um URL HTTPS absoluto com um host não vazio. Tamanho máximo: 2048 caracteres.
policy.timeoutInMilliseconds
Mínimo: 300 ms. Máximo: 60000 ms.
policy.cache.ttlInSeconds
Aplicável quando o cache está habilitado. Mínimo: 300 segundos. Máximo: 3600 segundos.
request.headers
Máximo de 50 cabeçalhos. Comprimento da chave do cabeçalho: 1 a 100 caracteres. Valor máximo do cabeçalho: 8.192 caracteres.
request.queryParams
Máximo de 50 parâmetros de consulta. Comprimento da chave do parâmetro de consulta: 1 a 100 caracteres. Valor máximo do parâmetro de consulta: 8.192 caracteres.
request.payload.type=form
Máximo de 50 campos de formulário. Comprimento da chave do formulário: 1 a 100 caracteres. Chaves de formulário duplicadas não são permitidas.
Valores de credencial
1-1024 caracteres.
tokenPath
Deve ser um caminho separado por pontos válido. Um valor vazio é permitido somente quando a resposta inteira é o token.
credentialPaths
Deve começar com header, queryParam ou payload e usar pontos como separadores.

Próximas etapas next-steps

AI Knowledge Reference

This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.

For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.

  • TL;DR: Configure OAuth 2.0 authentication for a custom channel by defining the token endpoint request, identifying credential fields, extracting the access token from the response, and specifying where to add it to delivery requests.

Intents:

  • Configure OAuth 2.0 authentication when creating a custom channel or managing API credentials
  • Choose a form or JSON body for the token endpoint request
  • Identify credential fields in headers, query parameters, and request bodies
  • Extract an access token from a top-level or nested response field
  • Add the retrieved token to a delivery request header or query parameter
  • Understand token caching and authentication configuration limits

Glossary:

  • Token endpoint: The authorization server endpoint that Journey Optimizer calls to retrieve an access token
  • Authentication payload: The configuration of the OAuth 2.0 token request, separate from the message payload sent to the delivery endpoint (product-specific)
  • Credential paths: The paths identifying request fields that contain credentials, configured through credentialPaths (product-specific)
  • Token path: The dot-separated path to the access token in the token endpoint response, configured through tokenPath (product-specific)
  • Token location configuration: The delivery request header or query parameter to which the retrieved token is added, configured through locationConfig (product-specific)

Guardrails:

  • Set the authentication configuration type to oauth2 and use post for token requests.
  • The token endpoint must be an absolute HTTPS URL with a non-empty host and a maximum length of 2048 characters.
  • Token request bodies support form and json payloads; choose the format expected by your authorization server.
  • Credential paths must start with header, queryParam, or payload, use dots as separators, and contain no empty path segments.
  • Form credential paths use the form field key. JSON credential paths use the JSON object path. Do not include content or form array indexes in credential paths.
  • Supported token locations are header and queryParam.
  • The token endpoint timeout must be between 300 and 60000 milliseconds.
  • When token caching is enabled, the cache duration must be between 300 and 3600 seconds. Journey Optimizer reuses the token for the configured duration instead of retrieving a token for every delivery request.
  • Credential values must contain between 1 and 1024 characters.
  • An empty tokenPath is allowed only when the entire response is the token.

Terminology:

  • Canonical name: OAuth 2.0 authentication - variants: OAuth 2.0 authentication payload, OAuth token request configuration
  • Do not confuse: “authentication payload” (configuration for retrieving an access token) with “message payload” (content sent to the custom channel delivery endpoint)
  • Do not confuse: credentialPaths (credential fields in the token request) with tokenPath (access token field in the token response)
  • Do not confuse: request.headers and request.queryParams (values sent to the token endpoint) with locationConfig (where the retrieved token is added to delivery requests)

FAQ:

  • Q: When should I use a form or JSON payload? - Use form when the token endpoint expects form fields, and json when it expects a JSON request body.
  • Q: How do I identify a client secret in a form body? - Use the form field key, for example, payload.client_secret, without content or an array index.
  • Q: How do I identify credentials in a nested JSON body? - Use dot notation, for example, payload.credentials.client_secret.
  • Q: How do I extract a token from a nested response? - Set tokenPath to the response field path, for example, data.access_token.
  • Q: Where can Journey Optimizer add the token to delivery requests? - Set locationConfig.location to header or queryParam and locationConfig.key to the header or query parameter name.
  • Q: Does Journey Optimizer retrieve a token for every delivery request? - When caching is enabled, it reuses the token for the configured cache duration.
recommendation-more-help
journey-optimizer-help