Saltar para o conteúdo principal
Didit angaria 7,5 milhões de dólares para construir a infraestrutura para identidade e fraude
Didit
Voltar ao blog
Blog · 6 de março de 2026

Construir um Middleware Seguro para Webhooks Didit com AWS Lambda (PT-PT)

Aprenda a construir um robusto e seguro middleware de API Gateway para os webhooks da Didit usando AWS Lambda. Este guia abrange verificação de assinatura, validação de carimbo de data/hora e processamento assíncrono, garantindo.

Por DiditAtualizado
aws-lambda-api-gateway-didit-webhooks.png

Ingestão Segura de Webhooks A implementação da verificação de assinatura HMAC-SHA256 e da validação de carimbo de data/hora é crucial para proteger os webhooks da Didit contra adulteração e ataques de repetição, garantindo a integridade e autenticidade dos dados.

Arquitetura de Processamento Assíncrono Alavancar o AWS Lambda e o SQS desacopla a ingestão de webhooks do processamento, melhorando a escalabilidade, fiabilidade e permitindo lógicas complexas a jusante sem impactar as respostas em tempo real.

Atualizações de Identidade em Tempo Real Os webhooks da Didit fornecem notificações instantâneas sobre os resultados da verificação de identidade, permitindo atualizações imediatas nos estados dos utilizadores, alertas de fraude ou registos de conformidade dentro da sua aplicação.

Abordagem Developer-First da Didit A Didit oferece uma arquitetura modular e APIs limpas, tornando a integração de resultados de verificação de identidade em tempo real nos seus sistemas simples, ainda mais aprimorada por uma oferta de KYC principal gratuita e sem taxas de configuração.

A Importância do Manuseio Seguro de Webhooks

No panorama digital interligado de hoje, a troca de dados em tempo real é primordial, especialmente para funções críticas como a verificação de identidade. Os webhooks servem como a espinha dorsal para estas notificações em tempo real, permitindo que serviços como a Didit informem a sua aplicação instantaneamente sobre o resultado de uma verificação de identidade, um resultado de triagem AML, ou um estado de deteção de vivacidade. No entanto, simplesmente receber dados não é suficiente; garantir a sua autenticidade, integridade e processamento atempado é vital. Um endpoint de webhook inseguro pode ser uma vulnerabilidade significativa, suscetível a adulteração de dados, ataques de repetição ou tentativas de negação de serviço. É aqui que um middleware de API Gateway bem projetado, particularmente para os webhooks da Didit, se torna indispensável.

Quando a Didit completa uma Verificação de ID, verificação de Vivacidade Passiva & Ativa, Correspondência Facial 1:1, ou Triagem AML, envia um webhook para o seu endpoint configurado. Esta notificação contém informações cruciais sobre o status da verificação. Sem as medidas de segurança adequadas, atores maliciosos poderiam falsificar estas notificações, levando a decisões incorretas de integração de utilizadores ou atividades fraudulentas. Por exemplo, um status 'verificado' falsificado poderia conceder acesso a um ator malicioso, enquanto um status 'falhou' falsificado poderia levar ao bloqueio de utilizadores legítimos. Portanto, estabelecer um mecanismo de receção de webhooks seguro e robusto não é apenas uma boa prática; é uma necessidade para manter a segurança e conformidade da sua plataforma.

Construindo um Middleware Robusto com AWS Lambda & API Gateway

Para lidar eficaz e seguramente com os webhooks da Didit, podemos alavancar o poder do AWS Lambda e do API Gateway para criar um middleware serverless. Esta arquitetura oferece escalabilidade, eficiência de custos e alta disponibilidade, perfeitamente adequada para o processamento de dados orientado a eventos. A ideia central é ter o API Gateway a atuar como ponto de entrada, encaminhando pedidos para uma função Lambda responsável pela validação inicial e processamento seguro.

Passo 1: Configurar o API Gateway como Ponto de Entrada

O seu AWS API Gateway irá expor um endpoint público (e.g., /api/webhooks/didit) para o qual a Didit enviará os seus webhooks. É crucial configurar este endpoint para aceitar pedidos POST e integrá-lo com a sua função Lambda. Ao contrário das configurações tradicionais, o API Gateway deve ser configurado para passar o corpo do pedido bruto diretamente para o Lambda sem análise JSON imediata. Isto porque a verificação de assinatura requer a carga útil bruta exata enviada pela Didit.

Passo 2: Implementar Validação Segura no AWS Lambda

A função Lambda é o coração do seu middleware. Ao receber um webhook, deve realizar várias etapas críticas de validação antes de processar os dados:

  1. Ler o Corpo do Pedido Bruto: A função Lambda deve aceder ao corpo do pedido bruto. Isto é essencial para a verificação de assinatura HMAC-SHA256.
  2. Verificar Assinatura HMAC-SHA256: Os webhooks da Didit incluem um cabeçalho X-Signature contendo uma assinatura HMAC-SHA256. A sua função Lambda usará o seu segredo de webhook (partilhado entre a sua aplicação e a Didit) para calcular a sua própria assinatura a partir do corpo do pedido bruto. Se a assinatura calculada não corresponder ao cabeçalho X-Signature, o webhook é inválido e deve ser rejeitado imediatamente. Isto protege contra a adulteração de dados.
  3. Validar Carimbo de Data/Hora: A Didit também inclui um cabeçalho X-Timestamp. A sua função Lambda deve verificar se este carimbo de data/hora é recente, tipicamente dentro de uma janela de 5 minutos da hora atual. Isto previne ataques de repetição, onde um atacante pode reenviar um evento de webhook antigo e legítimo.
  4. Analisar Corpo JSON: Somente após a verificação bem-sucedida da assinatura e do carimbo de data/hora é que o corpo bruto deve ser analisado num objeto JSON.

Aqui está um trecho conceitual de Python para verificação de assinatura dentro do seu Lambda:


import hmac
import hashlib
import time
import json

def verify_webhook_signature(body, headers, secret):
    signature_header = headers.get('X-Signature')
    timestamp_header = headers.get('X-Timestamp')

    if not signature_header or not timestamp_header:
        return False, "Missing signature or timestamp header"

    # Check timestamp for freshness (e.g., within 5 minutes)
    current_time = int(time.time())
    event_timestamp = int(timestamp_header)
    if abs(current_time - event_timestamp) > 300: # 300 seconds = 5 minutes
        return False, "Webhook timestamp too old or too far in future"

    # Reconstruct the signed payload
    signed_payload = f"v1:{timestamp_header}:{body}"

    # Compute HMAC signature
    expected_signature = hmac.new(
        secret.encode('utf-8'),
        signed_payload.encode('utf-8'),
        hashlib.sha256
    ).hexdigest()

    # Compare signatures in a secure way (constant time comparison)
    if hmac.compare_digest(signature_header, expected_signature):
        return True, "Signature valid"
    else:
        return False, "Signature mismatch"

# In your Lambda handler:
def lambda_handler(event, context):
    body = event['body'] # Raw request body
    headers = event['headers']
    webhook_secret = "YOUR_DIDIT_WEBHOOK_SECRET" # Store securely, e.g., in AWS Secrets Manager

    is_valid, message = verify_webhook_signature(body, headers, webhook_secret)

    if not is_valid:
        print(f"Webhook validation failed: {message}")
        return {
            'statusCode': 403,
            'body': json.dumps({'message': 'Unauthorized'})
        }

    # If valid, parse JSON and proceed with processing
    payload = json.loads(body)
    # ... process payload ...

    return {
        'statusCode': 200,
        'body': json.dumps({'message': 'Webhook received and processed'})
    }

Processamento Assíncrono para Escalabilidade e Fiabilidade

Após validar o webhook, é geralmente uma boa prática desacoplar o processo de ingestão da lógica de negócio real. Isto significa que a sua função Lambda, após a validação, não deve executar diretamente operações complexas de base de dados ou chamadas de API externas. Em vez disso, deve simplesmente enviar a carga útil validada para uma fila de processamento assíncrono, como o AWS SQS (Simple Queue Service).

Esta arquitetura oferece várias vantagens:

  • Escalabilidade: O seu API Gateway e o Lambda inicial podem lidar com um alto volume de webhooks de entrada sem serem estrangulados pelo processamento a jusante.
  • Fiabilidade: Se os seus sistemas a jusante estiverem temporariamente indisponíveis, as mensagens permanecem na fila, prevenindo a perda de dados.
  • Desacoplamento: Diferentes funções ou serviços Lambda podem processar mensagens da fila SQS, permitindo o desenvolvimento e implementação modular e independente da sua lógica de negócio (e.g., atualizar registos de utilizadores, acionar alertas AML, ou registar resultados de verificação).
  • Respostas Rápidas: O endpoint inicial do webhook pode responder rapidamente (e.g., com um 200 OK), impedindo que a Didit tente reenviar o webhook desnecessariamente.

Isto garante que, quer esteja a realizar Verificação de ID, a usar Verificação NFC para ePassaportes, ou a alavancar a Estimativa de Idade para conformidade, os resultados são processados de forma eficiente e fiável.

Como a Didit Ajuda

A Didit é uma plataforma de identidade nativa de IA, focada no programador, projetada para modularidade e facilidade de integração. Os nossos webhooks são um excelente exemplo desta filosofia, fornecendo notificações seguras e em tempo real sobre o estado dos seus fluxos de trabalho de verificação de identidade. Ao oferecer uma API limpa e documentação abrangente, a Didit torna simples configurar e integrar estes webhooks no seu middleware personalizado, como a solução AWS Lambda e API Gateway descrita acima.

A plataforma da Didit suporta uma vasta gama de primitivas de verificação de identidade, incluindo Verificação de ID (OCR, MRZ, códigos de barras), Vivacidade Passiva & Ativa, Correspondência Facial 1:1 & Pesquisa Facial, Triagem & Monitorização AML, Prova de Morada, Estimativa de Idade, Verificação de Telefone & Email, e Verificação NFC. Os resultados de qualquer uma destas verificações podem ser entregues através dos nossos webhooks seguros, permitindo-lhe construir sistemas altamente responsivos e automatizados. Além disso, a Didit oferece KYC Essencial Gratuito, uma arquitetura modular e sem taxas de configuração, tornando-a uma escolha acessível e poderosa para empresas de todos os tamanhos que procuram automatizar a confiança e orquestrar o risco.

Pronto para Começar?

Pronto para ver a Didit em ação? Obtenha uma demonstração gratuita hoje.

Comece a verificar identidades gratuitamente com o nível gratuito da Didit.

Infraestrutura para identidade e fraude.

Uma API para KYC, KYB, Monitorização de Transações e Rastreio de Carteiras. Integre em 5 minutos.

Peça a uma IA para resumir esta página
Middleware Seguro para Webhooks Didit com AWS Lambda.