SecurityBindingElement Kimlik Doğrulama Modları
Windows Communication Foundation (WCF), istemcilerin ve hizmetlerin birbirleri için kimlik doğrulaması yaptığı çeşitli modlar sağlar. Sınıfındaki SecurityBindingElement statik yöntemleri kullanarak veya yapılandırma aracılığıyla bu kimlik doğrulama modları için güvenlik bağlama öğeleri oluşturabilirsiniz. Bu konu başlığında 18 kimlik doğrulama modu kısaca açıklanmaktadır.
Kimlik doğrulama modlarından biri için öğesini kullanma örneği için bkz . Nasıl yapılır: Belirtilen Kimlik Doğrulama Modu için SecurityBindingElement Oluşturma.
Temel Yapılandırma Programlama
Aşağıdaki yordamda, bir yapılandırma dosyasında kimlik doğrulama modunun nasıl ayarlanacağı açıklanmaktadır.
Yapılandırmada kimlik doğrulama modunu ayarlamak için
bağlamalar> öğesine customBinding<> ekleyin.<
Alt öğe olarak, öğesine bir <bağlama> öğesi
<customBinding>
ekleyin.öğesine bir
<security>
öğe<binding>
ekleyin.özniteliğini
authenticationMode
aşağıda açıklanan değerlerden birine ayarlayın. Örneğin, aşağıdaki kod modu olarakAnonymousForCertificate
ayarlar.<bindings> <customBinding> <binding name="SecureCustomBinding"> <security authenticationMode ="AnonymousForCertificate" /> </binding> </customBinding> </bindings>
Modu program aracılığıyla ayarlamak için
Aşağıdakilerden biri olabilecek dönüş türünü belirleyin: SymmetricSecurityBindingElement, TransportSecurityBindingElement, AsymmetricSecurityBindingElementveya SecurityBindingElement.
sınıfının uygun statik yöntemini çağırın SecurityBindingElement . Örneğin, aşağıdaki kod yöntemini çağırır CreateAnonymousForCertificateBindingElement .
SymmetricSecurityBindingElement b = SecurityBindingElement. CreateAnonymousForCertificateBindingElement();
Dim b As SymmetricSecurityBindingElement = _ SecurityBindingElement.CreateAnonymousForCertificateBindingElement()
Özel bağlamayı oluşturmak için bağlama öğesini kullanın. Daha fazla bilgi için bkz . Özel Bağlamalar.
Mod Açıklamaları
AnonymousForCertificate
Bu kimlik doğrulama moduyla istemci anonimdir ve hizmetin kimliği X.509 sertifikası kullanılarak doğrulanır. Güvenlik bağlama öğesi yöntemi tarafından CreateAnonymousForCertificateBindingElement döndürülen bir SymmetricSecurityBindingElement öğesidir. Alternatif olarak, öğesinin authenticationMode
özniteliğini><security
olarak AnonymousForCertificate
ayarlayın.
AnonymousForSslNegotiated
Bu kimlik doğrulama moduyla istemci anonimdir ve hizmetin kimliği çalışma zamanında anlaşmaya varılan bir X.509 sertifikası kullanılarak doğrulanır. güvenlik bağlama öğesi, ilk parametre için değeri false
geçirildiğinde yöntemi tarafından CreateSslNegotiationBindingElement döndürülen bir SymmetricSecurityBindingElement öğedir. Alternatif olarak özniteliğini authenticationMode
olarak AnonymousForSslNegotiated
ayarlayın.
CertificateOverTransport
Bu kimlik doğrulama moduyla istemci, SOAP katmanında destekleyici belirteç olarak görünen bir X.509 sertifikası kullanarak kimlik doğrulaması yapar; yani, ileti imzasını imzalayan bir belirteçtir. Hizmetin kimliği aktarım katmanında bir X.509 sertifikası kullanılarak doğrulanır. Güvenlik bağlama öğesi yöntemi tarafından CreateCertificateOverTransportBindingElement döndürülen bir TransportSecurityBindingElement öğesidir. Alternatif olarak özniteliğini authenticationMode
olarak CertificateOverTransport
ayarlayın.
IssuedToken
Bu kimlik doğrulama moduyla istemci, hizmette kimlik doğrulaması yapmaz; bunun yerine, istemci bir güvenlik belirteci hizmetinde kimlik doğrulaması yapar ve bir SAML belirteci alır ve ardından paylaşılan anahtar bilgisini kanıtlamak için sunucuya sunar. Hizmetin kimliği istemcide doğrulanmaz, ancak güvenlik belirteci hizmeti paylaşılan anahtarı verilen belirtecin bir parçası olarak şifreler, böylece anahtarın şifresini yalnızca hizmet çözebilir. Güvenlik bağlama öğesi yöntemi tarafından CreateIssuedTokenBindingElement döndürülen bir SymmetricSecurityBindingElement öğesidir. Alternatif olarak özniteliğini authenticationMode
olarak IssuedToken
ayarlayın.
IssuedTokenForCertificate
Bu kimlik doğrulama moduyla istemci, hizmette kimlik doğrulaması yapmaz; bunun yerine, istemci bir güvenlik belirteci hizmetinde kimlik doğrulaması yapar ve bir SAML belirteci alır ve ardından paylaşılan anahtar bilgisini kanıtlamak için sunucuya sunar. Verilen belirteç SOAP katmanında destekleyici belirteç veya taşıyıcı belirteç olarak görünür; yani, ileti imzasını imzalayan bir belirteçtir. Hizmet, bir X.509 sertifikası kullanarak istemcide kimlik doğrulaması yapar. Güvenlik bağlama öğesi yöntemi tarafından CreateIssuedTokenForCertificateBindingElement döndürülen bir SymmetricSecurityBindingElement öğesidir. Alternatif olarak özniteliğini authenticationMode
olarak IssuedTokenForCertificate
ayarlayın.
IssuedTokenForSslNegotiated
Bu kimlik doğrulama moduyla istemci, hizmette kimlik doğrulaması yapmaz; bunun yerine, istemci bir güvenlik belirteci hizmetinde kimlik doğrulaması yapar ve bir SAML belirteci alır ve ardından paylaşılan anahtar bilgisini kanıtlamak için sunucuya sunar. Verilen belirteç SOAP katmanında destekleyici belirteç veya taşıyıcı belirteç olarak görünür; yani, ileti imzasını imzalayan bir belirteçtir. Hizmetin kimliği bir X.509 sertifikası kullanılarak doğrulanır. Güvenlik bağlama öğesi yöntemi tarafından CreateIssuedTokenForSslBindingElement döndürülen bir SymmetricSecurityBindingElement öğesidir. Alternatif olarak özniteliğini authenticationMode
olarak IssuedTokenForSslNegotiated
ayarlayın.
IssuedTokenOverTransport
Bu kimlik doğrulama moduyla istemci, hizmette kimlik doğrulaması yapmaz; bunun yerine, istemci bir güvenlik belirteci hizmetinde kimlik doğrulaması yapar ve bir SAML belirteci alır ve ardından paylaşılan anahtar bilgisini kanıtlamak için sunucuya sunar. Verilen belirteç SOAP katmanında destekleyici belirteç veya taşıyıcı belirteç olarak görünür; yani, ileti imzasını imzalayan bir belirteçtir. Hizmetin kimliği aktarım katmanında bir X.509 sertifikası kullanılarak doğrulanır. Güvenlik bağlama öğesi yöntemi tarafından CreateIssuedTokenOverTransportBindingElement döndürülen bir TransportSecurityBindingElement
öğesidir. Alternatif olarak özniteliğini authenticationMode
olarak IssuedTokenOverTransport
ayarlayın.
Kerberos
Bu kimlik doğrulama moduyla, istemci bir Kerberos bileti kullanarak hizmette kimlik doğrulaması yapar. Aynı bilet, sunucu kimlik doğrulaması da sağlar. Güvenlik bağlama öğesi yöntemi tarafından CreateKerberosBindingElement döndürülen bir SymmetricSecurityBindingElement
öğesidir. Alternatif olarak özniteliğini authenticationMode
olarak Kerberos
ayarlayın.
Not
Bu kimlik doğrulama modunu kullanabilmek için hizmet hesabının bir hizmet asıl adı (SPN) ile ilişkilendirilmesi gerekir. Bunu yapmak için, hizmeti AĞ HİzMETİ hesabı veya YEREL SİSTEM hesabı altında çalıştırın. Alternatif olarak, hizmet hesabı için bir SPN oluşturmak için SetSpn.exe aracını kullanın. Her iki durumda da istemcinin servicePrincipalName öğesinde <veya oluşturucuyu kullanarak doğru SPN'yi EndpointAddress kullanması gerekir.> Daha fazla bilgi için bkz . Hizmet Kimliği ve Kimlik Doğrulaması.
Not
Kerberos
Kimlik doğrulama modu kullanıldığında Anonymous ve Delegation kimliğe bürünme düzeyleri desteklenmez.
KerberosOverTransport
Bu kimlik doğrulama moduyla, istemci bir Kerberos bileti kullanarak hizmette kimlik doğrulaması yapar. Kerberos belirteci SOAP katmanında destekleyici belirteç olarak görünür; yani, ileti imzasını imzalayan bir belirteçtir. Hizmetin kimliği aktarım katmanında bir X.509 sertifikası kullanılarak doğrulanır. Güvenlik bağlama öğesi yöntemi tarafından CreateKerberosOverTransportBindingElement döndürülen bir TransportSecurityBindingElement
öğesidir. Alternatif olarak özniteliğini authenticationMode
olarak KerberosOverTransport
ayarlayın.
Not
Bu kimlik doğrulama modunu kullanabilmek için hizmet hesabının bir SPN ile ilişkilendirilmesi gerekir. Bunu yapmak için, hizmeti AĞ HİzMETİ hesabı veya YEREL SİSTEM hesabı altında çalıştırın. Alternatif olarak, hizmet hesabı için bir SPN oluşturmak için SetSpn.exe aracını kullanın. Her iki durumda da istemcinin servicePrincipalName öğesinde <veya oluşturucuyu kullanarak doğru SPN'yi EndpointAddress kullanması gerekir.> Daha fazla bilgi için bkz . Hizmet Kimliği ve Kimlik Doğrulaması.
MutualCertificate
Bu kimlik doğrulama moduyla istemci, SOAP katmanında destekleyici belirteç olarak görünen bir X.509 sertifikası kullanarak kimlik doğrulaması yapar; yani, ileti imzasını imzalayan bir belirteçtir. Hizmetin kimliği de bir X.509 sertifikası kullanılarak doğrulanır. Güvenlik bağlama öğesi yöntemi tarafından CreateMutualCertificateBindingElement döndürülen bir SymmetricSecurityBindingElement
öğesidir. Alternatif olarak özniteliğini authenticationMode
olarak MutualCertificate
ayarlayın.
MutualCertificateDuplex
Bu kimlik doğrulama moduyla istemci, SOAP katmanında destekleyici belirteç olarak görünen bir X.509 sertifikası kullanarak kimlik doğrulaması yapar; yani, ileti imzasını imzalayan bir belirteçtir. Hizmetin kimliği de bir X.509 sertifikası kullanılarak doğrulanır. Bağlama yöntemi tarafından CreateMutualCertificateDuplexBindingElement döndürülen birAsymmetricSecurityBindingElement
. Alternatif olarak özniteliğini authenticationMode
olarak MutualCertificateDuplex
ayarlayın.
MutualSslNegotiated
Bu kimlik doğrulama moduyla, istemci ve hizmet X.509 sertifikalarını kullanarak kimlik doğrulaması yapar. güvenlik bağlama öğesi, ilk parametre için değeri true
geçirildiğinde yöntemi tarafından CreateSslNegotiationBindingElement döndürülen bir SymmetricSecurityBindingElement
öğedir. Alternatif olarak özniteliğini authenticationMode
olarak MutualSslNegotiated
ayarlayın.
Secureconversation
Güvenlik bağlama öğesi yöntemi tarafından CreateSecureConversationBindingElement döndürülen bir SymmetricSecurityBindingElement
öğesidir. Bu yöntem, güvenli oturumu oluşturmak için başlatma sırasında kullanılan bir parametre olarak alır SecurityBindingElement . Alternatif olarak özniteliğini authenticationMode
olarak SecureConversation
ayarlayın.
Önyükleme bağlaması belirtilmezse, SspiNegotiated
önyükleme için kimlik doğrulama modu kullanılır.
SspiNegotiation
Bu kimlik doğrulama moduyla, istemci ve sunucu kimlik doğrulamasını gerçekleştirmek için bir anlaşma protokolü kullanılır. Mümkünse Kerberos kullanılır; aksi takdirde, NT LanMan (NTLM) kullanılır. Güvenlik bağlama öğesi yöntemi tarafından CreateSspiNegotiationBindingElement döndürülen bir SymmetricSecurityBindingElement
öğesidir. Alternatif olarak özniteliğini authenticationMode
olarak SspiNegotiated
ayarlayın.
SspiNegotiatedOverTransport
Bu kimlik doğrulama moduyla, istemci ve sunucu kimlik doğrulamasını gerçekleştirmek için bir anlaşma protokolü kullanılır. Mümkünse Kerberos protokolü kullanılır; aksi takdirde NTLM kullanılır. Sonuçta elde edilen belirteç SOAP katmanında destekleyici belirteç olarak görünür; yani, ileti imzasını imzalayan bir belirteçtir. Hizmetin ayrıca aktarım katmanında kimliği bir X.509 sertifikasıyla doğrulanır. Güvenlik bağlama öğesi yöntemi tarafından CreateSspiNegotiationOverTransportBindingElement döndürülen bir TransportSecurityBindingElement
öğesidir. Alternatif olarak özniteliğini authenticationMode
olarak SspiNegotiatedOverTransport
ayarlayın.
UserNameForCertificate
Bu kimlik doğrulama moduyla istemci, SOAP katmanında imzalı destekleyici belirteç olarak görünen bir Kullanıcı Adı Belirteci kullanarak hizmette kimlik doğrulaması yapar; yani, ileti imzası tarafından imzalanan bir belirteçtir. Hizmet, bir X.509 sertifikası kullanarak istemcide kimlik doğrulaması yapar. Güvenlik bağlama öğesi yöntemi tarafından CreateUserNameForCertificateBindingElement döndürülen bir SymmetricSecurityBindingElement
öğesidir. Alternatif olarak özniteliğini authenticationMode
olarak UserNameForCertificate
ayarlayın.
UserNameForCertificate
Kimlik doğrulama modu için hem istemci hem de hizmet WS-Security 1.1 kullanıyor olmalıdır.
UserNameForSslNegotiated
Bu kimlik doğrulama moduyla istemci, SOAP katmanında imzalı destekleyici belirteç olarak görünen bir Kullanıcı Adı Belirteci kullanılarak kimlik doğrulaması yapar; yani, ileti imzası tarafından imzalanan bir belirteçtir. Hizmetin kimliği bir X.509 sertifikası kullanılarak doğrulanır. Güvenlik bağlama öğesi yöntemi tarafından CreateUserNameForSslBindingElement döndürülen bir SymmetricSecurityBindingElement
öğesidir. Alternatif olarak özniteliğini authenticationMode
olarak UserNameForSslNegotiated
ayarlayın.
UserNameOverTransport
Bu kimlik doğrulama moduyla istemci, SOAP katmanında imzalı destekleyici belirteç olarak görünen bir Kullanıcı Adı Belirteci kullanarak kimlik doğrulaması yapar; yani, ileti imzası tarafından imzalanan bir belirteçtir. Hizmetin kimliği aktarım katmanında bir X.509 sertifikası kullanılarak doğrulanır. Güvenlik bağlama öğesi yöntemi tarafından CreateUserNameOverTransportBindingElement döndürülen bir TransportSecurityBindingElement
öğesidir. Alternatif olarak özniteliğini authenticationMode
olarak UserNameOverTransport
ayarlayın.