Aracılığıyla paylaş


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

  1. bağlamalar> öğesine customBinding<> ekleyin.<

  2. Alt öğe olarak, öğesine bir <bağlama> öğesi <customBinding> ekleyin.

  3. öğesine bir <security> öğe <binding> ekleyin.

  4. özniteliğini authenticationMode aşağıda açıklanan değerlerden birine ayarlayın. Örneğin, aşağıdaki kod modu olarak AnonymousForCertificateayarlar.

    <bindings>  
      <customBinding>  
        <binding name="SecureCustomBinding">  
         <security authenticationMode ="AnonymousForCertificate" />  
        </binding>  
      </customBinding>  
    </bindings>  
    

Modu program aracılığıyla ayarlamak için

  1. Aşağıdakilerden biri olabilecek dönüş türünü belirleyin: SymmetricSecurityBindingElement, TransportSecurityBindingElement, AsymmetricSecurityBindingElementveya SecurityBindingElement.

  2. 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()
    
  3. Ö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><securityolarak AnonymousForCertificateayarlayı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 AnonymousForSslNegotiatedayarlayı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 CertificateOverTransportayarlayı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 IssuedTokenayarlayı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 IssuedTokenForCertificateayarlayı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 IssuedTokenForSslNegotiatedayarlayı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 IssuedTokenOverTransportayarlayı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 Kerberosayarlayı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 KerberosOverTransportayarlayı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 MutualCertificateayarlayı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 MutualCertificateDuplexayarlayı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 MutualSslNegotiatedayarlayı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 SecureConversationayarlayı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 SspiNegotiatedayarlayı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 SspiNegotiatedOverTransportayarlayı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 UserNameForCertificateayarlayı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 UserNameForSslNegotiatedayarlayı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 UserNameOverTransportayarlayın.

Ayrıca bkz.