WCF'de İleti Güvenliği
Windows Communication Foundation (WCF), güvenlik (Transport
ve Message
) sağlamak için iki ana mod ve ikisini birleştiren üçüncü bir moda (TransportWithMessageCredential
) sahiptir. Bu konu başlığında ileti güvenliği ve bunu kullanma nedenleri açıklanmaktadır.
İleti Güvenliği nedir?
İleti güvenliği, iletilerin güvenliğini sağlamak için WS-Security belirtimini kullanır. WS-Security belirtimi, SOAP ileti düzeyinde (aktarım düzeyi yerine) gizlilik, bütünlük ve kimlik doğrulaması sağlamak için SOAP mesajlaşmasına yönelik iyileştirmeleri açıklar.
Kısaca, ileti güvenliği, güvenlik kimlik bilgilerini ve talepleri her iletiyle birlikte herhangi bir ileti korumasıyla (imzalama veya şifreleme) kapsülleyerek aktarım güvenliğinden farklıdır. İçeriğini değiştirerek güvenliği doğrudan iletiye uygulamak, güvenli iletinin güvenlik yönlerine göre kendi kendine içermesini sağlar. Bu, aktarım güvenliği kullanıldığında mümkün olmayan bazı senaryoları etkinleştirir.
İleti Güvenliğini Kullanma Nedenleri
İleti düzeyi güvenlikte, tüm güvenlik bilgileri iletide kapsüllenmiş olur. İletinin aktarım düzeyi güvenliği yerine ileti düzeyinde güvenlikle güvenliğini sağlamak aşağıdaki avantajlara sahiptir:
Uçtan uca güvenlik. Güvenli Yuva Katmanı (SSL) gibi aktarım güvenliği yalnızca iletişim noktadan noktaya olduğunda iletilerin güvenliğini sağlar. İleti, nihai alıcıya ulaşmadan önce bir veya daha fazla SOAP aracısına (örneğin yönlendirici) yönlendirilirse, bir aracı bunu kablodan okuduğunda iletinin kendisi korunmaz. Ayrıca, istemci kimlik doğrulama bilgileri yalnızca ilk aracı tarafından kullanılabilir ve gerekirse bant dışı bir şekilde nihai alıcıya yeniden iletilmelidir. Bu, yolun tamamı tek tek atlamalar arasında SSL güvenliği kullansa bile geçerlidir. İleti güvenliği doğrudan iletiyle çalıştığından ve içindeki XML'nin güvenliğini sağladığından, nihai alıcıya ulaşmadan önce kaç aracı söz konusu olursa olsun güvenlik iletide kalır. Bu, gerçek bir uçtan uca güvenlik senaryosu sağlar.
Daha fazla esneklik. İletinin tüm bölümü yerine iletinin bölümleri imzalanabilir veya şifrelenebilir. Bu, aracıların iletinin kendilerine yönelik bölümlerini görüntüleyebileceği anlamına gelir. Gönderenin iletideki bilgilerin bir kısmını aracılar tarafından görünür hale getirmesi gerekiyorsa ancak üzerinde oynanmadığından emin olmak istiyorsa, yalnızca imzalayabilir ancak şifrelenmemiş olarak bırakabilir. İmza iletinin bir parçası olduğundan, nihai alıcı iletideki bilgilerin bozulmadan alındığını doğrulayabilir. Bir senaryoda, iletiyi Eylem üst bilgisi değerine göre yönlendiren bir SOAP aracı hizmeti olabilir. Varsayılan olarak, WCF Eylem değerini şifrelemez, ancak ileti güvenliği kullanılırsa bunu imzalar. Bu nedenle, bu bilgiler tüm aracılar tarafından kullanılabilir, ancak kimse değiştiremez.
Birden çok taşıma desteği. Güvenlik protokolüne güvenmek zorunda kalmadan adlandırılmış kanallar ve TCP gibi birçok farklı aktarım üzerinden güvenli iletiler gönderebilirsiniz. Aktarım düzeyi güvenlikle, tüm güvenlik bilgilerinin kapsamı tek bir aktarım bağlantısına göre belirlenir ve ileti içeriğinin kendisinden kullanılamaz. İleti güvenliği, iletiyi iletmek için kullandığınız aktarımdan bağımsız olarak iletiyi güvenli hale getirir ve güvenlik bağlamı doğrudan iletinin içine eklenir.
Çok çeşitli kimlik bilgileri ve talepler için destek. İleti güvenliği, SOAP iletisinin içindeki herhangi bir talep türünü iletebilen genişletilebilir bir çerçeve sağlayan WS-Security belirtimini temel alır. Aktarım güvenliğinden farklı olarak, kullanabileceğiniz kimlik doğrulama mekanizmaları veya talepleri kümesi aktarım özellikleriyle sınırlı değildir. WCF ileti güvenliği birden çok kimlik doğrulaması ve talep iletimi türünü içerir ve gerektiğinde ek türleri destekleyecek şekilde genişletilebilir. Bu nedenlerden dolayı, örneğin ileti güvenliği olmadan federasyon kimlik bilgileri senaryosu mümkün değildir. WCF'nin desteklediği federasyon senaryoları hakkında daha fazla bilgi için bkz . Federasyon ve Verilen Belirteçler.
İleti ve Aktarım Güvenliği Karşılaştırması
Aktarım Düzeyi Güvenliğin Avantajları ve Dezavantajları
Aktarım güvenliği aşağıdaki avantajlara sahiptir:
İletişim sağlayan tarafların XML düzeyi güvenlik kavramlarını anlamasını gerektirmez. Bu, örneğin iletişimin güvenliğini sağlamak için HTTPS kullanıldığında birlikte çalışabilirliği geliştirebilir.
Genel olarak iyileştirilmiş performans.
Donanım hızlandırıcıları kullanılabilir.
Akış mümkündür.
Aktarım güvenliğinin aşağıdaki dezavantajları vardır:
Yalnızca atlamadan atlamaya.
Sınırlı ve genişletilebilir kimlik bilgileri kümesi.
Aktarıma bağımlı.
İleti Düzeyi Güvenliğin Dezavantajları
İleti güvenliğinin aşağıdaki dezavantajları vardır:
Performans
İleti akışı kullanılamaz.
XML düzeyinde güvenlik mekanizmalarının uygulanmasını ve WS-Security belirtimi için destek gerektirir. Bu, birlikte çalışabilirliği etkileyebilir.