Drupal Web Sitesinde Teknik Kullanıcı Yönetimi

Drupal, Roller (Roles) ve Yetenekler (Permissions) ile tanınan gelişmiş bir erişim kontrol modeline sahiptir. Ancak büyük/kritik sitelerde “kullanıcı yönetimi” yalnızca kullanıcı ekleyip bir role atamaktan ibaret değildir. Gerçek dünyada; çok dallı rol hiyerarşileri, modül temelli yetenek genişlemeleri, harici kimlik sağlayıcıları (OIDC/SAML), iki aşamalı kimlik doğrulama (2FA), oturum/çerez güvenliği, kullanıcı veri yaşam döngüsü (KVKK/GDPR), audit/iz kayıtları, oran sınırlama (rate limiting), spam/istismar önleme, kullanıcı yönetimli içerik iş akışları, çoklu site/multilingual gibi katmanlar devreye girer.
Bu kapsamlı rehberde, Drupal 9/10 çizgisi için kimlik doğrulama, yetkilendirme, hesap ve profil yönetimi, erişim politikaları, güvenlik sertleştirmesi, gözlemlenebilirlik, yasal uyum, çoklu site ve çok dilli senaryolar, self-service modeller ve otomasyon başlıklarında derinlemesine, uygulamaya dönük bir çerçeve sunuyoruz. Her bölümde kontrol listeleri, örnek akışlar ve vaka çalışmalarını bulacaksınız
1) Kavramsal Temel: Kimlik Doğrulama vs. Yetkilendirme
-
Kimlik doğrulama (AuthN): Kullanıcının kim olduğunu kanıtlaması; Drupal çekirdeği + harici sağlayıcılar (OIDC/SAML/LDAP).
-
Yetkilendirme (AuthZ): Kullanıcının ne yapabileceği; Roller ve Permissions ile belirlenir.
-
Politika: “Rol, yeteneklerin torbasıdır” → az rol, net yetenek ilkesi; PoLP (asgari ayrıcalık) ve ayrışık görevler (SoD).
Kontrol listesi: Roller < 10, açıklayıcı adlar; her yüksek ayrıcalık için gerekçe; “herkese açık” izinleri sıkı gözden geçirin.
2) Rol Tasarımı: Minimum Ama Anlaşılır
-
Çekirdek roller: Anonymous, Authenticated, Administrator.
-
Kurumsal kalıp: Reader/Viewer, Author, Editor, Publisher, Moderator, Site Manager.
-
İlke: Çok az yetkiyi çok role dağıtmak yerine, iş akışı odaklı rol paketleri; “şemsiye admin”ten kaçının.
-
Dökümantasyon: Her rol için “yapabilir/yapamaz” tablosu; onboarding’de zorunlu.
Vaka: “Editor” rolü yanlışlıkla yayın kaldırabiliyordu. Permission matrisi gözden geçirildi; rol ikiye bölündü: Content Editor ve Publisher.
3) İzin (Permissions) Matrisi ve Değişim Yönetimi
-
Kaynak tipine göre (Node, Taxonomy, Media, Block, Menu) izinleri ayrıştırın.
-
Modül etkisi: Eklentiler yeni izinler ekler; güncelleme sonrası diff alın.
-
Denetim izi: Her permission değişikliği için bilet ve onay (CAB); prod’da doğrudan değişime izin vermeyin.
Kontrol listesi: Yüksek riskli izinler (kullanıcı yönetimi, yapılandırma, PHP/tema düzenleme) için iki kişi onayı.
4) İçerik Erişim Modeli: Node Erişim Şeması ve Granüler Kontrol
-
Node Access (çekirdek) + Content Access, Group/Organic Groups, Workbench/Content Moderation ile “kim hangi içeriği görebilir/düzenleyebilir?” kuralı kurulur.
-
Kural setleri: (a) Tür bazlı (content type), (b) Alan bazlı (field-level), (c) Durum bazlı (draft/published), (d) Sahiplik bazlı (node author).
-
Performans: Node access hesaplamaları cache etiketleriyle uyumlu olmalı; yanlış etiketler geniş invalidasyona yol açar.
Uygulama: “Haber taslağını yalnızca yazar, editör ve hukuk görsün” → Content Moderation + rol izinleri + node access kontrolü.
5) Kimlik Sağlayıcı Entegrasyonları: OIDC, SAML, LDAP
-
OIDC/SAML: Kurumsal SSO; MFA’li giriş, oturum politikaları, claim/attribute eşleştirme ile otomatik rol atama.
-
LDAP: Dizin tabanlı kullanıcı provizyonu; grup → rol haritalama.
-
Güvenlik: İmza/doğrulama, saat eşitleme (NTP), token/süre ayarı; logout senkronizasyonu.
Vaka: OIDC ile bağlanan bir müşteride “departman” alanı Publisher rolüne map edildi; ekip değiştiğinde rol otomatik güncellendi.
6) 2FA ve Oturum Güvenliği
-
2FA (TOTP/WebAuthn): Yönetici, editör ve kritik işlevi olan rollere zorunlu.
-
Oturum politikası: Başarılı girişte session rotation, inaktif zaman aşımları, eşzamanlı oturum limiti.
-
Çerez güvenliği:
Secure
,HttpOnly
,SameSite=Lax/Strict
; admin alanındaSameSite=Strict
tercih edin.
Kontrol listesi: Giriş IP anormallik uyarısı, şüpheli cihaz bildirimi, cihaz yönetimi sayfası.
7) Parola ve Hesap İlkeleri
-
Minimum uzunluk (≥12), sözlük dışı, ihlal edilmiş parolaları reddetme; parolayı zorla döndürme politikası.
-
Hesap kilidi: Belirli başarısız deneme sonrası geçici kilit + kullanıcıya bildirim.
-
Kurtarma akışı: Tek seferlik token, kısa TTL; “gizli soru” yok → e-posta/SSO yoluyla güvenli reset.
Vaka: Parola püskürtme denemeleri; hız kısıtlaması + kilitleme ile etkisiz kaldı.
8) Kullanıcı Kaydı, Onay ve Moderasyon
-
Kayıt modu: Kapalı / e-posta onaylı / yönetici onaylı / SSO yalnız.
-
Spam önleme: reCAPTCHA/hCaptcha, Honeypot, hız kısıtlaması, e-posta domain kara listesi.
-
Moderasyon: İlk içeriklerde “onay bekleyen” iş akışı; kötüye kullanım bildirim butonları.
Uygulama: Topluluk forumunda ilk 3 gönderi moderasyona tabi; sonra otomatik güven puanı yükseltme.
9) Profil, Alanlar ve PII Yönetimi
-
User entity alanları: İhtiyaç kadar alan; PII minimal; maskeleme/yalınlaştırma.
-
Gizlilik: Hangi rol hangi kullanıcı alanlarını görebilir? Alan düzeyinde görüntüleme izinleri.
-
KVKK/GDPR: Erişim/indirme/silme talepleri; data export ve forget me akışları.
Kontrol listesi: PII saklama süresi, anonimleştirme prosedürü, loglarda PII yoklama.
10) Erişim Politikaları: İŞ Kurallarını Koda Dökme
-
Policy objeleri: “Bir kullanıcının şu koşullarda şu alanı görebilmesi gerekir.”
-
Hook & Event noktaları:
hook_entity_access
,hook_user_login
,event_subscriber
ile merkezi karar. -
Test edilebilirlik: Politika testleri (PHPUnit) → kullanıcı sahte nesneleriyle izin doğrulama.
Vaka: “Saha editörü yalnız kendi bölgesinin içeriğini düzenleyebilir.” Bölge taksonomisi + policy ile çözüldü.
11) İçerik Moderasyonu ve Yayın İş Akışı
-
Content Moderation + Workflows: Taslak → inceleme → hukuk → yayın.
-
Rol-adım eşleşmesi: Hangi rol hangi adımı tamamlar?
-
Bildirimler: Olay tabanlı e-posta/kanal bildirimleri; SLA hedefleri.
Uygulama: “Hukuk onayı yoksa yayın yapılamaz” kuralı; publisher denemesinde engel mesajı.
12) Medya ve Dosya Erişimi: public://
vs private://
-
Gizli medyalar
private://
; dosya erişimi entity access ile. -
İndirme kontrolü: Token tabanlı, süreli linkler; orijinal dosyaya doğrudan URL erişimini engelleyin.
-
CDN uyumu:
private://
içerikler için geçici imzalı URL (signed URL) stratejisi.
Kontrol listesi: “Herkese açık” sandığınız dosyaların listesi; erişim logları ve anomali alarmları.
13) Spam, Kötüye Kullanım ve Oran Sınırlama
-
Rate limit: Oturum açma, form gönderimi, API uçları.
-
Davranışsal işaretler: Aynı IP, kısa aralıkta tekrar; bot imzaları; link yoğunluğu.
-
Yaptırım: Geçici susturma, gölge yasak (shadow ban), IP/ASN engeli.
Vaka: Üçüncü taraf link eklemeye çalışan botlar; link sayısı eşiği + yeni hesap kısıtları ile engellendi.
14) REST/JSON:API ve Erişim Kontrolü
-
Permission callback: Her değiştirici uçta zorunlu; OAuth 2.0 / token süreleri.
-
Kapsamlar (scopes): Alan ve kaynak bazlı; “salt okuma” token’lar.
-
İzleme: Hız kısıtlaması, hatalı kimlik doğrulama uyarısı, detay logları (PII’siz).
Uygulama: Mobil uygulama için “read-only” scope; belirli içerik türlerine filtreli erişim.
15) Oturum Yönetimi, Cihaz Listesi ve Uyarılar
-
Çoklu cihaz görünümü: Aktif oturumları listele, tek tıkla sonlandır.
-
Anomali tespiti: Yeni ülke/cihaz girişinde uyarı e-postası.
-
Oturum yaşam döngüsü: Rol ve risk bazlı zaman aşımı.
Kontrol listesi: “Şüpheli oturum sonlandırma” butonu, kullanıcıya açıklayıcı bildirim.
16) Loglama, Audit Trail ve Görünürlük
-
Watchdog kanalları:
user
,security
,access
,content
. -
Değiştirilemez log: Uzak syslog/OpenSearch; imzalı/immutable depolama.
-
Raporlar: Haftalık “yüksek ayrıcalık hareketleri”, başarısız giriş trendi, rol/izin değişiklik diff’i.
Vaka: Bir editörün gece yarısı yetki yükseltme denemesi fark edildi; log sayesinde geri alındı.
17) Çoklu Site (Multisite) ve Paylaşımlı Kullanıcılar
-
Ağ mimarisi: Tek codebase, ayrı site konfig’leri; kullanıcılar paylaşımlı olabilir.
-
Rol ayrımı: Site bazlı roller; çapraz site yetkisi minimum.
-
SSO: Tek giriş, site bazlı yetki dizgisi; kullanıcı deneyimi ile güvenliği dengeleme.
Kontrol listesi: Hangi roller site-genel? Hangi izinler yalnız bir sitede geçerli?
18) Çok Dilli Sitelerde Rol ve Moderasyon
-
Dil bazlı ekipler: Yerel editör, global editör, çeviri editörü.
-
Hreflang ve eşleştirme: İçerik eşleştirmeleri üzerinde yetki; yanlış dilde yayın engeli.
-
Terminoloji: Taksonomi/etiketlerin dil bazlı yönetimi.
Uygulama: “Yerel editör kendi dilindeki içeriği yayınlayabilir, global editör tüm dillerde.” Rol ayrımı + workflow.
19) Eğitim, Onboarding ve Self-Service
-
Rol rehberleri: “Bu rolde yapabilecekleriniz”; riskli işlemler için video/kılavuz.
-
Self-service: Parola sıfırlama, cihaz yönetimi, bildirim tercihleri.
-
İçerik hatalarını azaltma: Inline ipuçları, zengin doğrulama (field validation).
Vaka: Onboarding paketi sonrası “yanlış yayın” oranı %40 azaldı.
20) Yasal Uyum (KVKK/GDPR) ve Kullanıcı Hakları
-
Aydınlatma metni ve açık rıza; çerez ve takip tercihleri (CMP).
-
Veri erişim/indirme/silme talepleri; otomasyon ve onay akışları.
-
Saklama politikası: Pasif kullanıcıların anonimleştirilmesi, log saklama süreleri.
Kontrol listesi: Veri işleme envanteri, DPA/SCC sözleşmeleri, IP anonimleştirme.
21) Performans ve Kullanıcı Yönetimi Etkileşimi
-
Kişiselleştirme maliyeti: Oturumlu kullanıcılarda Dynamic Page Cache ve Render Cache stratejileri.
-
Cache bypass: Admin ve kişiselleştirilmiş sayfalar; hedefli invalidation.
-
Veritabanı:
sessions
,users_field_data
,user__*
tablolarında indeks ve temizlik.
Uygulama: Oturum açmış kullanıcıların dashboard’ı fragman cache ile hızlandırıldı; INP iyileşti.
22) Olay (Incident) Yönetimi: Hesap İhlali ve Müdahale
-
Runbook: (1) Şüpheli oturumu sonlandır, (2) Parola reset/2FA zorla, (3) Token’ları iptal, (4) Log incele, (5) RCA/CAPA.
-
İletişim: Kullanıcı bilgilendirmesi, süreli parola yenileme; kamuya açık açıklama şablonu.
-
Tatbikat: Çeyreklik “hesap ele geçirme” masaüstü tatbikatı.
Vaka: Phishing sonrası iki hesap etkilendi; 25 dk’da izolasyon ve 2FA zorlamasıyla kapatıldı.
23) CI/CD ve Rol-İzin Paketleri
-
Kodlanmış konfig: Roller/izinleri konfigürasyon yönetimi ile versiyonlayın (config export).
-
Review: PR’da izin diff’i görünür; beklenmeyen genişleme engellenir.
-
Ortam ayrımı: Dev/Staging/Prod’da farklı gizlilik; 2FA ve SSO ayarları ortam bazlı.
Kontrol listesi: “İzin değişimi = kod değişimi” prensibi; manuel panel değişimini sınırlayın.
24) Gözden Kaçan Noktalar: Menüler, Bloklar, Görünümler
-
View/Block erişimi: “Sadece menüde gizli” ≠ “güvenli”. Görünüm ve bloğa rol tabanlı erişim şart.
-
Özelleştirilmiş yol (route) izinleri:
routes.yml
dosyalarında gereksiz açık uçlar. -
Önizleme linkleri: Token süreleri ve iptal mekanizması.
Uygulama: Bir rapor görünümü “linki varsa görebilir” durumundaydı; permission ve token doğrulama eklendi.
25) Yol Haritası: 90 Günlük Kullanıcı Yönetimi İyileştirme Programı
-
Hafta 1–2: Rol/izin envanteri, yüksek riskli izinlerin kapatılması, 2FA zorunlu.
-
Hafta 3–4: OIDC/SAML POC, audit log merkezi toplanması, rate limit.
-
Ay 2: Content Moderation yaygınlaştırma,
private://
erişim modeli, spam/istismar akışları. -
Ay 3: KVKK/GDPR otomasyonları (export/delete), oturum panosu, CI’da permission diff.
KPI’lar: Başarısız giriş oranı ↓, yetkisiz 403 olayları ↓, ortalama onay süresi ↓, kullanıcı memnuniyeti ↑.
Sonuç: Drupal’da Kullanıcı Yönetimi Bir Ürün Değil, Bir Disiplindir
Drupal’ın rol/izin sistemi güçlüdür; ancak kurumsal dayanıklılık için bu gücü policy, workflow, SSO/2FA, erişim logları, KVKK/GDPR süreçleri, rate limiting, spam/istismar önleme, cache ve performans stratejileri ve CI/CD ile kodlanmış konfigürasyon ile bütünleştirmek gerekir.
Bu yazıdaki çerçeveyi adım adım uyguladığınızda:
-
Risk azalır (ATO, yetki sızıntısı, veri ihlali),
-
Operasyon hızlanır (net roller, otomatik atamalar, self-service),
-
Denetlenebilirlik artar (audit trail, RCA),
-
Deneyim güçlenir (doğru kişiye doğru yetki, tutarlı iş akışları).
Unutmayın: İyi bir kullanıcı modeli, yazılımla değil organizasyonel alışkanlıklarla pekişir. Roller sade, izinler ölçülü, kimlik modern (SSO/2FA), loglar konuşkan, politikalar test edilebilir olduğunda; Drupal siteniz yalnız güvenli değil, ölçeklenebilir ve sürdürülebilir olur.