Mengamankan Webhook dengan Cloudflare Workers: Panduan Integrasi Didit (ID-1)
Pelajari cara membangun endpoint webhook yang kuat dan aman untuk verifikasi identitas Didit menggunakan Cloudflare Workers. Panduan ini mencakup verifikasi tanda tangan HMAC, validasi stempel waktu, dan praktik terbaik untuk.

Keamanan yang Ditingkatkan dengan Cloudflare WorkersCloudflare Workers menyediakan lingkungan tanpa server yang ideal untuk memproses webhook dengan aman, menawarkan perlindungan tingkat edge dan verifikasi tanda tangan yang efisien.
Verifikasi Tanda Tangan HMAC Sangat PentingSelalu verifikasi tanda tangan HMAC-SHA256 dari webhook yang masuk untuk memastikan keaslian dan integritasnya, mencegah injeksi atau perusakan data yang tidak sah.
Validasi Stempel Waktu Mengurangi Serangan ReplayTerapkan pemeriksaan stempel waktu untuk memastikan permintaan webhook masih baru, menjaga dari serangan replay di mana permintaan lama yang sah dikirim ulang oleh aktor jahat.
Didit Menyederhanakan Verifikasi Identitas AmanPlatform AI-native Didit menyediakan notifikasi webhook real-time yang kuat untuk semua produk verifikasi identitas, memastikan pengiriman data yang aman dan andal untuk aplikasi Anda.
Dalam lanskap digital yang saling terhubung saat ini, webhook adalah fondasi komunikasi real-time antar layanan. Mereka memungkinkan notifikasi instan untuk peristiwa seperti hasil verifikasi identitas, konfirmasi pembayaran, dan aktivitas pengguna. Namun, kenyamanan webhook datang dengan tantangan keamanan yang kritis: memastikan keaslian dan integritas data yang diterima. Tanpa pengamanan yang tepat, aplikasi Anda bisa rentan terhadap pemalsuan, perusakan, atau serangan replay.
Panduan ini akan memandu Anda dalam membangun endpoint webhook yang aman untuk verifikasi identitas Didit menggunakan Cloudflare Workers. Cloudflare Workers menawarkan platform tanpa server yang kuat di edge, ideal untuk memproses dan mengamankan webhook dengan latensi minimal dan keandalan maksimum. Didit, sebagai platform identitas AI-native, mengandalkan webhook yang aman untuk mengirimkan notifikasi KYC real-time, menjadikan integrasi ini krusial bagi setiap bisnis yang memanfaatkan solusi verifikasi identitas Didit yang kuat.
Mengapa Mengamankan Webhook Anda?
Bayangkan menerima notifikasi webhook yang secara salah mengklaim bahwa pengguna telah lulus Verifikasi ID, padahal sebenarnya mereka gagal. Atau mungkin aktor jahat memutar ulang webhook lama yang sah untuk memicu tindakan di sistem Anda berkali-kali. Skenario ini menyoroti kebutuhan kritis akan keamanan webhook.
Ancaman utama terhadap endpoint webhook meliputi:
- Spoofing: Penyerang mengirim webhook palsu, berpura-pura menjadi Didit, untuk mengelabui sistem Anda agar melakukan tindakan yang tidak sah.
- Tampering: Penyerang mencegat webhook yang sah dan memodifikasi muatannya sebelum mencapai server Anda.
- Serangan Replay: Penyerang menangkap webhook yang sah dan mengirimkannya lagi nanti untuk memicu tindakan yang sama lagi, berpotensi menyebabkan transaksi duplikat atau masalah lainnya.
Mengamankan webhook Anda melibatkan verifikasi identitas pengirim dan memastikan data belum diubah. Didit menyediakan mekanisme yang kuat untuk ini melalui tanda tangan HMAC-SHA256 dan validasi stempel waktu, yang akan kami terapkan di Cloudflare Worker kami.
Menyiapkan Rahasia Webhook Didit Anda
Sebelum Anda dapat memverifikasi webhook Didit, Anda memerlukan Kunci Rahasia Webhook unik Anda. Kunci ini sangat penting untuk verifikasi tanda tangan kriptografi. Berikut cara mengambilnya:
- Masuk ke Konsol Didit Anda.
- Navigasi ke Pengaturan → Kunci API.
- Salin Kunci Rahasia Webhook Anda.
Kunci rahasia ini harus disimpan dengan aman dan tidak pernah diekspos secara publik. Untuk Cloudflare Workers, yang terbaik adalah menyimpannya sebagai rahasia Worker atau variabel lingkungan.
Membangun Cloudflare Worker yang Aman untuk Webhook Didit
Cloudflare Workers adalah aplikasi JavaScript, TypeScript, atau WebAssembly yang berjalan di jaringan global Cloudflare, dekat dengan pengguna Anda. Ini membuatnya sangat cepat dan skalabel untuk menangani permintaan webhook yang masuk. Berikut adalah panduan langkah demi langkah untuk membuat Worker yang memproses webhook Didit dengan aman.
1. Buat Cloudflare Worker Anda
Pertama, siapkan proyek Cloudflare Worker baru. Anda dapat melakukannya menggunakan alat CLI wrangler:
npx wrangler generate didit-webhook-handler
cd didit-webhook-handler
2. Tambahkan Rahasia Webhook Didit Anda sebagai Rahasia Cloudflare
Untuk menjaga rahasia webhook Anda tetap aman, tambahkan sebagai rahasia ke Worker Anda:
npx wrangler secret put DIDIT_WEBHOOK_SECRET
Saat diminta, tempel Kunci Rahasia Webhook Anda dari Konsol Didit.
3. Terapkan Logika Webhook di index.js
File index.js Worker Anda akan berisi logika untuk menerima, memvalidasi, dan memproses webhook Didit. Langkah-langkah intinya adalah:
- Baca Badan Permintaan Mentah: Tanda tangan HMAC dihasilkan dari badan permintaan mentah, jadi sangat penting untuk tidak menguraikannya sebelum verifikasi.
- Verifikasi Tanda Tangan HMAC-SHA256: Bandingkan tanda tangan yang disediakan di header
X-Signaturedengan tanda tangan yang Anda hasilkan menggunakanDIDIT_WEBHOOK_SECRETAnda dan badan permintaan mentah. - Validasi Stempel Waktu: Periksa header
X-Timestampuntuk memastikan permintaan masih baru (misalnya, dalam 5 menit) untuk mencegah serangan replay. - Uraikan JSON dan Proses: Jika verifikasi berhasil, uraikan badan JSON dan tangani hasil verifikasi identitas.
Berikut adalah contoh dasar kode Worker:
import { createHmac } from 'crypto'; // Cloudflare Workers provide 'crypto' module
export default {
async fetch(request, env, ctx) {
if (request.method !== 'POST') {
return new Response('Method Not Allowed', { status: 405 });
}
const diditWebhookSecret = env.DIDIT_WEBHOOK_SECRET;
if (!diditWebhookSecret) {
return new Response('Webhook secret not configured', { status: 500 });
}
const signature = request.headers.get('X-Signature');
const timestamp = request.headers.get('X-Timestamp');
const rawBody = await request.text();
if (!signature || !timestamp || !rawBody) {
return new Response('Missing required webhook headers or body', { status: 400 });
}
// 1. Validate Timestamp (e.g., within 5 minutes)
const FIVE_MINUTES_IN_SECONDS = 300;
const currentTimestamp = Math.floor(Date.now() / 1000);
if (Math.abs(currentTimestamp - parseInt(timestamp, 10)) > FIVE_MINUTES_IN_SECONDS) {
return new Response('Webhook timestamp too old or in the future', { status: 403 });
}
// 2. Verify HMAC-SHA256 Signature
const expectedSignature = createHmac('sha256', diditWebhookSecret)
.update(`${timestamp}.${rawBody}`)
.digest('hex');
if (expectedSignature !== signature) {
return new Response('Invalid webhook signature', { status: 403 });
}
// 3. Process the webhook payload
try {
const payload = JSON.parse(rawBody);
// Log or process the payload, e.g., update user status in your database
console.log('Received Didit webhook:', payload);
// Example: Accessing verification status
if (payload.event === 'session.completed' && payload.data.status === 'approved') {
console.log(`User ${payload.data.vendor_data} successfully verified.`);
// Trigger further actions like granting access or updating user profile
}
// Didit offers various products like ID Verification, Passive & Active Liveness, and AML Screening.
// The webhook payload will reflect results from these checks.
return new Response('Webhook processed successfully', { status: 200 });
} catch (error) {
console.error('Error parsing webhook body:', error);
return new Response('Error parsing JSON payload', { status: 400 });
}
},
};
4. Sebarkan Worker Anda
Setelah kode Anda siap, sebarkan ke Cloudflare:
npx wrangler deploy
Setelah penyebaran, Cloudflare akan memberi Anda URL untuk Worker Anda. Ini adalah endpoint yang akan Anda konfigurasikan di Konsol Didit Anda untuk menerima webhook.
Mengonfigurasi Didit untuk Mengirim Webhook
Dengan Cloudflare Worker Anda yang aman telah disebarkan, langkah terakhir adalah memberi tahu Didit ke mana harus mengirim notifikasi real-time Anda:
- Kembali ke Konsol Didit Anda.
- Navigasi ke Alur Kerja dan pilih alur kerja yang ingin Anda konfigurasikan (misalnya, alur kerja KYC Anda yang menggunakan Verifikasi ID Didit dan Liveness Pasif & Aktif).
- Di pengaturan alur kerja, temukan konfigurasi URL Webhook.
- Masukkan URL Cloudflare Worker Anda yang telah disebarkan.
- Simpan perubahan Anda.
Sekarang, setiap kali sesi verifikasi identitas selesai atau statusnya berubah, Didit akan mengirim notifikasi webhook yang aman ke Cloudflare Worker Anda, yang kemudian akan memvalidasi dan memprosesnya.
Bagaimana Didit Membantu
Didit dirancang dengan keamanan dan pengalaman pengembang sebagai intinya. Platform identitas AI-native kami menyediakan arsitektur modular yang memungkinkan Anda menyusun alur kerja verifikasi yang kompleks dengan mudah. Ketika datang ke webhook, Didit menyederhanakan proses dengan:
- Menyediakan Notifikasi Webhook Aman: Semua webhook Didit ditandatangani dengan tanda tangan HMAC-SHA256 dan menyertakan stempel waktu, memastikan keaslian dan integritas data yang Anda terima. Ini sangat penting untuk produk seperti Verifikasi ID, Pencocokan Wajah 1:1, dan Penyaringan AML, di mana akurasi data sangat penting.
- Pembaruan Real-time: Dapatkan notifikasi instan untuk setiap tahap proses verifikasi, memungkinkan aplikasi Anda bereaksi segera terhadap hasil verifikasi pengguna.
- Data Komprehensif: Muatan Webhook mencakup semua detail yang diperlukan tentang sesi verifikasi, termasuk hasil dari berbagai produk Didit seperti Liveness Pasif & Aktif, Verifikasi Telepon & Email, dan Bukti Alamat.
- Pendekatan Mengutamakan Pengembang: Didit menawarkan sandbox instan, dokumentasi publik yang jelas, dan API yang bersih, membuat integrasi menjadi mudah. Tingkat KYC Inti Gratis kami dan model bayar-per-pemeriksaan-berhasil, tanpa biaya pengaturan, memudahkan untuk memulai dan skala.
Dengan mengintegrasikan webhook Didit dengan Cloudflare Worker yang aman, Anda membangun saluran yang tangguh dan dapat dipercaya untuk pembaruan verifikasi identitas real-time, melindungi bisnis Anda dan pengguna Anda.
Siap untuk Memulai?
Siap melihat Didit beraksi? Dapatkan demo gratis hari ini.
Mulai verifikasi identitas secara gratis dengan tingkat gratis Didit.