Pular para o conteúdo principal

Gerar JWT

Configuração atual da tarefa Gera JWT no Workflow Designer

A tarefa Gerar JWT permite criar tokens JWT configurando vários parâmetros necessários para a geração do token.

Definição de JWT

Um JSON Web Token (JWT) é um padrão aberto (RFC 7519) que define uma forma compacta e autossuficiente de transmitir informações entre partes como um objeto JSON. Estas informações podem ser verificadas e confiáveis porque são assinadas digitalmente. Os JWTs podem ser assinados usando um segredo (com o algoritmo HMAC) ou um par de chaves pública/privada usando RSA ou ECDSA.

Propósito do JWT

Os JWTs são comumente usados para autenticação e autorização. Quando um utilizador faz login, é gerado um token que pode ser usado para autenticar solicitações subsequentes sem ter de enviar novamente as credenciais do utilizador.

Configuração​

1. Assinatura (Signing)

  • Algoritmo: Selecione o algoritmo de assinatura a ser utilizado, por exemplo RS256.
  • Chave privada (Private key): Chave privada necessária para a assinatura do token. Pode ser inserida manualmente ou através de parâmetro.

2. Cabeçalhos (Headers)

  • Seção onde adicionar os pares chave-valor necessários para o cabeçalho.

3. Reivindicações (Claims)

  • Seção onde adicionar os pares chave-valor relativos às reivindicações necessárias

Cada campo na seção Headers e Claims pode ser preenchido manualmente ou através de parâmetros e variáveis do fluxo de trabalho.

Esta configuração permite definir os detalhes necessários para gerar um JSON Web Token (JWT).

Algoritmos simétricos (HSxxx)​

Os algoritmos HS (HMAC com SHA) utilizam uma chave simétrica, ou seja, a mesma chave serve tanto para assinar como para verificar o token.

  • HS256 (HMAC + SHA-256)
  • Usa o algoritmo de hash SHA-256 combinado com HMAC.
  • Segurança equilibrada: considerado hoje muito seguro se a chave for suficientemente longa e aleatória.
  • Uso comum para aplicações internas onde quem assina e quem verifica coincidem.
  • HS384 (HMAC + SHA-384)
  • Variante com SHA-384, produz assinaturas mais longas.
  • Oferece maior resistência a colisões em comparação com SHA-256.
  • HS512 (HMAC + SHA-512)
  • Variante com SHA-512, ainda mais robusta e com saída de 512 bits.
  • Adequado em contextos de alta segurança ou onde a chave pode circular de forma menos protegida.

Nota: Por serem simétricos, exigem que todos os participantes conheçam a mesma chave secreta. Isto pode ser um risco se houver vários sistemas que precisam validar o token.

Algoritmos assimétricos (RSxxx)​

Os algoritmos RS (RSA Signature com SHA) utilizam uma chave assimétrica:

  • Uma chave privada assina o token.
  • Uma chave pública valida o token.

Isto é útil quando se pretende distribuir os tokens em ambientes onde apenas o gerador deve possuir a chave privada.

  • RS256 (RSA + SHA-256)
  • Algoritmo mais difundido para JWT em contextos empresariais.
  • Seguro, com boa eficiência.
  • RS384 (RSA + SHA-384)
  • Variante que usa SHA-384 para maior resistência criptográfica.
  • RS512 (RSA + SHA-512)
  • Variante mais robusta, com SHA-512.
  • Oferece a máxima resistência a ataques, mas com um custo computacional maior.

Nota: Por serem assimétricos, são mais adequados a cenários distribuídos: o servidor que emite os tokens conserva a private key, enquanto os clientes ou microsserviços obtêm apenas a public key para verificar a sua validade.

Parâmetro de Saída​

Ao completar a execução, a tarefa disponibiliza os seguintes Parâmetros de Saída, utilizáveis como entrada em tarefas subsequentes do Workflow.

  • result: Este parâmetro pode retornar uma mensagem de erro ou o resultado da execução da Tarefa (o Token gerado). Este valor pode ser usado como entrada em Tarefas subsequentes (ex: ">#nome_del_task.result<#")
  • resultJson: representa o resultado da execução da tarefa em formato JSON, incluindo informações gerais, configurações e detalhes da execução.