Proteja suas APIs com JWT na Digibee
Atualizado
Atualizado
Os JSON Web Tokens (JWTs) permitem a troca segura de informações entre diferentes partes. Ao incorporar JWTs, você pode autenticar usuários e autorizá-los a acessar recursos específicos ou realizar ações dentro de um serviço.
Neste caso de uso, vamos explorar:
Melhores práticas para implementar JWTs com segurança.
Como evitar erros comuns, como incluir dados sensíveis nos tokens.
Etapas práticas para utilizar os conectores JWT na Digibee Integration Platform.
Aqui estão algumas práticas importantes a serem seguidas:
Evite incluir dados sensíveis nos JWTs: Apesar de os dados no token serem codificados em base64, eles não são criptografados nem protegidos com hash. Isso significa que qualquer pessoa com acesso pode decodificar e visualizar o conteúdo do Header e do Payload, excluindo a Signature.
Use tempos de expiração curtos: Os JWTs devem ter períodos de expiração curtos para minimizar o risco de uso malicioso caso o token seja comprometido. Um token de curta duração limita o impacto de sua exposição. O tempo de expiração pode ser configurado diretamente nas configurações do conector.
Monitore o uso dos tokens: É importante monitorar o uso dos JWTs para detectar anomalias ou tentativas de acesso não autorizadas. Você pode registrar e rastrear o uso de cada token associando-o à chave de execução do pipeline: {{ metadata.execution.key }}
.
Utilize escopos quando o acesso precisar ser restrito: Inclua escopos para aplicar permissões granulares ou validar o acesso a papéis ou recursos específicos. Por exemplo, se um token for destinado a operações sensíveis, certifique-se de que os escopos apropriados estejam definidos (leitura, escrita, etc.).
A Digibee oferece dois conectores distintos de JWT, cada um projetado para casos de uso específicos: JWT V2 e Digibee JWT (Generate and Decode). Ambos possibilitam integração e segurança dentro dos pipelines, mas diferem em capacidades e foco de aplicação.
JWT V2 é um conector que suporta a geração de JWTs genéricos para sistemas externos. Ele permite criar tokens JWS (JSON Web Signature) e JWE (JSON Web Encryption), além de verificá-los e decodificá-los. O JWT V2 acomoda diversos algoritmos criptográficos para uso de chaves públicas, privadas e secretas.
Digibee JWT (Generate and Decode) é um conector voltado para comunicações internas da plataforma. Ele simplifica a geração e decodificação de tokens JWT, com foco em autenticação em pipelines que utilizam REST ou HTTP Triggers, sendo exclusivo do ecossistema Digibee.
Caso de uso
Integrações externas com APIs
Comunicação interna nos pipelines da Digibee
Tipos de token
JWS, JWE
JWT
Algoritmos suportados
Suporte criptográfico amplo
Simplificado para uso interno
Ideal para
Necessidades de alta segurança
Autenticação leve em pipelines internos
O processo começa quando o usuário envia uma solicitação POST para /auth
no AuthenticationLoginPipeline com suas credenciais (API Key ou Basic Auth).
Após a autenticação bem-sucedida, o AuthenticationLoginPipeline retorna o token JWT nos cabeçalhos da resposta. Esse token deve ser incluído no Authorization Header de solicitações subsequentes para acessar endpoints protegidos (por exemplo, GET /protected-resource
).
O ServicePipeline é responsável por validar o token JWT durante as solicitações subsequentes. Este pipeline opera com as seguintes etapas:
Validação de JWT: Quando o usuário envia uma solicitação com um token JWT no Authorization header, o ServicePipeline valida o token. O API Gateway da Digibee é responsável por aplicar a validação do token. Se o token for válido, o ServicePipeline prossegue com o processamento da solicitação.
Controle de Acesso: Caso o token JWT seja inválido ou ausente, o API Gateway bloqueia o acesso ao ServicePipeline, garantindo que apenas usuários autorizados possam acessar os recursos protegidos.
O caso de uso a seguir ilustra as fases de como utilizar o conector JWT (Generate and Decode) para criar um pipeline de autenticação de login que gera um token JWT para acesso a APIs internas. Esta implementação prática segue o fluxo do AuthenticationLoginPipeline discutido anteriormente. Aqui está a implementação passo a passo:
1. Crie um novo pipeline e adicione um Trigger REST.
2. Nas configurações do trigger, habilite as opções: External API e API Key.
Use um conector de transformação para processar o corpo da solicitação recebida.
Extraia os campos necessários para o payload do JWT, como:
userID
role
Outros identificadores necessários para autorização.
Dica de Segurança: Exclua informações sensíveis (por exemplo, senhas ou detalhes de transações).
Salve os dados extraídos na memória de execução do pipeline usando o conector Session Management. Isso garante que os dados estejam acessíveis para as etapas subsequentes do pipeline.
Se informações sensíveis estiverem presentes no payload, remova-as antes de prosseguir (um JSON Generator vazio pode ser usado para isso).
Mantenha apenas os campos essenciais para o payload do JWT.
Adicione o conector Digibee JWT (Generate and Decode) ao seu pipeline.
Configure os seguintes parâmetros:
Tipo de Operação: Selecione Generate para criar o token JWT.
Scopes: Opcionalmente, defina escopos para especificar permissões ou níveis de acesso (por exemplo, leitura, escrita). Deixe este campo vazio se não for necessário.
Tempo de Expiração: Defina um período de validade para o token.
Certifique-se de que o pipeline está implantado em um ambiente de teste ou produção antes de tentar gerar ou recuperar o JWT.
Para melhorar a rastreabilidade, gere um Transaction ID exclusivo para o fluxo. Por exemplo, use a chave de execução do pipeline: { "transactionId": {{ metadata.execution.key }} }
O JWT gerado será adicionado ao Authorization header da resposta.
Este token pode agora ser usado por outros serviços para realizar chamadas autenticadas à API.
A segurança é uma responsabilidade compartilhada entre todas as equipes envolvidas no desenvolvimento de integrações. Cada membro da equipe desempenha um papel na implementação e manutenção de práticas de segurança para minimizar riscos e construir integrações seguras e confiáveis.
Se você é novo nos conceitos de segurança, recomendamos explorar o caso de uso "Práticas essenciais para proteger informações sensíveis", que aborda princípios fundamentais para a proteção de dados. Isso complementará sua compreensão sobre a implementação de JWT e aprimorará suas práticas gerais de segurança.
Você pode explorar mais possibilidades em nosso Portal de Documentação, no Digibee Academy com cursos sobre Segurança Avançada, ou visitar nosso Blog para descobrir mais recursos e insights.
Se você tiver um feedback sobre este caso de uso ou sugestões para futuros artigos, adoraríamos ouvir você em nosso formulário de feedback.