HTTP > Fazer uma solicitação JWT para o módulo

O módulo HTTP > Fazer uma solicitação JWT do Adobe Workfront Fusion envia uma solicitação HTTP(S) para uma URL e a autoriza com um JSON Web Token (JWT) que o módulo assina para você em cada chamada. A resposta é processada da mesma forma que no módulo padrão HTTP > Fazer uma solicitação.

Este módulo se comporta como o módulo padrão Fazer uma solicitação, com uma diferença principal: ele assina automaticamente um JWT das declarações fornecidas e o adiciona à solicitação, por padrão como Authorization: Bearer <token>.

Use este módulo para chamar qualquer API que espere um JWT assinado para autenticação, como serviços que exigem um token de portador de vida curta assinado com um segredo compartilhado (HMAC) ou uma chave privada (RSA/ECDSA), sem criar o token em uma etapa separada.

Se a API usar OAuth 2.0, autenticação básica, uma chave de API ou um certificado de cliente, use o módulo HTTP dedicado correspondente.

NOTE
Se você estiver se conectando a um produto Adobe que não tem um conector dedicado no momento, recomendamos usar o módulo Adobe Authenticator.
Para obter mais informações, consulte módulo Adobe Authenticator.

Requisitos de acesso

Expanda para visualizar os requisitos de acesso da funcionalidade neste artigo.
table 0-row-2 1-row-2 2-row-2 3-row-2 layout-auto html-authored no-header
Pacote do Adobe Workfront

Qualquer pacote de fluxo de trabalho do Adobe Workfront e qualquer pacote do Adobe Workfront Automation and Integration

Workfront Ultimate

Os pacotes Workfront Prime e Select, com uma compra adicional do Workfront Fusion.

Licenças do Adobe Workfront

Padrão

Trabalho ou maior

Licença do Adobe Workfront Fusion

Baseado em operação: disponível para organizações com licenças baseadas em operação

Baseado em conector (legado): Workfront Fusion for Work Automation and Integration

Produto Se sua organização tiver um pacote Workfront Select ou Prime, ele não inclui o Workfront Automation and Integration. É necessário comprar o Adobe Workfront Fusion.

Para obter mais detalhes sobre as informações contidas nesta tabela, consulte Requisitos de acesso na documentação.

Para obter informações sobre licenças do Adobe Workfront Fusion, consulte Licenças do Adobe Workfront Fusion.

Criar uma conexão JWT

O módulo requer uma conexão JWT. A conexão armazena o material de assinatura para que a chave secreta ou privada não precise aparecer no cenário.

Criar uma conexão JWT no Fusion

  1. Adicione o módulo HTTP > Fazer uma solicitação JWT ao seu cenário.

  2. Clique em Adicionar ao lado do campo Conexão.

  3. Configure os campos de conexão:

    table 0-row-2 1-row-2 2-row-2 layout-auto html-authored no-header
    Nome da conexão Insira um nome para a conexão.
    Algoritmo

    Selecione o algoritmo de assinatura para a conexão.

    • HS256
    • HS384
    • HS512
    • RS256
    • RS384
    • RS512
    • PS256
    • PS384
    • PS512
    • ES256
    • ES384
    • ES512
    Segredo

    Insira a chave de assinatura.

    • Para algoritmos HS*, use a cadeia de caracteres de segredo compartilhado.
    • Para os algoritmos RS*, PS* e ES*, use a chave privada codificada em PEM.
  4. Clique em Continuar para criar a conexão e retornar ao módulo.

IMPORTANT
Uma conexão JWT assina com apenas um algoritmo. Se o cenário exigir mais de um algoritmo de assinatura, crie uma conexão separada para cada algoritmo. Isso corresponde ao comportamento do aplicativo JWT independente existente.

HTTP > Fazer uma solicitação JWT para o módulo e seus campos

Ao configurar o módulo HTTP > Fazer uma solicitação JWT, o Adobe Workfront Fusion exibe os campos listados abaixo na mesma ordem em que aparecem na interface do usuário do módulo. Um título em negrito em um módulo indica um campo obrigatório. Os campos marcados como avançados ficam ocultos, a menos que você selecione Mostrar configurações avançadas.

Connection
Selecione uma conexão JWT existente ou crie uma nova.
URL
O URL de destino da solicitação.
Method
Método HTTP, como GET, POST, PUT, PATCH ou DELETE.
Headers
Cabeçalhos de solicitação personalizados em formato de chave/valor.
Query String
Parâmetros da sequência de consulta no formato chave/valor.
Tipo de corpo
Como o corpo da solicitação é codificado. As opções incluem Raw, application/x-www-form-urlencoded e multipart/form-data.
Analisar resposta
Quando ativado, o Fusion analisa o corpo da resposta com base no tipo de conteúdo da resposta.
Carga JWT (Declarações)
Pares de valor/chave incluídos como declarações na carga do JWT. As declarações reservadas exp, iat e nbf devem ser NumericDate — um número de segundos desde a época Unix. Os valores de reivindicação mantêm seu tipo JSON, para que os números permaneçam números e os booleanos permaneçam booleanos.
Tempo Limite (avançado)
Especifique o tempo limite da solicitação em segundos (1-300). O padrão é 40 segundos.
Repetir Contagem (avançado)
Especifique quantas vezes a solicitação deverá ser repetida se ela falhar devido a um erro com nova tentativa.
Códigos de Status de Novas Tentativas Adicionais (avançado)
Especifique códigos de status HTTP adicionais que devem ser tratados como repetíveis.
Compartilhar cookies com outros módulos HTTP (avançado)
Habilite essa opção para compartilhar cookies do servidor com todos os módulos HTTP em seu cenário.
Certificado autoassinado (avançado)
Faça upload do seu certificado se quiser usar o TLS usando seu certificado autoassinado.
Rejeitar conexões que estão usando certificados não verificados (autoassinados) (avançado)
Habilite esta opção para rejeitar conexões que estejam usando certificados TLS não verificados.
Seguir redirecionamento (avançado)
Ative essa opção para seguir os redirecionamentos de URL com respostas 3xx.
Desabilitar serialização de várias chaves de cadeia de caracteres de consulta como matrizes (avançado)
Por padrão, o Workfront Fusion lida com vários valores para a mesma chave de parâmetro de string de consulta de URL que os arrays. Por exemplo, www.test.com?foo=bar&foo=baz será convertido em www.test.com?foo[0]=bar&foo[1]=baz. Ative esta opção para desativar este recurso.
Solicitar conteúdo compactado (avançado)
Habilite esta opção para solicitar uma versão compactada do site. Adiciona um cabeçalho Accept-Encoding para solicitar conteúdo compactado.
Usar TLS Mútuo (avançado)
Habilite esta opção para usar o TLS mútuo na solicitação HTTP.
Opções de assinatura (avançado)

Para cada opção de assinatura que você deseja adicionar à solicitação, clique em Adicionar item e insira o nome e o valor do parâmetro.

Opções adicionais passadas ao signatário do JWT, como expiresIn, issuer, audience, subject e keyid. Valores de duração como expiresIn são interpretados pela biblioteca jsonwebtoken. Um número simples é tratado como milissegundos, portanto, use uma cadeia de caracteres de unidade como "1h" ou "3600s" para ser explícito. O algoritmo é retirado da conexão e não pode ser substituído aqui.

Nome do Cabeçalho (avançado)
Informe ou mapeie o nome do cabeçalho da solicitação que recebe o JWT assinado. Padrão: Authorization. O nome do cabeçalho não deve conter um ponto (.), pois os nomes pontilhados são rejeitados e não podem ser mascarados em logs de solicitação.
Tipo de Token (avançado)
Insira ou mapeie o esquema de autenticação colocado antes do token, como Bearer. Deixe em branco para enviar o token bruto sem um prefixo.

Como o token é criado

  1. O módulo coleta as declarações no campo Carga JWT (Declarações).
  2. Declarações reservadas, como exp, iat, e nbf são convertidos em valores NumericDate.
  3. O módulo aplica as Opções de assinatura e assina o token usando o algoritmo da conexão.
  4. O token assinado é colocado no cabeçalho da solicitação definido por Nome do Cabeçalho.
  5. Se Tipo de token estiver definido, o módulo adicionará o prefixo antes do token. Por exemplo, Bearer KeyJ….
  6. A solicitação é enviada e a resposta é processada da mesma forma que o módulo padrão HTTP > Fazer uma solicitação.

O token assinado é mascarado automaticamente nos logs de depuração e erro para que nunca seja exposto.

Exemplo

Conexão

  • Algoritmo: HS256
  • Segredo: my-shared-secret

Configurações do módulo

  • URL: https://api.example.com/v1/orders

  • Método: GET

  • Carga JWT (solicitações):

    • sub = service-account-42
    • iss = make-integration
  • Opções de assinatura:

    • expiresIn = 1h
  • Nome do Cabeçalho: Authorization

  • Tipo de token: Bearer

Resultado

O módulo envia a solicitação com um cabeçalho semelhante a:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Perguntas frequentes/armadilhas

Por que meu token expirou tão rapidamente?

Você provavelmente inseriu um número vazio para expiresIn, como 3600. A biblioteca jsonwebtoken interpreta números sem formatação como milissegundos. Em vez disso, use uma cadeia de caracteres de unidade como "1h" ou "3600s".

Quando o token é criado?

O módulo assina um JWT novo sempre que o módulo é executado, não quando você cria a conexão. A conexão armazena somente o material e o algoritmo de assinatura, portanto, declarações como iat e exp refletem o momento da execução desse módulo.

Se a solicitação tentar novamente dentro da mesma execução do módulo, o Fusion reutiliza o mesmo token assinado para essas tentativas, em vez de assinar um novo token para cada tentativa. Por causa disso, um valor expiresIn muito curto pode expirar antes que ocorra uma nova tentativa e fazer com que uma nova tentativa envie um token já expirado. Para evitar isso, use uma cadeia de caracteres de unidade limpa, como "1h" ou "3600s", e evite tempos de vida de token muito curtos.

Posso alterar o algoritmo por solicitação?

Não. O algoritmo é corrigido pela conexão. Se você precisar de um algoritmo diferente, crie uma conexão JWT diferente.

Posso enviar o token em um cabeçalho personalizado?

Sim. Defina o campo Nome do Cabeçalho com um nome personalizado, mas ele não pode conter um ponto (.).

Posso enviar o token bruto sem Bearer?

Sim. Deixe Tipo de token vazio.

O token está visível nos logs?

Não. O token assinado é mascarado automaticamente nos logs de depuração e erro.

NOTE
Observação técnica: a assinatura usa a biblioteca jsonwebtoken e espelha o comportamento de assinatura do aplicativo JWT independente, para que as mesmas entradas produzam o mesmo token que o aplicativo JWT independente.
recommendation-more-help
workfront-fusion-help-workfront-fusion