Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ayrıcalıkların yükseltilmesi , bir saldırgana başlangıçta verilenlerin ötesinde yetkilendirme izinleri vermenin sonucudur. Örneğin, "salt okunur" izinlerine sahip bir saldırgan, izin seviyesini bir şekilde "okuma ve yazma" izinlerini içerecek şekilde yükseltir.
Güvenilir STS, SAML Belirteci Taleplerini İmzalamalıdır
Güvenlik Onayları Biçimlendirme Dili (SAML) belirteci, verilen belirteçler için varsayılan tür olan genel bir XML belirtecidir. SAML belirteci, son Web hizmetinin tipik bir değişimde güvendiği bir Güvenlik Belirteci Hizmeti (STS) tarafından oluşturulabilir. SAML belirteçleri, ifadelerde talepler içerir. Saldırgan, talepleri geçerli bir belirteçten kopyalayabilir, yeni bir SAML belirteci oluşturabilir ve farklı bir verenle imzalayabilir. Amaç, sunucunun verenleri doğrulayıp doğrulamadığını belirlemek ve doğrulamıyorsa, güvenilir bir STS tarafından hedeflenenlerin ötesinde ayrıcalıklara izin veren SAML belirteçleri oluşturmak için zayıflıktan yararlanmaktır.
Sınıf SamlAssertion SAML belirteci içinde yer alan dijital imzayı doğrular ve varsayılan olarak, SAML belirteçlerinin geçerli bir X.509 sertifikası tarafından imzalanması gerekir. Bu gereklilik, SamlSecurityTokenAuthenticatorCertificateValidationMode sınıfı IssuedTokenServiceCredential olarak ayarlandığında geçerlidir.
ChainTrust
modu, SAML belirtecinin verenine güvenilip güvenilmediğini belirlemek için yeterli değildir. Daha ayrıntılı bir güven modeli gerektiren hizmetler, verilen belirteç kimlik doğrulaması tarafından oluşturulan talep kümelerinin vereni denetlemek için yetkilendirme ve uygulama ilkelerini kullanabilir veya izin verilen imzalama sertifikaları kümesini kısıtlamak için IssuedTokenServiceCredential üzerinde X.509 doğrulama ayarlarını kullanabilir. Daha fazla bilgi için bkz. Kimlik Modeli ile Beyanları ve Yetkilendirmeyi Yönetme ve Federasyon ve Verilen Belirteçler.
Güvenlik Bağlamı Olmadan Kimlik Değiştirme
Aşağıdakiler yalnızca WinFX için geçerlidir.
bir istemci ile sunucu arasında bir bağlantı kurulduğunda, istemcinin kimliği tek bir durum dışında değişmez: WCF istemcisi açıldıktan sonra, aşağıdaki koşulların tümü doğruysa:
Güvenlik bağlamı oluşturma yordamları (aktarım güvenlik oturumu veya ileti güvenlik oturumu kullanılarak) kapatılır (EstablishSecurityContext özelliği, ileti güvenliği durumunda ayarlanır veya aktarım güvenlik oturumları oluşturma yeteneği olmayan bir aktarım kullanıldığında
false
olarak belirlenir). HTTPS, bu tür aktarımlar için bir örnektir.Windows kimlik doğrulaması kullanıyorsunuz.
Kimlik bilgilerini açıkça ayarlamazsınız.
Taklit edilen güvenlik bağlamı altında hizmeti çağırıyorsunuz.
Bu koşullar doğruysa, WCF istemcisi açıldıktan sonra istemcinin hizmette kimliğini doğrulamak için kullanılan kimlik değişebilir (kimliğine bürünülen kimlik değil, bunun yerine işlem kimliği olabilir). Bunun nedeni, istemcinin hizmete kimliğini doğrulamak için kullanılan Windows kimlik bilgilerinin her iletiyle birlikte iletilmesi ve kimlik doğrulaması için gerekli olan kimlik bilgilerinin mevcut iş parçacığının Windows kimliğinden alınmasıdır. Geçerli iş parçacığının Windows kimliği değişirse (örneğin, farklı bir çağıranın kimliğine bürünerek), iletiye eklenen ve hizmette istemcinin kimliğini doğrulamak için kullanılan kimlik bilgisi de değişebilir.
Windows kimlik doğrulamasını kimliğe bürünmeyle birlikte kullanırken belirleyici bir davranışa sahip olmak istiyorsanız Windows kimlik bilgilerini açıkça ayarlamanız veya hizmetle bir güvenlik bağlamı oluşturmanız gerekir. Bunu yapmak için ileti güvenlik oturumu veya aktarım güvenliği oturumu kullanın. Örneğin, net.tcp iletişimi bir iletişim güvenliği oturumu sağlayabilir. Ayrıca, hizmeti çağırırken istemci işlemlerinin yalnızca zaman uyumlu bir sürümünü kullanmanız gerekir. İleti güvenlik bağlamı oluşturursanız, hizmet bağlantısını yapılandırılan oturum yenileme süresinden daha uzun süre açık tutmamalısınız, çünkü kimlik oturum yenileme işlemi sırasında da değişebilir.
Kimlik Bilgileri Yakalama
Aşağıdakiler .NET Framework 3.5 ve sonraki sürümler için geçerlidir.
İstemci veya hizmet tarafından kullanılan kimlik bilgileri, geçerli bağlamın iş parçacığına dayanmaktadır. Kimlik bilgileri, istemcinin Open
yöntemi veya hizmetin BeginOpen
yöntemi (zaman uyumsuz çağrılar için) çağrıldığında elde edilir. hem ServiceHost hem de ClientBase<TChannel> sınıfları için, Open
ve BeginOpen
yöntemleri, Open sınıfının BeginOpen ve CommunicationObject yöntemlerinden devralınır.
Uyarı
BeginOpen
yöntemi kullanılırken, yakalanan kimlik bilgilerinin, yöntemi çağıran işlemin kimlik bilgileri olduğu garanti edilemez.
Belirteç Önbellekleri Eski Verileri Kullanarak Yeniden Yürütmeye İzin Verir
WCF, kullanıcıların kimliğini kullanıcı adı ve parolayla doğrulamak için yerel güvenlik yetkilisi (LSA) LogonUser
işlevini kullanır. Oturum açma işlevi maliyetli bir işlem olduğundan WCF, performansı artırmak için kimliği doğrulanmış kullanıcıları temsil eden belirteçleri önbelleğe almanızı sağlar. Önbelleğe alma mekanizması, LogonUser
sonuçlarını sonraki kullanımlar için kaydeder. Bu mekanizma varsayılan olarak devre dışıdır; özelliğini olarak ayarlayın CacheLogonTokenstrue
veya cacheLogonTokens
kullanın<.
CachedLogonTokenLifetime özelliğini TimeSpan olarak ayarlayarak veya cachedLogonTokenLifetime
öğesinin userNameAuthentication
özniteliğini kullanarak önbelleğe alınan belirteçler için Yaşam Süresi (TTL) ayarlayabilirsiniz; varsayılan değer 15 dakikadır. Bir belirteç önbelleğe alınırken, kullanıcı hesabı Windows'tan silinmiş olsa veya parolası değiştirilmiş olsa bile, aynı kullanıcı adı ve parolayı sunan tüm istemciler belirteci kullanabilir. TTL'nin süresi dolana ve belirteç önbellekten kaldırılana kadar, WCF (büyük olasılıkla kötü amaçlı) kullanıcının kimlik doğrulaması yapmasına izin verir.
Bunu azaltmak için: Değeri kullanıcılarınızın ihtiyaç duyduğu en kısa süreye ayarlayarak cachedLogonTokenLifetime
saldırı penceresini azaltın.
Verilen Belirteç Yetkilendirmesi: Süresi Büyük Bir Değere Ayarlandı
Belirli koşullar altında, ExpirationTime özelliğinin AuthorizationContext özelliği beklenmedik şekilde daha büyük bir değere ( MaxValue alan değeri bir gün eksi veya 20 Aralık 9999) ayarlanabilir.
Bu, istemci kimlik bilgisi türü olarak verilen bir belirtece sahip olan ve sistem tarafından sağlanan bağlamalardan herhangi biri kullanılırken WSFederationHttpBinding oluşur.
Bu durum, aşağıdaki yöntemlerden birini kullanarak özel bağlamalar oluşturduğunuzda da oluşur:
Bunu azaltmak için yetkilendirme ilkesinin eylemi ve her yetkilendirme ilkesinin sona erme süresini denetlemesi gerekir.
Hizmet, hedeflenen istemciden farklı bir sertifika kullanıyor
Belirli koşullar altında, istemci X.509 sertifikasıyla iletiyi dijital olarak imzalayabilir ve hizmetin hedeflenen sertifikadan farklı bir sertifika almasını sağlayabilir.
Bu, aşağıdaki koşullarda oluşabilir:
İstemci bir X.509 sertifikası kullanarak iletiyi dijital olarak imzalar ve iletiye X.509 sertifikasını eklemez, bunun yerine yalnızca konu anahtarı tanımlayıcısını kullanarak sertifikaya başvurur.
Hizmetin bilgisayarı aynı ortak anahtara sahip iki veya daha fazla sertifika içerir, ancak farklı bilgiler içerir.
Hizmet, konu anahtarı tanımlayıcısı ile eşleşen bir sertifika alır, ancak istemcinin kullanmayı amaçladığı sertifika değildir. WCF iletiyi aldığında ve imzayı doğruladığında, WCF, beklenmeyen X.509 sertifikasındaki bilgileri istemcinin beklediğinden farklı ve yükseltilmiş bir dizi taleple eşler.
Bunu azaltmak için, X.509 sertifikasına başka bir yolla, örneğin IssuerSerial kullanarak, başvurun.