Kimliğe Bürünme Düzeyleri
Kimliğe bürünme başarılı olursa, istemcinin sunucunun bir dereceye kadar istemci olmasına izin vermeyi kabul etmiş olduğu anlamına gelir. Farklı kimliğe bürünme dereceleri, kimliğe bürünme düzeyleri olarak adlandırılır ve istemcinin kimliğine bürünüldüğünde sunucuya ne kadar yetki verildiğini gösterir.
Şu anda dört kimliğe bürünme düzeyi vardır: anonim , tanımlamak, kimliğine bürünmekve temsilci. Aşağıdaki listede her kimliğe bürünme düzeyi kısaca açıklanmaktadır:
-
anonim (RPC_C_IMP_LEVEL_ANONYMOUS)
-
İstemci, sunucuya anonimdir. Sunucu işlemi istemcinin kimliğine bürünebilir, ancak kimliğe bürünme belirteci istemci hakkında herhangi bir bilgi içermez. Bu düzey yalnızca yerel işlemler arası iletişim aktarımı üzerinden desteklenir. Diğer tüm taşımalar, tanımlamak için bu düzeyi sessizce yükseltmektedir.
-
tanımlama (RPC_C_IMP_LEVEL_IDENTIFY)
-
Sistem varsayılan düzeyi. Sunucu istemcinin kimliğini alabilir ve sunucu ACL denetimleri yapmak için istemcinin kimliğine bürünebilir.
-
kimliğine bürünme (RPC_C_IMP_LEVEL_IMPERSONATE)
-
Sunucu, istemci adına hareket ederken istemcinin güvenlik bağlamının kimliğine bürünebilir. Sunucu, istemci olarak yerel kaynaklara erişebilir. Sunucu yerelse, istemci olarak ağ kaynaklarına erişebilir. Sunucu uzaksa, yalnızca sunucuyla aynı bilgisayarda bulunan kaynaklara erişebilir.
-
temsilcisi (RPC_C_IMP_LEVEL_DELEGATE)
-
En güçlü kimliğe bürünme düzeyi. Bu düzey seçildiğinde, sunucu (yerel veya uzak) istemci adına hareket ederken istemcinin güvenlik bağlamının kimliğine bürünebilir. Kimliğe bürünme sırasında istemcinin kimlik bilgileri (hem yerel hem de ağ) herhangi bir sayıda bilgisayara geçirilebilir.
Kimliğe bürünme özelliğinin temsilci düzeyinde çalışması için aşağıdaki gereksinimlerin karşılanması gerekir:
- İstemcinin kimliğe bürünme düzeyini RPC_C_IMP_LEVEL_DELEGATE olarak ayarlaması gerekir.
- İstemci hesabı Active Directory Hizmetinde "Hesap hassas ve temsilci seçilemiyor" olarak işaretlenmemelidir.
- Sunucu hesabı Active Directory Hizmeti'nde "Temsilci için güvenilir" özniteliğiyle işaretlenmelidir.
- İstemciyi, sunucuyu ve tüm "aşağı akış" sunucularını barındıran bilgisayarların tümü bir etki alanında çalışıyor olmalıdır.
İstemci, kimliğe bürünme düzeyini seçerek sunucuya istemcinin kimliğine bürünme konusunda ne kadar ileri gidebileceğini söyler. İstemci, sunucuyla iletişim kurmak için kullandığı proxy'de kimliğe bürünme düzeyini ayarlar.
Kimliğe Bürünme Düzeyini Ayarlama
Kimliğe bürünme düzeyini ayarlamanın iki yolu vardır:
- İstemci, CoInitializeSecurityçağrısı aracılığıyla işlem genelinde ayarlayabilir.
- İstemci, IClientSecurity::SetBlanket çağrısı aracılığıyla (veya CoSetProxyBlanket) yardımcı işleviuzak bir nesnenin arabiriminde ara sunucu düzeyinde güvenlik ayarlayabilir.
dwImpLevel parametresi aracılığıyla CoInitializeSecurityveya CoSetProxyBlanketuygun bir RPC_C_IMP_LEVEL_xxx değeri geçirerek kimliğe bürünme düzeyini ayarlarsınız.
Farklı kimlik doğrulama hizmetleri, temsilci düzeyinde kimliğe bürünme özelliğini farklı kapsamlarda destekler. Örneğin, NTLMSSP çapraz iş parçacığını ve işlemler arası temsilci düzeyinde kimliğe bürünme özelliğini destekler ancak bilgisayarlar arası kimliğine bürünme özelliğini desteklemez. Öte yandan, Kerberos protokolü bilgisayar sınırları arasında temsilci düzeyinde kimliğe bürünme özelliğini desteklerken Schannel temsilci düzeyinde herhangi bir kimliğe bürünme özelliğini desteklemez. Kimliğe bürünme düzeyinde bir ara sunucunuz varsa ve kimliğe bürünme düzeyini temsilci olarak ayarlamak istiyorsanız, kimliğe bürünme düzeyi dışında her parametre için varsayılan sabitleri kullanarak SetBlanketçağırmanız gerekir. COM, NTLM'yi yerel olarak ve Kerberos protokollerini uzaktan seçer (Kerberos protokolü çalıştığında).
İlgili konular