Dağıtılan Uygulama Güvenliği
Windows Communication Foundation (WCF) güvenliği üç önemli işlevsel alana ayrılır: aktarım güvenliği, erişim denetimi ve denetim. Aktarım güvenliği bütünlük, gizlilik ve kimlik doğrulaması sağlar. Aktarım güvenliği aşağıdakilerden biri tarafından sağlanır: aktarım güvenliği, ileti güvenliği veya TransportWithMessageCredential
.
WCF ileti güvenliğine genel bakış için bkz . Güvenliğe Genel Bakış. WCF güvenliğinin diğer iki parçası hakkında daha fazla bilgi için bkz . Yetkilendirme ve Denetim.
Güvenlik Senaryolarını Aktarma
WCF aktarım güvenliğini kullanan yaygın senaryolar şunlardır:
Windows kullanarak güvenli aktarım. WCF istemcisi ve hizmeti bir Windows etki alanına (veya Bir Windows ormanına) dağıtılır. İletiler kişisel veriler içerdiğinden, gereksinimler istemci ve hizmetin karşılıklı kimlik doğrulamasını, ileti bütünlüğünü ve ileti gizliliğini içerir. Buna ek olarak, belirli bir işlemin gerçekleştiğine dair kanıt gereklidir, örneğin iletinin alıcısı imza bilgilerini kaydedmelidir.
ve HTTPS kullanarak
UserName
güvenli aktarım. İnternet üzerinde çalışmak için bir WCF istemcisi ve hizmeti geliştirilmelidir. İstemci kimlik bilgileri, kullanıcı adı/parola çiftleri veritabanında kimlik doğrulaması yapar. Hizmet, güvenilir bir Güvenli Yuva Katmanı (SSL) sertifikası kullanılarak bir HTTPS adresinde dağıtılır. İletiler İnternet üzerinden seyahat ettiğinden, istemci ve hizmetin karşılıklı olarak kimlik doğrulamasının yapılması ve aktarım sırasında iletilerin gizliliğinin ve bütünlüğünün korunması gerekir.Sertifikaları kullanarak güvenli aktarım. Genel İnternet üzerinden çalışmak için bir WCF istemcisi ve hizmeti geliştirilmelidir. İstemci ve hizmetin her ikisi de iletilerin güvenliğini sağlamak için kullanılabilecek sertifikalara sahiptir. İstemci ve hizmet, birbirleriyle iletişim kurmak ve ileti bütünlüğü, gizlilik ve karşılıklı kimlik doğrulaması gerektiren yüksek değerli işlemler gerçekleştirmek için İnternet'i kullanır.
Bütünlük, Gizlilik ve Kimlik Doğrulaması
Üç işlev (bütünlük, gizlilik ve kimlik doğrulaması) birlikte aktarım güvenliği olarak adlandırılır. Aktarım güvenliği, dağıtılmış bir uygulamaya yönelik tehditleri azaltmaya yardımcı olan işlevler sağlar. Aşağıdaki tabloda aktarım güvenliğini oluşturan üç işlev kısaca açıklanmaktadır.
İşlev | Açıklama |
---|---|
Bütünlük | Bütünlük , özellikle bir noktadan diğerine geçtikten ve büyük olasılıkla birçok aktör tarafından okunduktan sonra verilerin eksiksiz ve doğru olmasının güvencesidir. Verilerle oynanmasını önlemek için bütünlük korunmalıdır ve genellikle iletinin dijital olarak imzalanmasıyla elde edilir. |
Gizlilik | Gizlilik , bir iletinin hedeflenen okuyucu dışında kimse tarafından okunmadığının güvencesidir. Örneğin, kredi kartı numarası İnternet üzerinden gönderildiğinden gizli tutulmalıdır. Gizlilik genellikle ortak anahtar/özel anahtar şeması kullanılarak verilerin şifrelenmesini sağlar. |
Kimlik Doğrulaması | Kimlik doğrulaması , talep edilen bir kimliğin doğrulanmasıdır. Örneğin, bir banka hesabı kullanırken, yalnızca hesabın gerçek sahibinin fon çekmesine izin vermek zorunludur. Kimlik doğrulaması çeşitli yollarla sağlanabilir. Yaygın yöntemlerden biri kullanıcı/parola sistemidir. İkincisi, üçüncü taraf tarafından sağlanan bir X.509 sertifikasının kullanılmasıdır. |
Güvenlik Modları
WCF,aşağıdaki tabloda açıklanan çeşitli aktarım güvenliği modlarını içerir.
Mod | Açıklama |
---|---|
Hiçbiri | Aktarım katmanında veya ileti katmanında güvenlik sağlanmadı. Önceden tanımlanmış bağlamalardan hiçbiri, temelHttpBinding> öğesi veya kod BasicHttpBinding kullanılırken sınıfı dışında <varsayılan olarak bu modu kullanmaz. |
Taşıma | Bütünlük, gizlilik ve karşılıklı kimlik doğrulaması için HTTPS gibi güvenli bir aktarım kullanır. |
İleti | Bütünlük, gizlilik ve karşılıklı kimlik doğrulaması için SOAP-message güvenliğini kullanır. SOAP iletileri WS-Security standartlarına göre güvenli hale getirilir. |
Karma Mod | Bütünlük, gizlilik ve sunucu kimlik doğrulaması için aktarım güvenliğini kullanır. İstemci kimlik doğrulaması için ileti güvenliğini (WS-Security ve diğer standartlar) kullanır. (Bu mod için bu numaralandırmadır TransportWithMessageCredential .) |
Her ikisi | Her iki düzeyde de koruma ve kimlik doğrulaması gerçekleştirir. Bu mod yalnızca netMsmqBinding> öğesinde <kullanılabilir. |
Kimlik Bilgileri ve Aktarım Güvenliği
Kimlik bilgisi , talep edilen bir kimlik veya yetenek oluşturmak için sunulan verilerdir. Kimlik bilgilerinin sunulması hem verilerin hem de verilerin sahip olduğuna ilişkin kanıtın sunulmasını içerir. WCF, hem aktarım hem de ileti güvenlik düzeylerinde çeşitli kimlik bilgisi türlerini destekler. WCF bağlaması için bir kimlik bilgisi türü belirtebilirsiniz.
Birçok ülkede veya bölgede ehliyet, kimlik bilgisi örneğidir. Lisans, kimliğini ve özelliklerini temsil eden veriler içerir. Sahip olanın resmi şeklinde sahiplik kanıtı içerir. Lisans, genellikle resmi lisanslama departmanı olan güvenilen bir yetkili tarafından verilir. Lisans korumalıdır ve üzerinde oynanmadığını veya sahte olmadığını gösteren bir hologram içerebilir.
Örneğin, WCF'de desteklenen iki kimlik bilgisi türünü göz önünde bulundurun: kullanıcı adı ve (X.509) sertifika kimlik bilgileri.
Kullanıcı adı kimlik bilgisi için, kullanıcı adı talep edilen kimliği temsil eder ve parola sahiplik kanıtını sunar. Bu durumda güvenilen yetkili, kullanıcı adını ve parolayı doğrulayan sistemdir.
Sertifika kimlik bilgilerindeki konu adı, konu alternatif adı veya sertifika içindeki belirli alanlar, talep edilen kimliği ve/veya özellikleri temsil etmek için kullanılabilir. Kimlik bilgilerindeki verilerin sahip olduğunun kanıtı, imza oluşturmak için ilişkili özel anahtar kullanılarak oluşturulur.
Aktarım güvenliğini programlama ve kimlik bilgilerini belirtme hakkında daha fazla bilgi için bkz . Bağlamalar ve Güvenlik ve Güvenlik Davranışları.
Aktarım İstemcisi Kimlik Bilgisi Türleri
Aşağıdaki tabloda aktarım güvenliği kullanan bir uygulama oluşturulurken kullanılan olası değerler gösterilmektedir. Bu değerleri kod veya bağlama ayarlarında kullanabilirsiniz.
Ayar | Veri Akışı Açıklaması |
---|---|
Hiçbiri | İstemcinin herhangi bir kimlik bilgisi sunması gerekmediğini belirtir. Bu, anonim bir istemciye çevrilir. |
Temel | Temel kimlik doğrulamayı belirtir. Daha fazla bilgi için bkz. "HTTP Kimlik Doğrulaması: Temel ve Özet Kimlik Doğrulaması" RFC2617. |
Özet | Özet kimlik doğrulamayı belirtir. Daha fazla bilgi için bkz. "HTTP Kimlik Doğrulaması: Temel ve Özet Kimlik Doğrulaması" RFC2617. |
Ntlm | Bir Windows etki alanında SSPI anlaşması kullanarak Windows kimlik doğrulamasını belirtir. SSPI anlaşması Kerberos protokolü veya NT LanMan (NTLM) kullanılarak sonuçlanabilir. |
Windows | Bir Windows etki alanında SSPI kullanarak Windows kimlik doğrulamasını belirtir. SSPI, Kimlik doğrulama hizmeti olarak Kerberos protokolünden veya NTLM'den seçer. SSPI önce Kerberos protokollerini dener; bu başarısız olursa NTLM kullanır. |
Sertifika | Genellikle X.509 sertifika kullanarak istemci kimlik doğrulaması gerçekleştirir. |
İleti İstemcisi Kimlik Bilgisi Türleri
Aşağıdaki tabloda, ileti güvenliği kullanan bir uygulama oluşturulurken kullanılan olası değerler gösterilmektedir. Bu değerleri kod veya bağlama ayarlarında kullanabilirsiniz.
Ayar | Veri Akışı Açıklaması |
---|---|
Hiçbiri | Hizmetin anonim istemcilerle etkileşim kurmasına izin verir. |
Windows | SOAP ileti alışverişlerinin Windows kimlik bilgilerinin kimliği doğrulanmış bağlamı altında gerçekleşmesini sağlar. Kimlik doğrulama hizmeti olarak Kerberos protokolünden veya NTLM'den seçim yapmak için SSPI anlaşma mekanizmasını kullanır. |
Username | Hizmetin, istemcinin kimlik doğrulamasının bir kullanıcı adı kimlik bilgileriyle yapılmasını gerektirmesine izin verir. WCF'nin imza oluşturma veya verileri şifreleme gibi kullanıcı adıyla herhangi bir şifreleme işlemine izin vermediğ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. |
CardSpace | Hizmetin, istemcinin kimliğinin bir CardSpace kullanılarak doğrulanmış olmasını gerektirmesine izin verir. |
Programlama Kimlik Bilgileri
İstemci kimlik bilgisi türlerinin her biri için WCF programlama modeli, hizmet davranışları ve kanal davranışları kullanarak kimlik bilgisi değerlerini ve kimlik bilgisi doğrulayıcılarını belirtmenize olanak tanır.
WCF güvenliğinin iki kimlik bilgisi türü vardır: hizmet kimlik bilgisi davranışları ve kanal kimlik bilgisi davranışları. WCF'deki kimlik bilgisi davranışları, bağlamalar aracılığıyla ifade edilen güvenlik gereksinimlerini karşılamak için kullanılan gerçek verileri, yani kimlik bilgilerini belirtir. WCF'de istemci sınıfı, işlem çağırması ile iletiler arasında dönüşüm sağlayan çalışma zamanı bileşenidir. Tüm istemciler sınıfından devralır ClientBase<TChannel> . ClientCredentials Temel sınıftaki özelliği, istemci kimlik bilgilerinin çeşitli değerlerini belirtmenize olanak tanır.
WCF'de hizmet davranışları, hizmeti program aracılığıyla denetlemek için hizmet sözleşmesi (arabirim) uygulayan sınıfa uygulanan özniteliklerdir. sınıfı, ServiceCredentials çeşitli istemci kimlik bilgileri türleri için hizmet kimlik bilgileri ve istemci doğrulama ayarları için sertifikalar belirtmenize olanak tanır.
İleti Güvenliği için Anlaşma Modeli
İleti güvenlik modu, hizmet kimlik bilgilerinin istemcide bant dışında yapılandırılması için aktarım güvenliği gerçekleştirmenize olanak tanır. Örneğin, Windows sertifika deposunda depolanan bir sertifika kullanıyorsanız, Microsoft Yönetim Konsolu (MMC) ek bileşeni gibi bir araç kullanmanız gerekir.
İleti güvenlik modu, hizmet kimlik bilgilerinin bir ilk anlaşma kapsamında istemciyle değişimini sağlamak için aktarım güvenliği gerçekleştirmenize de olanak tanır. Anlaşma özelliğini etkinleştirmek için özelliğini olarak true
ayarlayınNegotiateServiceCredential.