Kerberos Delegation (Constrained/Resource-Based) ile Güvenli Hizmet Kimlik Doğrulama
Kerberos Delegation (Constrained/Resource-Based) ile Güvenli Hizmet Kimlik Doğrulama
Kerberos Delegation, bir hizmetin (service) başka bir hizmet adına kimlik doğrulaması yapmasına izin veren güçlü ancak dikkatli yönetilmesi gereken bir Active Directory özelliğidir. Özellikle çok katmanlı (multi-tier) uygulamalarda, kullanıcı kimliklerinin arka uç servislerine güvenli şekilde iletilmesini sağlar. Bu yazıda, Constrained Delegation ve Resource-Based Constrained Delegation (RBCD) modellerini karşılaştırmalı olarak inceleyip, adım adım güvenli yapılandırma yöntemlerini anlatıyoruz.
- Kerberos Delegation Nedir?
- Delegation Türleri
- Constrained Delegation Nasıl Çalışır?
- Örnek Senaryo:
- Yapılandırma Adımları:
- Resource-Based Constrained Delegation (RBCD)
- RBCD Yapılandırma Adımları (PowerShell):
- Avantajları:
- Kimlik Doğrulama Akışı
- RBCD Durumunu Doğrulama
- Güvenlik Önlemleri
- Event Log İzleme
- İleri Seviye Yapılandırma: Cross-Domain Delegation
- Performans ve Güvenlik Dengelemesi
- Sonuç
Kerberos Delegation Nedir?
Kerberos, Active Directory ortamlarında kullanıcıların güvenli kimlik doğrulamasını sağlayan protokoldür. Delegation, bir hizmetin kullanıcı kimliğiyle başka bir servise erişmesine izin verir. Örneğin, bir web uygulaması (IIS) kullanıcının kimliğiyle SQL Server’a bağlanabiliyorsa, bu durumda Kerberos Delegation kullanılmış demektir.
Delegation Türleri
- Unconstrained Delegation: Eski ve riskli modeldir. Hizmet hesabı, herhangi bir servise kullanıcı kimliğiyle erişebilir. Tavsiye edilmez.
- Constrained Delegation: Belirli servislerle sınırlı erişim sağlar. Active Directory’de manuel olarak tanımlanır.
- Resource-Based Constrained Delegation (RBCD): Windows Server 2012 ve sonrası sürümlerde tanıtılmıştır. Yetki hedef servis tarafında (resource server) belirlenir, daha güvenlidir.
Constrained Delegation Nasıl Çalışır?
Bu modelde, istemci (client) kimlik bilgilerini kullanan hizmet hesabı sadece belirli hedef servisler adına kimlik doğrulaması yapabilir. Yetkilendirme Active Directory’de kaynak hizmet hesabına atanır.
Örnek Senaryo:
IIS üzerindeki bir web uygulaması, kullanıcının kimliğiyle SQL Server’a bağlanacak.
Yapılandırma Adımları:
- Active Directory Users and Computers (ADUC) aracını açın.
- Web uygulaması için kullanılan hizmet hesabını bulun.
- Properties → Delegation sekmesine gidin.
- “Trust this user for delegation to specified services only” seçeneğini işaretleyin.
- “Add” butonuyla hedef SQL Server servislerini seçin (
MSSQLSvc/sqlserver.domain.localgibi).
Bu sayede IIS hizmet hesabı yalnızca tanımlı SQL servisleri için kullanıcı kimliğini devredebilir.
Resource-Based Constrained Delegation (RBCD)
RBCD, kontrolün hedef sunucuya taşındığı, modern ve daha güvenli bir yöntemdir. Artık kaynak servisin (örneğin IIS) AD üzerinde özel izin almasına gerek yoktur. Bunun yerine, hedef servis (örneğin SQL Server) hangi kaynaklardan kimlik devri alabileceğini kendisi belirler.
RBCD Yapılandırma Adımları (PowerShell):
# IIS hizmet hesabının SQL sunucusuna delegasyon yetkisi vermek:
Set-ADComputer SQLSERVER -PrincipalsAllowedToDelegateToAccount IIS-WEB$
Burada IIS-WEB$, IIS’in çalıştığı makinenin bilgisayar hesabıdır. Bu komut, yalnızca SQL sunucusu üzerinde çalıştırılmalıdır.
Avantajları:
- Delegasyon kontrolü kaynakta değil, hedefte tutulur (daha güvenli model).
- Domain admin müdahalesine gerek kalmadan uygulama yöneticileri tarafından yönetilebilir.
- Çoklu domain veya orman yapılarında daha esnek çalışır.
Kimlik Doğrulama Akışı
- Kullanıcı istemciye (örneğin web uygulamasına) oturum açar.
- IIS, kullanıcının Kerberos biletiyle SQL Server’a bağlantı başlatır.
- SQL Server, IIS’in delegasyon yetkisini doğrular.
- Kullanıcı oturumu kesintisiz olarak aktarılır.
RBCD Durumunu Doğrulama
Hedef sunucuda aşağıdaki PowerShell komutu ile RBCD ayarlarını kontrol edebilirsiniz:
Get-ADComputer SQLSERVER -Property PrincipalsAllowedToDelegateToAccount
Güvenlik Önlemleri
- Unconstrained Delegation kullanımından kaçının.
- Delegasyona izin verilen servisleri minimumda tutun.
- Hizmet hesaplarını en az yetkiyle çalıştırın.
- GPO ile “Account is sensitive and cannot be delegated” seçeneğini kritik hesaplarda etkinleştirin.
Event Log İzleme
Kerberos delegasyon olaylarını izlemek için aşağıdaki logları kontrol edin:
- Event ID 4769: Kerberos Service Ticket Request
- Event ID 4624: Account Logon (delegated)
- Event ID 5136: Directory Service değişiklikleri (RBCD ekleme/silme)
İleri Seviye Yapılandırma: Cross-Domain Delegation
RBCD, cross-domain (farklı domainlerdeki) servisler arasında da çalışabilir. Bunun için “Trust” yapılandırmasının iki yönlü (two-way trust) olması gerekir.
Performans ve Güvenlik Dengelemesi
Delegasyonun yanlış yapılandırılması hem performans hem güvenlik riski yaratabilir. Özellikle IIS → SQL gibi yoğun trafiğe sahip ortamlarda, kimlik devrinin yalnızca gerekli uygulama havuzlarında (Application Pool) yapılması önerilir.
Sonuç
Kerberos Delegation, doğru yapılandırıldığında hem güvenli hem de performanslı bir kimlik doğrulama mekanizması sunar. Resource-Based Constrained Delegation ile kontrolü kaynak servislerden hedef servislere taşımak, modern güvenlik politikalarına uygun ve yönetilebilir bir çözüm sağlar. Kurumsal ölçekte güvenli kimlik doğrulama için HostLigo Kurumsal Hosting veya HostLigo VDS altyapılarıyla entegre Active Directory çözümleri tercih edebilirsiniz.