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.
Requisitos de acesso
| 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
-
Adicione o módulo HTTP > Fazer uma solicitação JWT ao seu cenário.
-
Clique em Adicionar ao lado do campo Conexão.
-
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.
HS256HS384HS512RS256RS384RS512PS256PS384PS512ES256ES384ES512
Segredo Insira a chave de assinatura.
- Para algoritmos
HS*, use a cadeia de caracteres de segredo compartilhado. - Para os algoritmos
RS*,PS*eES*, use a chave privada codificada em PEM.
-
Clique em Continuar para criar a conexão e retornar ao módulo.
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.
Como o token é criado
- O módulo coleta as declarações no campo Carga JWT (Declarações).
- Declarações reservadas, como
exp,iat, enbfsão convertidos em valores NumericDate. - O módulo aplica as Opções de assinatura e assina o token usando o algoritmo da conexão.
- O token assinado é colocado no cabeçalho da solicitação definido por Nome do Cabeçalho.
- Se Tipo de token estiver definido, o módulo adicionará o prefixo antes do token. Por exemplo,
Bearer KeyJ…. - 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-42iss=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.
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.