Lompat ke konten

SaaS Architecture

Pola Isolasi Tenant untuk Platform Enterprise Multi-Tenant

Bagaimana identitas, otorisasi, akses data, job latar belakang, caching, dan observabilitas harus diselaraskan untuk mempertahankan batasan tenant.

Centillion Edge Engineering10 menit baca

Poin utama

  • Konteks tenant harus eksplisit dan divalidasi di setiap batasan eksekusi.
  • Otorisasi ada di operasi domain, bukan hanya route middleware.
  • Antrian, cache, ekspor, log, dan alat dukungan adalah bagian dari model isolasi.
  • Uji jalur penolakan lintas tenant secara berkelanjutan.
01

Multi-tenancy adalah arsitektur otorisasi

Kolom tenant_id berguna, tetapi bukan strategi isolasi. Permintaan mengalir melalui browser, API, layanan, antrian, cache, object storage, ekspor, dan alur kerja dukungan. Setiap batasan memerlukan identitas tenant yang jelas dan aturan tentang apa yang boleh melintasinya.

Default paling aman adalah menurunkan konteks tenant dari keanggotaan yang diautentikasi dan routing sisi server—bukan dari identifier arbitrary yang diterima dari klien.

02

Pilih isolasi sesuai konsekuensi

Tabel bersama, skema terpisah, dan database terpisah menawarkan properti operasional dan isolasi yang berbeda. Pilihan yang benar bergantung pada skala, kustomisasi, ekspektasi regulasi, risiko noisy-neighbor, kebutuhan backup dan restore, serta kapasitas operasional.

Model hibrida umum: sebagian besar tenant berbagi skema yang terindeks baik sementara workload tertentu menerima pemisahan fisik yang lebih kuat. Aplikasi harus menyembunyikan penempatan itu di balik repository atau layanan yang stabil.

03

Otorisasi operasi, resource, dan cakupan

Nama peran saja biasanya terlalu luas. Otorisasi harus mempertimbangkan organisasi, sub-akun, kepemilikan resource, modul yang diaktifkan, tindakan yang diminta, dan kadang status record.

Helper kebijakan terpusat mengurangi inkonsistensi, tetapi layanan domain tetap harus menegakkan invarian. Row-level security database dapat menambah pertahanan berlapis jika manajemen koneksi dan konteks dilakukan dengan ketat.

04

Pekerjaan latar belakang adalah kegagalan isolasi yang umum

Setiap job harus membawa konteks tenant dan aktor yang immutable, memvalidasinya lagi selama eksekusi, dan menulis output ke lokasi yang dicakup tenant. Kunci cache generik, direktori sementara yang digunakan kembali, dan nama file ekspor yang tidak dicakup dapat melewati otorisasi API yang sebenarnya telah hati-hati.

  • Kunci cache dan object storage dengan prefix tenant
  • Kontrol rate dan concurrency per tenant jika diperlukan
  • Log dan trace yang dicakup tanpa kebocoran payload sensitif
  • Impersonation dukungan dengan persetujuan, alasan, kedaluwarsa, dan riwayat audit
05

Uji ruang negatif

Pengujian happy-path membuktikan bahwa pengguna dapat mengakses data mereka. Pengujian isolasi membuktikan bahwa identifier, filter, ekspor, webhook, pencarian, dan timing tidak dapat mengekspos data tenant lain.

Buat dua tenant dalam pengujian integrasi dan secara sistematis coba pembacaan dan mutasi lintas batasan. Sertakan worker, operasi batch, alat admin, dan jalur kegagalan—bukan hanya endpoint HTTP.

Tentang penulis

Centillion Edge Engineering

Tim rekayasa kami menulis tentang keputusan arsitektur, keamanan, data, dan pengiriman di balik sistem enterprise yang andal.