FastAPI Middleware для оценки рисков идентификации в реальном времени с Didit (RU-1)
Внедрите надежную оценку рисков идентификации в реальном времени в ваших FastAPI-приложениях с помощью веб-хуков Didit. Это руководство охватывает безопасную обработку веб-хуков, проверку подписи и интеграцию сигналов риска в.

Оценка рисков в реальном времени крайне важна. Современные приложения требуют немедленной оценки рисков идентификации для эффективной борьбы с мошенничеством и обеспечения соответствия требованиям.
Безопасная обработка веб-хуков является первостепенной задачей. Внедрение надежной проверки подписи и временных меток для входящих веб-хуков предотвращает подделку и атаки повторного воспроизведения, что критически важно для поддержания целостности данных.
FastAPI Middleware упрощает интеграцию. Использование возможностей middleware FastAPI позволяет централизованно и эффективно обрабатывать асинхронные события веб-хуков, бесшовно интегрируясь с потоком вашего приложения.
Didit обеспечивает интеллектуальную оркестрацию идентификации. Didit предоставляет AI-нативную верификацию личности и инфраструктуру веб-хуков, предлагая уведомления в реальном времени и исчерпывающие сигналы риска для принятия решений о безопасности вашего приложения.
В современном цифровом мире скорость и точность проверки личности напрямую влияют на безопасность приложения и удобство использования. По мере роста бизнеса потребность в оценке рисков в реальном времени становится первостепенной, что позволяет немедленно реагировать на мошеннические действия и обеспечивать соответствие нормативным стандартам. Интеграция передовой платформы проверки личности, такой как Didit, с вашим бэкендом, особенно с использованием современного фреймворка, такого как FastAPI, может значительно усилить вашу защиту.
Эта статья в блоге проведет вас через создание надежного FastAPI middleware для обработки веб-хуков Didit с целью оценки рисков идентификации в реальном времени. Мы рассмотрим безопасный прием веб-хуков, проверку подписи и способы интеграции этих критически важных сигналов риска в логику вашего приложения.
Сила веб-хуков для сигналов идентификации в реальном времени
Веб-хуки являются краеугольным камнем современной асинхронной связи, позволяя сервисам отправлять уведомления в реальном времени другим приложениям при возникновении определенных событий. Для проверки личности это означает, что как только пользователь завершает этап проверки или завершается оценка риска, Didit может немедленно информировать ваше приложение. Эта обратная связь в реальном времени имеет решающее значение для динамической оценки рисков, позволяя вам:
- Мгновенно обновлять профили пользователей: Отмечать пользователей как проверенных или помечать их для проверки на основе результатов ID Verification или AML Screening.
- Запускать условные рабочие процессы: Если пользователь не проходит проверку на живость (Liveness detection) или помечен во время AML Screening, вы можете немедленно инициировать более глубокий процесс проверки или заблокировать доступ.
- Улучшать обнаружение мошенничества: Объединять сигналы риска Didit, такие как результаты IP-анализа или проверки телефона, с вашими внутренними моделями мошенничества для более всесторонней оценки.
Веб-хуки Didit предоставляют подробные JSON-полезные данные с результатами различных проверок, включая проверку личности, пассивную и активную проверку на живость, сопоставление лиц 1:1, AML-скрининг и мониторинг, подтверждение адреса и проверку телефона и электронной почты. Эти богатые данные бесценны для построения профиля риска в реальном времени для каждого пользователя.
Защита вашего веб-хук-эндпоинта с помощью FastAPI Middleware
Безопасный прием веб-хуков является обязательным условием. Злоумышленники могут попытаться отправить поддельные события или повторить старые, что приведет к компрометации данных или неправильным действиям. Веб-хуки Didit включают подпись HMAC-SHA256 и временную метку, которые необходимы для проверки подлинности и целостности каждого входящего запроса. FastAPI middleware — отличное место для централизованной реализации этих проверок безопасности.
Вот концептуальная схема того, как вы могли бы структурировать свой FastAPI middleware:
import hmac
import hashlib
import time
from fastapi import FastAPI, Request, HTTPException
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.responses import JSONResponse
WEBHOOK_SECRET = "YOUR_DIDIT_WEBHOOK_SECRET" # Get this from Didit Console -> API Keys
class DiditWebhookSignatureMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next):
if request.url.path == "/api/webhooks/didit":
signature = request.headers.get("X-Signature")
timestamp = request.headers.get("X-Timestamp")
if not signature or not timestamp:
raise HTTPException(status_code=401, detail="Missing webhook signature or timestamp")
# 1. Verify Timestamp Freshness (e.g., within 5 minutes)
try:
request_time = int(timestamp)
if abs(time.time() - request_time) > 300: # 300 seconds = 5 minutes
raise HTTPException(status_code=401, detail="Webhook timestamp too old or too new")
except ValueError:
raise HTTPException(status_code=401, detail="Invalid timestamp format")
# 2. Reconstruct the signed payload
body = await request.body()
signed_payload = f"{timestamp}.{body.decode('utf-8')}"
# 3. Calculate expected signature
expected_signature = hmac.new(
WEBHOOK_SECRET.encode('utf-8'),
signed_payload.encode('utf-8'),
hashlib.sha256
).hexdigest()
# 4. Compare signatures
if not hmac.compare_digest(expected_signature, signature):
raise HTTPException(status_code=401, detail="Invalid webhook signature")
# If signature and timestamp are valid, proceed
request.state.didit_webhook_body = body.decode('utf-8') # Store for later processing
return await call_next(request)
app = FastAPI()
app.add_middleware(DiditWebhookSignatureMiddleware)
@app.post("/api/webhooks/didit")
async def handle_didit_webhook(request: Request):
# Webhook body is already verified and available in request.state
payload = json.loads(request.state.didit_webhook_body)
# Process payload for risk scoring, update user status, etc.
print("Received valid Didit webhook:", payload)
return JSONResponse({"status": "success"})
Этот middleware гарантирует, что каждый запрос веб-хука Didit, поступающий на ваш эндпоинт /api/webhooks/didit, будет аутентифицирован и актуален, прежде чем логика вашего приложения даже увидит полезную нагрузку. Это критически важный уровень защиты от различных векторов атак.
Интеграция сигналов риска в реальном времени в логику вашего приложения
После проверки и парсинга полезной нагрузки веб-хука ваше приложение может извлечь необходимую информацию для обновления показателей риска пользователя или запуска определенных действий. Документация Didit API Full Flow описывает исчерпывающую структуру этих полезных нагрузок, включая session_id, vendor_data (ваш внутренний идентификатор пользователя) и подробные результаты каждого этапа проверки.
Например, если пользователь проходит проверку личности и проверку на живость, полезная нагрузка веб-хука будет содержать статус этих проверок. Вы можете определить показатель риска на основе:
- Успешная проверка личности: Снижает показатель риска.
- Неудачная проверка на живость: Значительно повышает показатель риска, потенциально приводя к заморозке учетной записи.
- Срабатывание AML-скрининга (PEP/Санкции): Высокий риск, требующий немедленного ручного рассмотрения.
- Обнаружен одноразовый номер телефона (из проверки телефона): Умеренный риск, может указывать на мошеннические намерения.
Задача вашего обработчика веб-хуков состоит в том, чтобы интерпретировать эти сигналы и соответствующим образом обновлять внутреннее состояние пользователя или профиль риска. Это может включать обновление поля user_status в вашей базе данных, добавление флага для ручной проверки или даже интеграцию с выделенной системой управления мошенничеством.
Как Didit помогает
Didit — это AI-нативная, ориентированная на разработчиков платформа идентификации, разработанная для обеспечения бесшовной и эффективной оценки рисков идентификации в реальном времени. Наша модульная архитектура позволяет вам составлять рабочие процессы проверки, которые точно соответствуют вашим потребностям, от базовой проверки личности до расширенного AML-скрининга и пассивного и активного обнаружения живости. Мы предоставляем надежные возможности веб-хуков, гарантируя, что ваши приложения получают безопасные уведомления в реальном времени о результатах проверки.
С Didit вы получаете:
- Бесплатный Core KYC: Начните с основных проверок личности без затрат, что позволит вам создавать и тестировать вашу интеграцию без предварительных инвестиций.
- AI-нативный интеллект: Используйте передовой ИИ для превосходного обнаружения мошенничества, обнаружения живости и анализа документов, предоставляя точные сигналы риска.
- Подход, ориентированный на разработчиков: Чистые API, исчерпывающая документация и мгновенная песочница делают интеграцию с такими фреймворками, как FastAPI, простой и быстрой.
- Оркестрированные рабочие процессы: Определяйте сложные потоки проверки с помощью движка без кода, что позволяет вам адаптироваться к изменяющимся ландшафтам рисков без изменения кода.
- Глобальное покрытие: Проверяйте личности по всему миру с поддержкой различных типов документов и региональных требований соответствия.
Используя продукты Didit для проверки телефона и электронной почты, проверки личности и AML-скрининга и мониторинга, в сочетании с нашей безопасной инфраструктурой веб-хуков, вы можете создать высокоотзывчивую и устойчивую систему оценки рисков идентификации в вашем приложении FastAPI. Наша платформа предоставляет данные в реальном времени, необходимые для принятия обоснованных решений и защиты вашего бизнеса.
Готовы начать?
Готовы увидеть Didit в действии? Получите бесплатную демонстрацию сегодня.
Начните бесплатно проверять личности с бесплатным тарифом Didit.