Создание обработчиков веб-хуков Didit с AWS Lambda и API Gateway (RU)
Узнайте, как создавать надежные и масштабируемые обработчики веб-хуков Didit с использованием TypeScript, AWS Lambda и API Gateway (Serverless Framework).

Безопасная интеграция веб-хуковНадежная проверка подписи веб-хуков с использованием общего секретного ключа Didit имеет решающее значение для обеспечения целостности и подлинности входящих данных с платформы Didit, защищая от спуфинга и подделки.
Масштабируемая бессерверная архитектураИспользование AWS Lambda и API Gateway с Serverless Framework обеспечивает высокомасштабируемое и экономичное решение для обработки событий веб-хуков Didit, автоматически адаптируясь к меняющимся нагрузкам без ручного вмешательства.
Рабочие процессы идентификации в реальном времениОбработка веб-хуков Didit в реальном времени позволяет немедленно реагировать на результаты проверки личности, способствуя динамичной регистрации пользователей, обнаружению мошенничества и соблюдению нормативных требований, повышая операционную эффективность.
Подход Didit, ориентированный на разработчиковDidit упрощает управление веб-хуками благодаря четкой документации API, легкой ротации секретных ключей и модульной архитектуре, позволяя разработчикам быстро создавать и развертывать настраиваемые рабочие процессы, управляемые событиями, с бесплатным базовым KYC и без платы за настройку.
Мощь веб-хуков в проверке личности
В мире проверки личности обратная связь в реальном времени имеет первостепенное значение. Независимо от того, регистрируете ли вы новых пользователей, проводите проверку на соответствие требованиям AML или проверяете возраст, знание результата сеанса проверки по мере его выполнения позволяет принимать динамичные решения и обеспечивать бесперебойное взаимодействие с пользователем. Именно здесь веб-хуки проявляют себя наилучшим образом. Вместо постоянного опроса API на предмет обновлений статуса, Didit отправляет автоматическое уведомление на указанную вами конечную точку всякий раз, когда происходит значимое событие, такое как завершение сеанса проверки или изменение статуса. Эта модель, основанная на push-уведомлениях, более эффективна, снижает накладные расходы на вызовы API и гарантирует, что ваши системы всегда будут в курсе последних результатов проверки личности.
Интеграция мощных возможностей проверки личности Didit часто включает настройку надежного обработчика веб-хуков. Этот обработчик выступает в качестве глаз и ушей вашего приложения, получая критически важные обновления о статусе проверки личности, обнаружении активности или результатах проверки AML. Хорошо реализованная система веб-хуков является краеугольным камнем современных архитектур, управляемых событиями, обеспечивая гибкость, необходимую для быстрого реагирования на результаты проверки и поддержания бесперебойного взаимодействия с пользователем.
Настройка бессерверного обработчика веб-хуков с AWS Lambda и API Gateway
Создание масштабируемого и отказоустойчивого обработчика веб-хуков может быть сложной задачей, но с AWS Lambda и API Gateway в сочетании с Serverless Framework это становится удивительно простым. Этот бессерверный подход означает, что вам не нужно управлять какими-либо серверами; AWS обрабатывает всю инфраструктуру, автоматически масштабируя ваш обработчик в зависимости от спроса. Для нашего обработчика веб-хуков Didit мы будем использовать TypeScript для обеспечения типобезопасности и повышения производительности разработчиков.
Предварительные требования:
- Учетная запись AWS
- Установленные Node.js и npm
- Установленный Serverless Framework (
npm install -g serverless) - Учетная запись Didit с ключами API и секретом веб-хука (из Консоли Didit -> Настройки -> Ключи API)
Настройка проекта:
Сначала создайте новый проект Serverless:
serverless create --template aws-nodejs-typescript --path didit-webhook-listener
cd didit-webhook-listener
npm install
Теперь настроим serverless.yml для определения нашей функции Lambda и конечной точки API Gateway:
service: didit-webhook-listener
provider:
name: aws
runtime: nodejs18.x
stage: dev
region: us-east-1
environment:
DIDIT_WEBHOOK_SECRET: ${ssm:/didit/webhook/secret}
functions:
handleDiditWebhook:
handler: src/handler.handleDiditWebhook
events:
- http:
path: webhook/didit
method: post
cors: true
plugins:
- serverless-offline
- serverless-dotenv-plugin
- serverless-ssm-fetch
Обратите внимание, что мы получаем DIDIT_WEBHOOK_SECRET из хранилища параметров AWS SSM, что является лучшей практикой для управления секретами. Вам нужно будет сохранить свой секрет веб-хука Didit там. Didit позволяет легко менять секретный ключ через API или консоль Didit, обеспечивая хорошую гигиену безопасности.
Реализация безопасной обработки веб-хуков на TypeScript
Наиболее важным аспектом любого обработчика веб-хуков является безопасность. Вы должны убедиться, что входящие запросы действительно поступают от Didit и не были изменены. Didit предоставляет общий секретный ключ для этой цели, который вы используете для проверки подписи HMAC, включенной в заголовок веб-хука x-didit-signature.
Создайте src/handler.ts:
import { APIGatewayProxyHandler } from 'aws-lambda';
import * as crypto from 'crypto';
const DIDIT_WEBHOOK_SECRET = process.env.DIDIT_WEBHOOK_SECRET || '';
export const handleDiditWebhook: APIGatewayProxyHandler = async (event) => {
if (!event.body) {
return { statusCode: 400, body: 'No body received' };
}
const signature = event.headers['x-didit-signature'];
if (!signature) {
console.warn('Webhook received without x-didit-signature header.');
return { statusCode: 403, body: 'Missing signature' };
}
try {
const expectedSignature = crypto
.createHmac('sha256', DIDIT_WEBHOOK_SECRET)
.update(event.body)
.digest('hex');
if (expectedSignature !== signature) {
console.error('Webhook signature mismatch. Expected:', expectedSignature, 'Received:', signature);
return { statusCode: 403, body: 'Invalid signature' };
}
const payload = JSON.parse(event.body);
console.log('Successfully verified and parsed Didit webhook:', payload);
// Implement your business logic here based on the webhook payload
// Examples: update user status, trigger further actions, store results
// For instance, if it's an ID Verification completion:
// if (payload.event_type === 'session.completed' && payload.data.workflow_type === 'kyc') {
// console.log('KYC Session Completed for vendor_data:', payload.data.vendor_data);
// // Process KYC results, update user profile, etc.
// }
return { statusCode: 200, body: 'Webhook received and processed' };
} catch (error) {
console.error('Error processing webhook:', error);
return { statusCode: 500, body: 'Internal server error' };
}
};
В этом коде мы вычисляем хэш HMAC SHA256 необработанного тела запроса, используя ваш DIDIT_WEBHOOK_SECRET, и сравниваем его с заголовком x-didit-signature, предоставленным Didit. Если они не совпадают, запрос отклоняется, предотвращая несанкционированный доступ или поддельные события. Этот надежный процесс проверки необходим для поддержания безопасности и целостности ваших рабочих процессов проверки личности, особенно при работе с конфиденциальными данными из служб проверки личности, сопоставления лиц или проверки AML Didit.
Настройка Didit для отправки веб-хуков
После того как ваша функция Lambda развернута и у вас есть URL-адрес конечной точки API Gateway, последний шаг — сообщить Didit, куда отправлять его веб-хуки. Это можно легко сделать с помощью Didit Management API или через Didit Business Console.
Через Didit Management API:
Вы можете программно обновить конфигурацию веб-хуков, используя конечную точку PATCH /v3/webhook/. Это позволяет вам установить webhook_url, указать webhook_version (рекомендуется v3) и даже безопасно сменить secret_shared_key.
curl -X PATCH https://verification.didit.me/v3/webhook/ \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_DIDIT_API_KEY" \
-d '{
"webhook_url": "YOUR_API_GATEWAY_ENDPOINT",
"webhook_version": "v3"
}'
Замените YOUR_DIDIT_API_KEY на ваш фактический ключ API Didit, а YOUR_API_GATEWAY_ENDPOINT на URL-адрес, предоставленный AWS API Gateway после развертывания вашей бессерверной функции.
Через Didit Business Console:
В качестве альтернативы перейдите в Консоль Didit, затем в Настройки -> Веб-хуки и просто вставьте URL-адрес конечной точки API Gateway в соответствующее поле. Вы также можете просмотреть и сменить секретный ключ веб-хука здесь. Модульная конструкция Didit гарантирует простоту настройки этих жизненно важных интеграций, позволяя вам сосредоточиться на создании основного приложения.
Как Didit помогает
Didit предоставляет AI-нативную платформу идентификации, ориентированную на разработчиков, которая делает интеграцию расширенной проверки личности простой и безопасной. Наша модульная архитектура позволяет вам выбирать именно те компоненты, которые вам нужны, от проверки личности (OCR, MRZ, штрих-коды) и пассивного и активного обнаружения активности до сопоставления лиц 1:1, проверки и мониторинга AML и оценки возраста. Предлагая бесплатный базовый KYC и отсутствие платы за настройку, Didit позволяет предприятиям любого размера внедрять надежные решения для идентификации без непомерных затрат.
Наша обширная документация API и мгновенная среда песочницы гарантируют, что разработчики могут быстро приступить к работе, а наша система веб-хуков, как показано, разработана для надежности и безопасности. С Didit вы получаете доступ к глобальной сети проверки, оркестрированным рабочим процессам и структурированным данным идентификации, все это предоставляется через чистые API. Это означает, что вы можете уверенно создавать настраиваемые обработчики веб-хуков, которые беспрепятственно интегрируются с мощной серверной частью Didit, обеспечивая обновления в реальном времени для всех ваших потребностей в проверке личности.
Готовы начать?
Готовы увидеть Didit в действии? Получите бесплатную демонстрацию сегодня.
Начните бесплатно проверять личности с бесплатным уровнем Didit.