Didit을 활용한 실시간 신원 위험 점수 평가를 위한 FastAPI 미들웨어 구축 (KO)
Didit 웹훅을 사용하여 FastAPI 애플리케이션에 강력한 실시간 신원 위험 점수 평가를 구현하세요. 이 가이드는 안전한 웹훅 처리, 서명 검증 설정, 그리고 위험 신호를 애플리케이션에 통합하는 방법을 다룹니다.

실시간 위험 점수 평가는 필수적입니다. 현대 애플리케이션은 사기를 효과적으로 방지하고 규정 준수를 보장하기 위해 즉각적인 신원 위험 평가를 요구합니다.
안전한 웹훅 처리는 매우 중요합니다. 수신되는 웹훅에 대한 강력한 서명 검증 및 타임스탬프 확인을 구현하면 데이터 무결성 유지에 필수적인 변조 및 재전송 공격을 방지할 수 있습니다.
FastAPI 미들웨어는 통합을 간소화합니다. FastAPI의 미들웨어 기능을 활용하면 비동기 웹훅 이벤트를 중앙 집중식으로 효율적으로 처리하여 애플리케이션 흐름과 원활하게 통합할 수 있습니다.
Didit은 지능적인 신원 오케스트레이션을 지원합니다. Didit은 AI 기반 신원 확인 및 웹훅 인프라를 제공하여 실시간 알림과 포괄적인 위험 신호를 통해 애플리케이션의 보안 결정을 지원합니다.
오늘날의 디지털 환경에서 신원 확인의 속도와 정확성은 애플리케이션의 보안 상태와 사용자 경험에 직접적인 영향을 미칩니다. 비즈니스가 확장됨에 따라 실시간 위험 점수 평가의 필요성은 사기 행위에 대한 즉각적인 조치를 취하고 규제 표준 준수를 보장하는 데 매우 중요해집니다. Didit과 같은 고급 신원 확인 플랫폼을 FastAPI와 같은 최신 프레임워크를 사용하여 백엔드와 통합하면 방어력을 크게 향상시킬 수 있습니다.
이 블로그 게시물은 Didit의 웹훅을 처리하여 실시간 신원 위험 점수 평가를 위한 강력한 FastAPI 미들웨어를 구축하는 과정을 안내합니다. 안전한 웹훅 수신, 서명 검증, 그리고 이러한 중요한 위험 신호를 애플리케이션 로직에 통합하는 방법을 다룰 것입니다.
실시간 신원 신호를 위한 웹훅의 힘
웹훅은 현대 비동기 통신의 초석이며, 특정 이벤트가 발생할 때 서비스가 다른 애플리케이션에 실시간 알림을 보낼 수 있도록 합니다. 신원 확인의 경우, 이는 사용자가 확인 단계를 완료하거나 위험 평가가 완료되는 즉시 Didit이 애플리케이션에 즉시 알릴 수 있음을 의미합니다. 이러한 실시간 피드백은 동적 위험 점수 평가에 중요하며, 다음을 수행할 수 있도록 합니다.
- 사용자 프로필을 즉시 업데이트: 신분증 확인 또는 AML 심사 결과에 따라 사용자를 확인된 상태로 표시하거나 검토 대상으로 지정합니다.
- 조건부 워크플로우 트리거: 사용자가 라이브니스 감지 검사에 실패하거나 AML 심사 중 플래그가 지정된 경우, 즉시 심층 검토 프로세스를 시작하거나 접근을 차단할 수 있습니다.
- 사기 탐지 강화: IP 분석 또는 전화 확인 결과와 같은 Didit의 위험 신호를 내부 사기 모델과 결합하여 보다 포괄적인 평가를 수행합니다.
Didit의 웹훅은 신분증 확인, 수동 및 능동 라이브니스, 1:1 얼굴 매칭, AML 심사 및 모니터링, 주소 증명, 전화 및 이메일 확인을 포함한 다양한 확인 검사 결과를 포함하는 상세한 JSON 페이로드를 제공합니다. 이러한 풍부한 데이터 포인트는 각 사용자에 대한 실시간 위험 프로필을 구성하는 데 매우 중요합니다.
FastAPI 미들웨어로 웹훅 엔드포인트 보호
웹훅을 안전하게 수신하는 것은 필수적입니다. 악의적인 행위자는 가짜 이벤트를 보내거나 오래된 이벤트를 재전송하여 데이터 손상 또는 잘못된 조치를 유발할 수 있습니다. Didit의 웹훅에는 HMAC-SHA256 서명과 타임스탬프가 포함되어 있으며, 이는 각 수신 요청의 진위와 무결성을 확인하는 데 필수적입니다. FastAPI 미들웨어는 이러한 보안 검사를 중앙에서 구현하기에 탁월한 장소입니다.
FastAPI 미들웨어를 구성하는 개념적 개요는 다음과 같습니다.
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" # Didit 콘솔 -> API 키에서 가져옵니다.
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. 타임스탬프 신선도 확인 (예: 5분 이내)
try:
request_time = int(timestamp)
if abs(time.time() - request_time) > 300: # 300초 = 5분
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. 서명된 페이로드 재구성
body = await request.body()
signed_payload = f"{timestamp}.{body.decode('utf-8')}"
# 3. 예상 서명 계산
expected_signature = hmac.new(
WEBHOOK_SECRET.encode('utf-8'),
signed_payload.encode('utf-8'),
hashlib.sha256
).hexdigest()
# 4. 서명 비교
if not hmac.compare_digest(expected_signature, signature):
raise HTTPException(status_code=401, detail="Invalid webhook signature")
# 서명과 타임스탬프가 유효하면 진행
request.state.didit_webhook_body = body.decode('utf-8') # 나중에 처리를 위해 저장
return await call_next(request)
app = FastAPI()
app.add_middleware(DiditWebhookSignatureMiddleware)
@app.post("/api/webhooks/didit")
async def handle_didit_webhook(request: Request):
# 웹훅 본문은 이미 확인되었으며 request.state에서 사용 가능합니다.
payload = json.loads(request.state.didit_webhook_body)
# 위험 점수 평가를 위해 페이로드를 처리하고 사용자 상태 등을 업데이트합니다.
print("Received valid Didit webhook:", payload)
return JSONResponse({"status": "success"})
이 미들웨어는 애플리케이션 로직이 페이로드를 보기 전에 /api/webhooks/didit 엔드포인트에 들어오는 모든 Didit 웹훅 요청이 인증되고 최신 상태인지 확인합니다. 이는 다양한 공격 벡터에 대한 중요한 방어 계층입니다.
실시간 위험 신호를 애플리케이션 로직에 통합
웹훅 페이로드가 확인되고 구문 분석되면 애플리케이션은 사용자 위험 점수를 업데이트하거나 특정 작업을 트리거하는 데 필요한 정보를 추출할 수 있습니다. Didit의 API 전체 흐름 문서는 session_id, vendor_data(내부 사용자 ID), 그리고 각 확인 단계의 상세 결과를 포함하여 이러한 페이로드의 포괄적인 구조를 설명합니다.
예를 들어, 사용자가 신분증 확인 및 라이브니스 감지를 거치면 웹훅 페이로드에는 이러한 검사의 상태가 포함됩니다. 다음을 기반으로 위험 점수를 정의할 수 있습니다.
- 성공적인 신분증 확인: 위험 점수를 낮춥니다.
- 라이브니스 감지 실패: 위험 점수를 상당히 높여 계정 동결을 유발할 수 있습니다.
- AML 심사 적중 (PEP/제재): 높은 위험, 즉각적인 수동 검토가 필요합니다.
- 일회용 전화번호 감지 (전화 확인에서): 중간 위험, 사기 의도를 나타낼 수 있습니다.
웹훅 핸들러의 역할은 이러한 신호를 해석하고 그에 따라 내부 사용자 상태 또는 위험 프로필을 업데이트하는 것입니다. 여기에는 데이터베이스의 user_status 필드를 업데이트하거나 수동 검토를 위한 플래그를 추가하거나 전용 사기 관리 시스템과 통합하는 것이 포함될 수 있습니다.
Didit이 도움이 되는 방법
Didit은 실시간 신원 위험 점수 평가를 원활하고 효율적으로 만들기 위해 설계된 AI 기반, 개발자 우선 신원 플랫폼입니다. 당사의 모듈식 아키텍처를 통해 기본적인 신분증 확인부터 고급 AML 심사 및 수동/능동 라이브니스 감지까지 고객의 요구 사항을 정확하게 충족하는 확인 워크플로우를 구성할 수 있습니다. 당사는 강력한 웹훅 기능을 제공하여 애플리케이션이 확인 결과에 대한 실시간의 안전한 알림을 받을 수 있도록 합니다.
Didit을 통해 다음과 같은 이점을 누릴 수 있습니다.
- 무료 핵심 KYC: 초기 투자 없이 통합을 구축하고 테스트할 수 있도록 필수 신원 확인을 무료로 시작하세요.
- AI 기반 지능: 탁월한 사기 탐지, 라이브니스 감지 및 문서 분석을 위해 최첨단 AI를 활용하여 정확한 위험 신호를 제공합니다.
- 개발자 우선 접근 방식: 깔끔한 API, 포괄적인 문서, 즉각적인 샌드박스를 통해 FastAPI와 같은 프레임워크와의 통합을 간단하고 빠르게 만듭니다.
- 오케스트레이션된 워크플로우: 노코드 엔진으로 복잡한 확인 흐름을 정의하여 코드 변경 없이 진화하는 위험 환경에 적응할 수 있습니다.
- 글로벌 커버리지: 다양한 문서 유형 및 지역 규정 준수 요구 사항을 지원하여 전 세계적으로 신원을 확인합니다.
Didit의 전화 및 이메일 확인, 신분증 확인, AML 심사 및 모니터링 제품을 안전한 웹훅 인프라와 결합하여 FastAPI 애플리케이션 내에서 고도로 반응적이고 탄력적인 신원 위험 점수 평가 시스템을 구축할 수 있습니다. 당사 플랫폼은 정보에 입각한 결정을 내리고 비즈니스를 보호하는 데 필요한 실시간 데이터를 제공합니다.
시작할 준비가 되셨나요?
Didit의 작동 방식을 확인하세요. 지금 무료 데모를 받아보세요.
Didit의 무료 티어로 무료로 신원 확인을 시작하세요.