Aracılığıyla paylaş


Bağlamalar ve Güvenlik

Windows Communication Foundation'a (WCF) dahil edilen sistem tarafından sağlanan bağlamalar, WCF uygulamalarını programlamak için hızlı bir yol sunar. Tek bir özel durumla, tüm bağlamaların varsayılan güvenlik düzeni etkindir. Bu konu, güvenlik gereksinimleriniz için doğru bağlamayı seçmenize yardımcı olur.

WCF güvenliğine genel bakış için bkz . Güvenliğe Genel Bakış. Bağlamaları kullanarak WCF programlama hakkında daha fazla bilgi için bkz . WCF Güvenliğini Programlama.

Zaten bir bağlama seçtiyseniz, Güvenlik Davranışları bölümünde güvenlikle ilişkili çalışma zamanı davranışları hakkında daha fazla bilgi edinebilirsiniz.

Bazı güvenlik işlevleri, sistem tarafından sağlanan bağlamalar kullanılarak programlanamaz. Özel bağlama kullanarak daha fazla denetim için bkz . Özel Bağlamalarla Güvenlik Özellikleri.

Bağlamaların Güvenlik İşlevleri

WCF, çoğu gereksinimi karşılayan bir dizi sistem tarafından sağlanan bağlama içerir. Belirli bir bağlama yeterli değilse, özel bir bağlama da oluşturabilirsiniz. Sistem tarafından sağlanan bağlamaların listesi için bkz . Sistem Tarafından Sağlanan Bağlamalar. Özel bağlamalar hakkında daha fazla bilgi için bkz . Özel Bağlamalar.

WCF'deki her bağlamanın iki biçimi vardır: API olarak ve yapılandırma dosyasında kullanılan XML öğesi olarak. Örneğin, WSHttpBinding (API) wsHttpBinding'de <>bir karşılığı vardır.

Aşağıdaki bölümde her bağlama için her iki form da listelenmiştir ve güvenlik özellikleri özetlenmiştir.

TemelHttp

Kodda sınıfını BasicHttpBinding kullanın; yapılandırmada temelHttpBinding'i>< kullanın.

Bu bağlama, aşağıdakiler de dahil olmak üzere bir dizi mevcut teknolojiyle kullanılmak üzere tasarlanmıştır:

  • ASP.NET Web hizmetleri (ASMX), sürüm 1.

  • Web Hizmeti Geliştirmeleri (WSE) uygulamaları.

  • Web Hizmetleri Birlikte Çalışabilirlik (WS-I) belirtiminde (https://go.microsoft.com/fwlink/?LinkId=38955) tanımlanan Temel Profil.

  • WS-I'de tanımlanan temel güvenlik profili.

Varsayılan olarak, bu bağlama güvenli değildir. ASMX hizmetleriyle birlikte çalışabilmek için tasarlanmıştır. Güvenlik etkinleştirildiğinde bağlama, temel kimlik doğrulaması, özet ve tümleşik Windows güvenliği gibi Internet Information Services (IIS) güvenlik mekanizmalarıyla sorunsuz birlikte çalışma için tasarlanmıştır. Daha fazla bilgi için bkz . Aktarım Güvenliğine Genel Bakış. Bu bağlama aşağıdakileri destekler:

  • HTTPS aktarım güvenliği.

  • HTTP temel kimlik doğrulaması.

  • WS-Security.

Daha fazla bilgi için bkz. BasicHttpSecurity, BasicHttpMessageSecurity, BasicHttpMessageCredentialTypeve BasicHttpSecurityMode.

WSHttpBinding

Kodda sınıfını WSHttpBinding kullanın; yapılandırmada <wsHttpBinding> kullanın.

Varsayılan olarak, bu bağlama WS-Security belirtimini uygular ve WS-* belirtimlerini uygulayan hizmetlerle birlikte çalışabilirlik sağlar. Aşağıdakileri destekler:

  • HTTPS aktarım güvenliği.

  • WS-Security.

  • Çağıranın kimliğini doğrulamak için SOAP ileti kimlik bilgisi güvenliği ile HTTPS aktarım koruması.

Daha fazla bilgi için bkz. WSHttpSecurity, MessageSecurityOverHttp, MessageCredentialType, SecurityMode, HttpTransportSecurity, HttpClientCredentialTypeve HttpProxyCredentialType.

WSDualHttpBinding

Kodda sınıfını WSDualHttpBinding kullanın; yapılandırmada <wsDualHttpBinding> kullanın.

Bu bağlama, çift yönlü hizmet uygulamalarını etkinleştirmek için tasarlanmıştır. Bu bağlama, ileti tabanlı aktarım güvenliği için WS-Security belirtimini uygular. Aktarım güvenliği kullanılamıyor. Varsayılan olarak aşağıdaki özellikleri sağlar:

  • Güvenilirlik için WS-Reliable Messaging uygular.

  • Aktarım güvenliği ve kimlik doğrulaması için WS-Security uygular.

  • İleti teslimi için HTTP kullanır.

  • Metin/XML ileti kodlaması kullanır.

Bağlama, WS-Security (ileti katmanı güvenliği) kullanarak aşağıdaki parametreleri yapılandırmanıza olanak tanır:

  • Şifreleme algoritmasını belirlemek için güvenlik algoritması paketi.

  • Aşağıdakiler için bağlama seçenekleri:

    • İstemcide bant dışı kullanılabilir hizmet kimlik bilgileri sağlama.

    • Kanal kurulumu kapsamında hizmetten alınan hizmet kimlik bilgilerini sağlama.

Daha fazla bilgi için bkz. WSDualHttpSecurity ve WSDualHttpSecurityMode.

NetTcpBinding

Kodda sınıfını NetTcpBinding kullanın; yapılandırmada netTcpBinding> kullanın<.

Bu bağlama, makineler arası iletişim için iyileştirilmiştir. Varsayılan olarak aşağıdaki özelliklere sahiptir:

  • Aktarım katmanı güvenliği uygular.

  • Aktarım güvenliği ve kimlik doğrulaması için Windows güvenliğinden yararlanıyor.

  • Aktarım için TCP kullanır.

  • İkili ileti kodlaması uygular.

  • WS-Reliable Messaging uygular.

Seçenekler şunlardır:

  • İleti katmanı güvenliği (WS-Security kullanarak).

  • İleti kimlik bilgileriyle aktarım güvenliği; TCP üzerinden Aktarım Katmanı Güvenliği (TLS) tarafından sağlanan gizlilik ve bütünlük ve WS-Security tarafından sağlanan yetkilendirme kimlik bilgileri.

Daha fazla bilgi için bkz. NetTcpSecurity, TcpTransportSecurity, TcpClientCredentialType, MessageSecurityOverTcpve MessageCredentialType.

NetNamedPipeBinding

Kodda sınıfını NetNamedPipeBinding kullanın; yapılandırmada netNamedPipeBinding> kullanın<.

Bu bağlama, işlemler arası iletişim için en iyi duruma getirilmiştir (genellikle aynı makinede). Varsayılan olarak, bu bağlama aşağıdaki özelliklere sahiptir:

  • İleti aktarımı ve kimlik doğrulaması için aktarım güvenliğini kullanır.

  • İleti teslimi için adlandırılmış kanallar kullanır.

  • İkili ileti kodlaması uygular.

  • Şifreleme ve ileti imzalama.

Seçenekler şunlardır:

  • Windows güvenliği kullanarak kimlik doğrulaması.

Daha fazla bilgi için bkz. NetNamedPipeSecurity, NetNamedPipeSecurityMode ve NamedPipeTransportSecurity.

Msmqıntegrationbinding

Kodda sınıfını MsmqIntegrationBinding kullanın; yapılandırmada <msmqIntegrationBinding> kullanın.

Bu bağlama, WCF olmayan Microsoft Message Queuing (MSMQ) uç noktalarıyla birlikte çalışabilen WCF istemcileri ve hizmetleri oluşturmak için iyileştirilmiştir.

Varsayılan olarak, bu bağlama aktarım güvenliğini kullanır ve aşağıdaki güvenlik özelliklerini sağlar:

  • Güvenlik devre dışı bırakılabilir (Yok).

  • MSMQ aktarım güvenliği (Aktarım).

Daha fazla bilgi için bkz. NetMsmqSecurity ve NetMsmqSecurityMode.

Netmsmqbinding

Kodda sınıfını NetMsmqBinding kullanın; yapılandırmada netMsmqBinding> kullanın<.

Bu bağlama, MSMQ kuyruğa alınmış ileti desteği gerektiren WCF hizmetleri oluşturulurken kullanılmak üzere tasarlanmıştır.

Varsayılan olarak, bu bağlama aktarım güvenliğini kullanır ve aşağıdaki güvenlik özelliklerini sağlar:

  • Güvenlik devre dışı bırakılabilir (Yok).

  • MSMQ aktarım güvenliği (Aktarım).

  • SOAP tabanlı ileti güvenliği (İleti).

  • Eşzamanlı Aktarım ve İleti güvenliği (Her İkisi).

  • Desteklenen İstemci Kimlik Bilgileri Türleri: None, Windows, UserName, Certificate, IssuedToken.

Kimlik Certificate bilgisi yalnızca güvenlik modu veya Messageolarak Both ayarlandığında desteklenir.

Daha fazla bilgi için bkz. MessageSecurityOverMsmq ve MsmqTransportSecurity.

WSFederationHttpBinding

Kodda sınıfını WSFederationHttpBinding kullanın; yapılandırmada <wsFederationHttpBinding> kullanın.

Varsayılan olarak, bu bağlama WS-Security (ileti katmanı güvenliği) kullanır.

Daha fazla bilgi için bkz. Federasyon, WSFederationHttpSecurityve WSFederationHttpSecurityMode.

Özel Bağlamalar

Sistem tarafından sağlanan bağlamalardan hiçbiri gereksinimlerinizi karşılamıyorsa, özel bir güvenlik bağlama öğesiyle özel bağlama oluşturabilirsiniz. Daha fazla bilgi için bkz . Özel Bağlamalarla Güvenlik Özellikleri.

Bağlama Seçenekleri

Aşağıdaki tabloda, güvenlik modu ayarında sunulan özellikler özetlenmiştir; diğer bir ifadeyle, güvenlik modu , Messageveya TransportWithMessageCredentialolarak ayarlandığında Transportkullanılabilen özellikler listelenmiştir. Uygulamanızın gerektirdiği güvenlik özelliklerini bulmanıza yardımcı olması için bu tabloyu kullanın.

Ayar Özellikler
Taşıma Sunucu kimlik doğrulaması

İstemci kimlik doğrulaması

Noktadan noktaya güvenlik

Birlikte çalışabilirlik

Donanım hızlandırma

Yüksek aktarım hızı

Güvenlik duvarının güvenliğini sağlama

Yüksek gecikmeli uygulamalar

Birden çok atlama arasında yeniden şifreleme
İleti Sunucu kimlik doğrulaması

İstemci kimlik doğrulaması

Uçtan uca güvenlik

Birlikte çalışabilirlik

Zengin talepler

Federasyon

Çok faktörlü kimlik doğrulaması

Özel belirteçler

Noter/zaman damgası hizmeti

Yüksek gecikmeli uygulamalar

İleti imzalarının kalıcılığı
Transportwithmessagecredential Sunucu kimlik doğrulaması

İstemci kimlik doğrulaması

Noktadan noktaya güvenlik

Birlikte çalışabilirlik

Donanım hızlandırma

Yüksek aktarım hızı

Zengin istemci talepleri

Federasyon

Çok faktörlü kimlik doğrulaması

Özel belirteçler

Güvenlik duvarının güvenliğini sağlama

Yüksek gecikmeli uygulamalar

Birden çok atlama arasında yeniden şifreleme

Aşağıdaki tabloda, çeşitli mod ayarlarını destekleyen bağlamalar listeleniyor. Hizmet uç noktanızı oluşturmak için kullanılacak tablodan bir bağlama seçin.

Bağlama Aktarım modu desteği İleti modu desteği TransportWithMessageCredential desteği
BasicHttpBinding Yes Evet Evet
WSHttpBinding Evet Evet Evet
WSDualHttpBinding Hayı Evet Hayı
NetTcpBinding Evet Evet Evet
NetNamedPipeBinding Evet Hayı Hayı
NetMsmqBinding Evet Evet Hayı
MsmqIntegrationBinding Evet Hayı Hayı
wsFederationHttpBinding Hayı Evet Yes

Bağlamalarda Aktarım Kimlik Bilgileri

Aşağıdaki tabloda, aktarım güvenliği modunda veya WSHttpBinding kullanılırken BasicHttpBinding kullanılabilen istemci kimlik bilgisi türleri listelenmiştir.

Type Açıklama
Hiçbiri İstemcinin herhangi bir kimlik bilgisi sunması gerekmediğini belirtir. Bu, anonim bir istemciye çevrilir.
Temel Temel kimlik doğrulaması. Daha fazla bilgi için bkz. RFC 2617 – HTTP Kimlik Doğrulaması: Temel ve Özet Kimlik Doğrulaması, adresinde https://go.microsoft.com/fwlink/?LinkId=84023bulunabilir.
Özet Özet kimlik doğrulaması. Daha fazla bilgi için bkz. RFC 2617 – HTTP Kimlik Doğrulaması: Temel ve Özet Kimlik Doğrulaması, adresinde https://go.microsoft.com/fwlink/?LinkId=84023bulunabilir.
NTLM NT LAN Manager (NTLM) kimlik doğrulaması.
Windows Windows kimlik doğrulaması.
Sertifika Sertifika kullanılarak gerçekleştirilen kimlik doğrulaması.
IssuedToken Hizmetin, bir güvenlik belirteci hizmeti veya CardSpace tarafından verilen bir belirteç kullanılarak istemcinin kimliğinin doğrulanması gerekmesini sağlar. Daha fazla bilgi için bkz . Federasyon ve Verilen Belirteçler.

Bağlamalarda İleti İstemcisi Kimlik Bilgileri

Aşağıdaki tabloda, İleti güvenlik modunda bağlama kullanılırken kullanılabilen istemci kimlik bilgisi türleri listelenmiştir.

Type Açıklama
Hiçbiri Hizmetin anonim istemcilerle etkileşim kurmasına izin verir.
Windows SOAP ileti alışverişlerinin Bir Windows kimlik bilgilerinin kimliği doğrulanmış bağlamı altında yapılmasına izin verir.
UserName Hizmetin, bir kullanıcı adı kimlik bilgisi kullanılarak istemcinin kimliğinin doğrulanmış olmasını gerektirmesine izin verir. Güvenlik modu olarak ayarlandığında TransportWithMessageCredentialWCF'nin parola özeti göndermeyi veya parola kullanarak anahtar türetme ve İleti modu güvenliği için bu tür anahtarları kullanmayı desteklemediğini unutmayın. Bu nedenle WCF, kullanıcı adı kimlik bilgileri kullanılırken aktarım güvenliğinin sağlanmasını zorlar.
Sertifika Hizmetin bir sertifika kullanarak istemcinin kimliğini doğrulamasını gerektirmesine izin verir.
IssuedToken Hizmetin özel belirteç sağlamak için bir güvenlik belirteci hizmeti kullanmasına izin verir.

Ayrıca bkz.