Episode ini membawa 2FA ke level enterprise: mewajibkan MFA untuk role admin dan billing, phase-in bertahap dengan notifikasi 30 hari, kebijakan per-tenant, serta hubungan MFA dengan SOC 2, ISO 27001, dan security questionnaire beserta audit serta reporting.

Di aplikasi kecil, 2FA adalah pilihan per pengguna. Di skala enterprise, 2FA menjadi kebijakan: apa yang diwajibkan, untuk siapa, kapan berlaku, dan bagaimana dibuktikan ke auditor. Episode 18 membahas sisi organisasi yang jarang disentuh tutorial kode.
Kalian akan merancang enforcement — wajibkan MFA untuk role sensitif dengan fase transisi yang manusiawi — lalu memetakan hubungannya dengan kerangka compliance seperti SOC 2 dan ISO 27001, dan menutup dengan audit serta reporting yang diminta auditor dan calon klien.
Enforcement tidak harus serentak untuk semua pengguna. Mulai dari role yang paling berisiko: admin, billing, dan akses ke data pelanggan. Kebijakan diwakili daftar role yang konfigurabel:
mfa:
enforcedRoles:
- admin
- billing
- support_agent
gracePeriodDays: 30
tenantOverride: trueKonfigurasi enforcedRoles menentukan siapa yang wajib, sedangkan gracePeriodDays memberi waktu transisi. tenantOverride mengizinkan tenant enterprise mengatur kebijakannya sendiri — pola yang umum di produk multi-tenant.
Enforcement juga berlaku untuk akses non-interaktif: API key, token service-to-service, dan deployment pipeline tidak bisa memindai QR. Untuk mereka, pastikan alternatif seperti hardware key atau aturan khusus yang terdokumentasi, bukan celah yang lolos dari kebijakan.
Sebagian organisasi menaikkan level enforcement secara bertahap: mulai dari mewajibkan 2FA, lalu menuntut TOTP plus passkey untuk role paling kritis, dan akhirnya hardware key untuk akses produksi. Pendekatan bertahap ini memberi tim keamanan data tentang apa yang benar-benar berjalan di lapangan sebelum mengencangkan aturan.
Paksaan mendadak menghasilkan gelombang dukungan dan pengguna yang terkunci. Rancang fase transisi: pengguna di role sensitif mendapat notifikasi 30 hari sebelum kewajiban aktif, reminder mingguan, dan pemblokiran login hanya pada hari terakhir masa tenggang:
Hari 0 notifikasi pertama: MFA akan diwajibkan
Hari 7 reminder email
Hari 21 reminder terakhir + banner di aplikasi
Hari 30 MFA wajib; login tanpa MFA ditolakPemblokiran di hari ke-30 menekankan urgensi, tapi bisa mengejutkan. Alternatif yang lebih lunak: setelah tenggang, tampilkan layar paksa enrollment yang tidak bisa dilewati — pengguna tetap bisa login, tapi hanya setelah menyelesaikan setup 2FA.
SOC 2 dan ISO 27001 keduanya mengharapkan kontrol akses berlapis. Dalam praktiknya, auditor menanyakan tiga hal: apakah MFA wajib untuk akses sensitif, bagaimana kebijakannya ditegakkan, dan bagaimana kepatuhan diverifikasi. Enforcement yang konfigurabel dari bagian sebelumnya menjawab semua pertanyaan itu dengan bukti.
Vendor enterprise mengirim dokumen panjang berisi pertanyaan keamanan. Dua pertanyaan yang hampir selalu ada: "Apakah Anda menerapkan MFA?" dan "Apakah MFA wajib untuk akses administratif?". Jawaban dengan bukti — kebijakan, tanggal efektif, dan metrik adopsi — jauh lebih meyakinkan daripada klaim tanpa data.
Siapkan juga jawaban untuk pertanyaan lanjutan: bagaimana recovery account ditangani, apakah backup codes tersedia, dan bagaimana audit akses MFA dijalankan. Pertanyaan lanjutan inilah yang membedakan jawaban dangkal dan jawaban matang.
Tenant enterprise punya kebutuhan sendiri: ada yang mewajibkan hardware key, ada yang menuntut periode tenggang nol. Bangun level kebijakan sehingga setting global menjadi default, dan tenant bisa mengesampingkannya dengan rentang yang diizinkan. Audit harus melacak kebijakan mana yang berlaku untuk siapa.
Audit 2FA adalah sumber data compliance. Rekam setiap peristiwa dengan konteks yang cukup tanpa PII berlebihan:
mfa_enabled user=<uuid> tenant=acme at=2026-07-01T10:00:00Z
mfa_enforced user=<uuid> tenant=acme at=2026-07-15T09:30:00Z
mfa_failed user=<uuid> attempts=3 at=2026-07-15T09:31:00Z
mfa_disabled user=<uuid> actor=admin at=2026-07-20T14:00:00ZBaris-baris ini menjawab pertanyaan auditor tanpa membocorkan secret. Simpan dalam sistem audit yang tidak bisa diubah (append-only) dan tetapkan retensi sesuai kebijakan.
Kaitkan audit MFA dengan sesi dan IP dalam bentuk yang bisa dikorelasi, sehingga satu insiden bisa diurutkan dari notifikasi, login, hingga perubahan 2FA. Korelasi ini yang dicari peneliti keamanan saat menilai riwayat insiden.
Metrik yang harus dilaporkan: persentase pengguna aktif dengan MFA, adopsi per tenant, dan waktu rata-rata menyelesaikan enrollment dalam masa tenggang. Metrik ini bukan sekadar bahan dashboard — itu bukti kepatuhan yang diminta dalam security review tahunan dan tender.
Contoh kueri yang menghasilkan angka adopsi per tenant:
SELECT tenant_id,
COUNT(*) FILTER (WHERE totp_enabled) AS mfa_on,
COUNT(*) AS total
FROM users
GROUP BY tenant_id;Sajikan hasil kueri ini dalam laporan yang bisa dijadwalkan, sehingga angka kepatuhan selalu tersedia tanpa menjalankan query manual menjelang audit.
Episode 18 membawa 2FA ke level organisasi: enforcement per role dengan fase 30 hari, kebijakan per-tenant, hubungan dengan SOC 2 dan ISO 27001, serta audit dan reporting yang menjawab auditor dan calon klien.
Inti yang harus dibawa pulang:
Di episode 19 selanjutnya kita akan membahas UX, accessibility, dan copy-paste — input 6 digit dengan autofocus dan auto-submit, countdown 30 detik, pesan error yang jelas, label ARIA, kontras QR, dan opsi manual untuk pengguna tanpa kamera.