Çok kiracılı SaaS: Tenant verisi ve erişim izolasyonu
· PoolByte Technology

Tek bir yazılımı birden fazla şirkete hizmet verecek şekilde sunmak, her müşterinin ayrı bir hesabı olmasıyla tamamlanmaz. Çok kiracılı SaaS yapısında kuruluşların verileri, işlemleri ve kaynak kullanımı arasındaki sınırlar bütün uygulama boyunca korunmalıdır. Tenant kimliği, yalnız ekranda seçilen bir firma adı değildir.
Veri ayrılığı için tek model yoktur
Aynı veritabanında ortak tablolar, ayrı şemalar veya ayrı veritabanları kullanılabilir. Her yaklaşımın işletim, maliyet ve izolasyon özellikleri farklıdır. Microsoft çok kiracılı veri mimarisi rehberi, bu seçeneklerin değerlendirme alanlarını açıklar. Yalnız müşteri sayısına bakarak tek bir model seçmek yeterli değildir.
Bir müşterinin ayrı yedekten geri yükleme, veri bölgesi veya özel performans ihtiyacı olabilir. Tasarım bu gereksinimleri karşılamıyorsa sonradan ayrıştırma maliyetli hâle gelebilir. İlk kapsamda tenant’ın ne olduğu da tanımlanmalıdır: şirket, bayi veya şirketin alt birimi farklı sınırlar gerektirebilir.
İstekten gelen tenant değerine körü körüne güvenmeyin
URL’deki veya formdaki firma kimliği, kullanıcının o kuruluşa erişebildiğini kanıtlamaz. Sunucu, doğrulanmış kullanıcı ve üyelik üzerinden kapsamı belirlemelidir. Tek bir sorguda unutulan filtre başka müşterinin kaydını açığa çıkarabilir. OWASP çok kiracılı güvenlik rehberi, bu sınırın farklı katmanlarda korunmasını ele alır.
Dosya indirme, dışa aktarma ve arama uçları da aynı kuralı uygulamalıdır. Ana liste doğru filtreleniyor diye detay ekranının güvenli olduğunu varsaymayın. Arka plan işleri, bildirimler ve önbellek anahtarları tenant bağlamını korumalıdır. Bir iş kuyruğunda bağlam kaybolduğunda hata yalnız sayfa görünümünde ortaya çıkmayabilir.
Müşteriler kaynak açısından da ayrılmalı
Bir kuruluşun çok büyük rapor üretmesi diğerlerinin hizmetini yavaşlatabilir. Kota, iş kuyruğu ve uygun kaynak sınırları bu etkiyi yönetmeye yardımcı olur. Her müşteriye aynı sınır vermek zorunda değilsiniz; fakat plan koşulları ile gerçek uygulama davranışı tutarlı olmalıdır. Sınır aşıldığında veri kaybetmek yerine anlaşılır bir bekleme veya ret durumu gösterin.
Yönetici destek erişimi de özel bir durumdur. Bir müşterinin hesabını incelerken yetki kapsamı, süre ve işlem kaydı belirlenmelidir. Genel bir yönetici yetkisi bütün günlük işlerde kullanılmamalıdır. Tenant değiştirme sırasında önceki kuruluşa ait açık ekran ve yerel verinin nasıl temizlendiğini test edin.
İzolasyonu nasıl doğrularsınız?
- Farklı iki kuruluştan kullanıcıyla aynı kayıt kimliklerini deneyin.
- Arama, indirme ve dışa aktarma sonuçlarını karşılaştırın.
- Arka plan işlerinde kuruluş bağlamını doğrulayın.
- Önbellek ve tarayıcı verisinde çapraz görünüm arayın.
- Bir tenant’ın yoğun işinin diğerlerine etkisini ölçün.
- Üyelik kaldırıldıktan sonra mevcut oturum davranışını sınayın.
Özel yazılım projesinde çok kiracılılık ayrı bir mimari teslim kalemi olmalıdır. Müşteri logosunu değiştirmek kişiselleştirmedir; tenant izolasyonu ise verinin ve erişimin doğru sınırda kalmasını sağlayan temel sistem davranışıdır.