MSP'ler için çok müşterili mimari
Neler değişti
Her içerik güncellemesi sürümlenir. Bir sürümü seçerek öncekiyle karşılaştırın.
Sürüm 1 → 2
Küçük düzeltme3 ders güncellendi
Yazım veya çeviri düzeltmesi gibi küçük düzeltmeler. Öğrencilere bildirim gönderilmez.
Müşteriler arasındaki yalıtım tek bir soruyla başlar: bu istek hangi tenant'a ait?
### Monopam
v2026.09 ile Monopam, tenant'ı **yalnızca isteğin ana bilgisayar adından ve portundan** çıkarır. Her tenant'ın kendi ana bilgisayar adları vardır; hiçbir tenant'a ait olmayan bir adres hiçbir tenant'a ulaşmaz. İstemcinin gönderdiği tenant başlığı dikkate alınmaz.
Açılmış bir oturum, verildiği tenant'a bağlıdır. Başka bir tenant'ın adresinde kullanılırsa reddedilir (HTTP 401) ve kişi oturumu kapatma sayfasına gönderilir. Tek bir oturum birden çok tenant'ta işlem yapamaz.
### Monosign
Monosign bütün tenant'ları tek veritabanında tutar ve tenant kapsamındaki her tabloyu tenant'a göre süzer. Tenant'ı şu sırayla belirler: API çağıranın adını verdiği tenant başlığı, sonra ana bilgisayar adı ve port, sonra etkin varsayılan tenant. Tarayıcılar ana bilgisayar adına göre çözülür.
::diagram msp-tenant-resolution
### Tasarımınız için anlamı
- İki üründe de her müşteriye kendi ana bilgisayar adını verin. Ad ve port bütün tenant'lar arasında benzersiz olmalıdır.
- Monopam'ın önündeki vekil sunucunuz özgün `Host` başlığını ve `X-Forwarded-Proto` başlığını iletmelidir. Kurulum, tanımadığı bir ad için her sayfada 404 yanıtı verir.
- Müşteri seçicili ortak bir adres planlamayın. Monopam'da böyle bir şey yoktur.
> Not: Monopam v2026.09'a yükseltmeden sonra her kullanıcı bir kez daha oturum açar; çünkü çerez anahtarları veritabanına taşındı.
Tek bir Monopam kurulumu; tek kurulum veritabanı, tek Redis ve tek Vault anahtarı demektir. Kurulum birden çok uygulama sunucusunda çalışabilir. Her sunucudaki iki ortam ayarı o sunucunun payını belirler:
- `MONOPAM_SERVED_TENANTS`: bu sunucunun yanıt verdiği tenant'lar. Diğer tenant'ların adresleri tenant bulunamadı sayfasını alır.
- `MONOPAM_JOB_TENANTS`: bu sunucunun arka plan işlerini çalıştırdığı tenant'lar (parola değişimi, keşif, kullanıcı eşitleme, sertifika işleri, uyarılar).
```
# ana sunucu: her tenant'a yanıt verir, yalnızca kendi işlerini çalıştırır
MONOPAM_SERVED_TENANTS=*
MONOPAM_JOB_TENANTS=default
# müşteri sunucusu: tek tenant'a yanıt verir ve onun işlerini çalıştırır
MONOPAM_SERVED_TENANTS=tenant-a
MONOPAM_JOB_TENANTS=tenant-a
```
İki ayar da verilmezse tek sunucu her tenant'a hizmet verir ve her işi çalıştırır.
::diagram msp-app-servers
### Plan için kurallar
- **Her tenant adı tam olarak bir sunucunun iş listesinde yer alır.** İki sunucuda listelenen tenant'ın parola değişimleri, uyarıları ve eşitlemeleri iki kez çalışır.
- Boş bir veritabanında önce ana sunucu başlar; varsayılan tenant'ı o oluşturur.
- Ayrılmış veritabanlı bir tenant'a hizmet veren sunucunun hem o veritabanına hem kurulum veritabanına ağ erişimi olmalıdır.
- Ayrılmış bir tenant'a en iyi kendi uygulama sunucusu hizmet verir.
### Tek sunucunun yalıtmadığı
Bir iş döngüsü içinde hata veren tenant, o tur için döngüyü durdurur; önce paylaşılan tenant'lar, sonra ayrılmış olanlar çalışır. Bu yüzden erişilemeyen bir ayrılmış veritabanı, kurulum veritabanındaki tenant'ları bekletmez.
Bazı müşteriler ayrıcalıklı verilerini sağlayıcının ortamına koymaz. **Uzak tenant**, Monopam'ı kendilerinin işletmesine ve yine de sizin yönetilen müşteriniz olmasına olanak verir.
### Bağlantı nasıl çalışır
1. Uzak tenant'ı oluşturursunuz ve 24 saat geçerli, bir kez gösterilen tek kullanımlık bir kayıt kodu alırsınız.
2. Müşteri kurulumunu sizin adresiniz ve bu kodla kaydeder. Kendi anahtarlarını üretir; özel anahtarlar kurulumdan çıkmaz.
3. Müşterinin kurulumu size doğru **dışa dönük tek bir WebSocket** bağlantısı tutar. Siz müşteriye hiç bağlanmazsınız, müşteride gelen yönde bir kural gerekmez. Her mesaj imzalıdır ve tek kullanımlıktır.
Müşteriye hazır dağıtım dosyaları (Docker Compose, Kubernetes ya da OpenShift) verebilirsiniz. Gizli değerleri müşterinin kendi makinelerinde üretilir; veritabanına dair hiçbir şey sizde saklanmaz.
### Kim neye karar verir
- Siz, ekibinizden kimin hangi rolle girebileceğini **önerirsiniz**.
- Müşteri **her kişiyi tek tek onaylar** ve kişinin ne göreceğini belirleyen politikaları seçer. Yaptığınız her değişiklik yeniden onay ister.
- **Disconnect Provider** müşterinin anahtarıdır: oturumlarınız saniyeler içinde biter ve müşteri yeniden bağlanana kadar ekibinizden kimse giremez.
- **Offline tolerance** (1 saat, 4 saat, varsayılan 24 saat ya da 7 gün), yeni bir eşitleme olmadan erişiminizin ne kadar süre çalışacağını belirler.
::diagram msp-remote-tenant-link
### Yapamayacaklarınız
- Uzak tenant'ın ana bilgisayar adlarını, kullanıcılarını, hazırlık adımlarını ya da ayarlarını yönetmek, politikalarını görmek.
- Grup erişimi kullanmak ya da politikaları kendiniz seçmek.
- Müşterinin web adresine bu bağlantı üzerinden ulaşmak. Ekibiniz, müşterinin verdiği yolu (örneğin VPN) kullanır.
> Uyarı: Yeni bir kayıt kodu üretmek bağlı kurulumu kalıcı olarak keser; kurulumun yeniden kaydolması gerekir.