⚙️ Settings Analizi & 2FA Karar

📅 Tarih: 2025-11-23 | 🎯 Tenant-Aware Üyelik Sistemi | 📊 SettingManagement Modülü

🔐 2FA Kararı: Tenant mı Kullanıcı mı?

Soru: 2FA kimin kontrolünde olmalı?

İki faktörlü doğrulama sisteminin nasıl çalışacağına karar vermeliyiz:

👤 Sadece Kullanıcı Bazlı

  • Her kullanıcı kendi kararını verir
  • Tenant müdahale edemez
  • Güvenlik standardı yok
  • Kurumsal müşteriler için yetersiz

✅ Önerilen: Hybrid Yaklaşım

Tenant, güvenlik politikasını belirler. Kullanıcı, izin verildiğinde kendi tercihini yapar.

  • Muzibu: 2FA zorunlu (müzik içerik koruma)
  • İxtif: 2FA opsiyonel veya kapalı (B2B basit giriş)
  • Kurumsal Tenant: 2FA zorunlu (güvenlik standardı)

📋 Mevcut Tenant-Aware Settings

SettingManagement modülünde tanımlı 15 üyelik ayarı:

📝 Kayıt Ayarları (Group ID: 20) auth_registration
Key Label Type Default
auth_registration_enabled Kayıt Aktif select 1
auth_registration_email_verify E-posta Doğrulama select 1
auth_registration_approval Admin Onayı select 0
auth_registration_trial_days Deneme Süresi text 7
auth_theme Login/Kayıt Teması select minimal
🔄 Oturum Ayarları (Group ID: 21) auth_session
Key Label Type Default
auth_session_lifetime Oturum Süresi (dk) text 525600
auth_session_device_limit Cihaz Limiti text 1
🔒 Güvenlik Ayarları (Group ID: 22) auth_security
Key Label Type Default
auth_security_max_attempts Max Giriş Denemesi text 5
auth_security_lockout Kilitleme Süresi (dk) text 30
auth_security_2fa_enabled 2FA Aktif select 1
auth_security_2fa_expiry 2FA Kod Süresi (dk) text 5
💳 Abonelik Ayarları (Group ID: 23) auth_subscription
Key Label Type Default
auth_subscription_paid_enabled Ücretli Üyelik select 0
auth_subscription_auto_renewal Otomatik Yenileme select 1
auth_subscription_reminder_days Hatırlatma (gün) text 7
auth_subscription_grace_days Tolerans Süresi (gün) text 3
🏢 Kurumsal Ayarlar (Group ID: 24) corporate
Key Label Type Default
corporate_enabled Kurumsal Üyelik select 0
corporate_max_users Max Alt Kullanıcı text 0

🆕 Eklenmesi Gereken Settings

⚠️ Eksik Ayarlar

Üyelik sisteminin tam çalışması için aşağıdaki ayarların eklenmesi gerekiyor:

Key Label Type Default Durum
auth_security_2fa_mode 2FA Modu select optional YENİ
auth_security_2fa_method 2FA Yöntemi select sms YENİ
auth_security_remember_device Cihaz Hatırla select 1 YENİ
auth_security_remember_days Cihaz Hatırla Süresi text 30 YENİ
sms_provider SMS Sağlayıcı select netgsm YENİ
sms_api_key SMS API Key password YENİ
sms_api_secret SMS API Secret password YENİ
sms_sender_id SMS Gönderici Adı text YENİ
auth_registration_phone_required Telefon Zorunlu select 0 YENİ
auth_registration_terms_required Kullanım Şartları Zorunlu select 1 YENİ

🔄 2FA Çalışma Mantığı

1
Settings Kontrolü
setting('auth_security_2fa_mode') → required/optional/disabled
2
Kullanıcı Tercihi
mode=optional ise → user->two_factor_enabled kontrol et
3
Cihaz Kontrolü
setting('auth_security_remember_device') → Cookie var mı?
4
Kod Gönderimi
setting('auth_security_2fa_method') → SMS/Email
5
Doğrulama
setting('auth_security_2fa_expiry') dakika içinde kod girilmeli

🏢 Tenant Bazlı Örnek Konfigürasyonlar

🎵 Muzibu (tenant_id: 1001)

  • auth_subscription_paid_enabled = 1
  • auth_security_2fa_mode = required
  • auth_security_2fa_method = sms
  • corporate_enabled = 1
  • auth_session_device_limit = 3
  • auth_registration_phone_required = 1

🏭 İxtif (tenant_id: 2)

  • auth_subscription_paid_enabled = 0
  • auth_security_2fa_mode = disabled
  • corporate_enabled = 0
  • auth_session_device_limit = 1
  • auth_registration_approval = 1
  • auth_registration_phone_required = 0

📋 Sonraki Adımlar

Onay Sonrası Yapılacaklar

  1. Eksik settings'leri SettingManagement'a ekle (seeder)
  2. 2FA mode logic'ini TwoFactorService'e ekle
  3. SMS Provider entegrasyonu (NetGSM/İletimerkezi)
  4. Remember device cookie sistemi
  5. UI sayfalarını tenant settings'e göre conditional render