Tryby uwierzytelniania elementu SecurityBindingElement

Program Windows Communication Foundation (WCF) udostępnia kilka trybów, w których klienci i usługi uwierzytelniają się nawzajem. Elementy powiązania zabezpieczeń dla tych trybów uwierzytelniania można tworzyć przy użyciu metod statycznych w SecurityBindingElement klasie lub za pośrednictwem konfiguracji. W tym temacie krótko opisano 18 trybów uwierzytelniania.

Przykład użycia elementu dla jednego z trybów uwierzytelniania można znaleźć w temacie How to: Create a SecurityBindingElement for a Specified Authentication Mode (Jak utworzyć element SecurityBindingElement dla określonego trybu uwierzytelniania).

Podstawowe programowanie konfiguracji

Poniższa procedura opisuje sposób ustawiania trybu uwierzytelniania w pliku konfiguracji.

Aby ustawić tryb uwierzytelniania w konfiguracji

  1. Do elementu bindings> dodaj element <customBinding>.<

  2. Jako element podrzędny dodaj <element powiązania> do <customBinding> elementu .

  3. <security> Dodaj element do <binding> elementu .

  4. authenticationMode Ustaw atrybut na jedną z wartości opisanych poniżej. Na przykład poniższy kod ustawia tryb na AnonymousForCertificatewartość .

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

Aby ustawić tryb programowo

  1. Określ typ zwracany, który może być jednym z następujących: SymmetricSecurityBindingElement, , TransportSecurityBindingElementAsymmetricSecurityBindingElementlub SecurityBindingElement.

  2. Wywołaj odpowiednią metodę statyczną SecurityBindingElement klasy. Na przykład poniższy kod wywołuje metodę CreateAnonymousForCertificateBindingElement .

    SymmetricSecurityBindingElement b =
        SecurityBindingElement.
        CreateAnonymousForCertificateBindingElement();
    
    Dim b As SymmetricSecurityBindingElement = _
    SecurityBindingElement.CreateAnonymousForCertificateBindingElement()
    
  3. Użyj elementu powiązania, aby utworzyć powiązanie niestandardowe. Aby uzyskać więcej informacji, zobacz Powiązania niestandardowe.

Opisy trybu

AnonymousForCertificate

W tym trybie uwierzytelniania klient jest anonimowy, a usługa jest uwierzytelniana przy użyciu certyfikatu X.509. Element powiązania zabezpieczeń jest SymmetricSecurityBindingElement zwracany przez metodę CreateAnonymousForCertificateBindingElement . Alternatywnie ustaw authenticationMode atrybut><securityelementu na .AnonymousForCertificate

AnonymousForSslNegotiated

W przypadku tego trybu uwierzytelniania klient jest anonimowy, a usługa jest uwierzytelniana przy użyciu certyfikatu X.509 negocjowanego w czasie wykonywania. Element powiązania zabezpieczeń jest SymmetricSecurityBindingElement zwracany przez metodę CreateSslNegotiationBindingElement , gdy wartość false jest przekazywana dla pierwszego parametru. Alternatywnie ustaw authenticationMode atrybut na AnonymousForSslNegotiated.

CertificateOverTransport

W przypadku tego trybu uwierzytelniania klient uwierzytelnia się przy użyciu certyfikatu X.509 wyświetlanego w warstwie PROTOKOŁU SOAP jako token pomocniczy; oznacza to token, który podpisuje podpis wiadomości. Usługa jest uwierzytelniana przy użyciu certyfikatu X.509 w warstwie transportu. Element powiązania zabezpieczeń jest TransportSecurityBindingElement zwracany przez metodę CreateCertificateOverTransportBindingElement . Alternatywnie ustaw authenticationMode atrybut na CertificateOverTransport.

Issuedtoken

W przypadku tego trybu uwierzytelniania klient nie uwierzytelnia się w usłudze, w związku z tym; Zamiast tego klient uwierzytelnia się w usłudze tokenu zabezpieczającego i otrzymuje token SAML, który następnie przedstawia serwerowi, aby udowodnić swoją wiedzę na temat klucza współużytkowanego. Usługa nie jest uwierzytelniana na kliencie, w związku z tym, ale usługa tokenu zabezpieczającego szyfruje klucz wspólny w ramach wystawionego tokenu, aby tylko usługa mogła odszyfrować klucz. Element powiązania zabezpieczeń jest SymmetricSecurityBindingElement zwracany przez metodę CreateIssuedTokenBindingElement . Alternatywnie ustaw authenticationMode atrybut na IssuedToken.

IssuedTokenForCertificate

W przypadku tego trybu uwierzytelniania klient nie uwierzytelnia się w usłudze, w związku z tym; Zamiast tego klient uwierzytelnia się w usłudze tokenu zabezpieczającego i otrzymuje token SAML, który następnie przedstawia serwerowi, aby udowodnić swoją wiedzę na temat klucza współużytkowanego. Wystawiony token jest wyświetlany w warstwie protokołu SOAP jako token pomocniczy lub token elementu nośnego; oznacza to token, który podpisuje podpis wiadomości. Usługa uwierzytelnia się na kliencie przy użyciu certyfikatu X.509. Element powiązania zabezpieczeń jest SymmetricSecurityBindingElement zwracany przez metodę CreateIssuedTokenForCertificateBindingElement . Alternatywnie ustaw authenticationMode atrybut na IssuedTokenForCertificate.

IssuedTokenForSslNegotiated

W przypadku tego trybu uwierzytelniania klient nie uwierzytelnia się w usłudze, w związku z tym; Zamiast tego klient uwierzytelnia się w usłudze tokenu zabezpieczającego i otrzymuje token SAML, który następnie przedstawia serwerowi, aby udowodnić swoją wiedzę na temat klucza współużytkowanego. Wystawiony token jest wyświetlany w warstwie protokołu SOAP jako token pomocniczy lub token elementu nośnego; oznacza to token, który podpisuje podpis wiadomości. Usługa jest uwierzytelniana przy użyciu certyfikatu X.509. Element powiązania zabezpieczeń jest SymmetricSecurityBindingElement zwracany przez metodę CreateIssuedTokenForSslBindingElement . Alternatywnie ustaw authenticationMode atrybut na IssuedTokenForSslNegotiated.

IssuedTokenOverTransport

W przypadku tego trybu uwierzytelniania klient nie uwierzytelnia się w usłudze, w związku z tym; Zamiast tego klient uwierzytelnia się w usłudze tokenu zabezpieczającego i otrzymuje token SAML, który następnie przedstawia serwerowi, aby udowodnić swoją wiedzę na temat klucza współużytkowanego. Wystawiony token jest wyświetlany w warstwie protokołu SOAP jako token pomocniczy lub token elementu nośnego; oznacza to token, który podpisuje podpis wiadomości. Usługa jest uwierzytelniana przy użyciu certyfikatu X.509 w warstwie transportu. Element powiązania zabezpieczeń jest TransportSecurityBindingElement zwracany przez metodę CreateIssuedTokenOverTransportBindingElement . Alternatywnie ustaw authenticationMode atrybut na IssuedTokenOverTransport.

Kerberos

W tym trybie uwierzytelniania klient uwierzytelnia się w usłudze przy użyciu biletu protokołu Kerberos. Ten sam bilet zapewnia również uwierzytelnianie serwera. Element powiązania zabezpieczeń jest SymmetricSecurityBindingElement zwracany przez metodę CreateKerberosBindingElement . Alternatywnie ustaw authenticationMode atrybut na Kerberos.

Uwaga

Aby można było używać tego trybu uwierzytelniania, konto usługi musi być skojarzone z nazwą główną usługi (SPN). W tym celu uruchom usługę na koncie USŁUGI SIECIOWEJ lub lokalnym koncie SYSTEMU. Alternatywnie użyj narzędzia SetSpn.exe, aby utworzyć nazwę SPN dla konta usługi. W obu przypadkach klient musi użyć poprawnej nazwy SPN w elemecie servicePrincipalName> lub za pomocą konstruktoraEndpointAddress.< Aby uzyskać więcej informacji, zobacz Service Identity and Authentication (Tożsamość usługi i uwierzytelnianie).

Uwaga

Kerberos Gdy jest używany tryb uwierzytelniania, Anonymous poziomy personifikacji i Delegation nie są obsługiwane.

KerberosOverTransport

W tym trybie uwierzytelniania klient uwierzytelnia się w usłudze przy użyciu biletu protokołu Kerberos. Token Protokołu Kerberos jest wyświetlany w warstwie protokołu SOAP jako token pomocniczy; oznacza to token, który podpisuje podpis wiadomości. Usługa jest uwierzytelniana przy użyciu certyfikatu X.509 w warstwie transportu. Element powiązania zabezpieczeń jest TransportSecurityBindingElement zwracany przez metodę CreateKerberosOverTransportBindingElement . Alternatywnie ustaw authenticationMode atrybut na KerberosOverTransport.

Uwaga

Aby można było korzystać z tego trybu uwierzytelniania, konto usługi musi być skojarzone z nazwą SPN. W tym celu uruchom usługę na koncie USŁUGI SIECIOWEJ lub lokalnym koncie SYSTEMU. Alternatywnie użyj narzędzia SetSpn.exe, aby utworzyć nazwę SPN dla konta usługi. W obu przypadkach klient musi użyć poprawnej nazwy SPN w elemecie servicePrincipalName> lub za pomocą konstruktoraEndpointAddress.< Aby uzyskać więcej informacji, zobacz Service Identity and Authentication (Tożsamość usługi i uwierzytelnianie).

MutualCertificate

W przypadku tego trybu uwierzytelniania klient uwierzytelnia się przy użyciu certyfikatu X.509 wyświetlanego w warstwie PROTOKOŁU SOAP jako token pomocniczy; oznacza to token, który podpisuje podpis wiadomości. Usługa jest również uwierzytelniana przy użyciu certyfikatu X.509. Element powiązania zabezpieczeń jest SymmetricSecurityBindingElement zwracany przez metodę CreateMutualCertificateBindingElement . Alternatywnie ustaw authenticationMode atrybut na MutualCertificate.

MutualCertificateDuplex

W przypadku tego trybu uwierzytelniania klient uwierzytelnia się przy użyciu certyfikatu X.509 wyświetlanego w warstwie PROTOKOŁU SOAP jako token pomocniczy; oznacza to token, który podpisuje podpis wiadomości. Usługa jest również uwierzytelniana przy użyciu certyfikatu X.509. Powiązanie jest AsymmetricSecurityBindingElement zwracane przez metodę CreateMutualCertificateDuplexBindingElement . Alternatywnie ustaw authenticationMode atrybut na MutualCertificateDuplex.

MutualSslNegotiated

W tym trybie uwierzytelniania klient i usługa uwierzytelniają się przy użyciu certyfikatów X.509. Element powiązania zabezpieczeń jest SymmetricSecurityBindingElement zwracany przez metodę CreateSslNegotiationBindingElement , gdy wartość true jest przekazywana dla pierwszego parametru. Alternatywnie ustaw authenticationMode atrybut na MutualSslNegotiated.

Secureconversation

Element powiązania zabezpieczeń jest SymmetricSecurityBindingElement zwracany przez metodę CreateSecureConversationBindingElement . Ta metoda przyjmuje SecurityBindingElement jako parametr, który jest używany podczas inicjowania w celu ustanowienia bezpiecznej sesji. Alternatywnie ustaw authenticationMode atrybut na SecureConversation.

Jeśli nie określono powiązania bootstrap, SspiNegotiated tryb uwierzytelniania jest używany do uruchamiania.

SspiNegotiation

W przypadku tego trybu uwierzytelniania protokół negocjacji jest używany do przeprowadzania uwierzytelniania klienta i serwera. Kerberos jest używany, jeśli to możliwe; w przeciwnym razie jest używany NT LanMan (NTLM). Element powiązania zabezpieczeń jest SymmetricSecurityBindingElement zwracany przez metodę CreateSspiNegotiationBindingElement . Alternatywnie ustaw authenticationMode atrybut na SspiNegotiated.

SspiNegotiatedOverTransport

W przypadku tego trybu uwierzytelniania protokół negocjacji jest używany do przeprowadzania uwierzytelniania klienta i serwera. Protokół Kerberos jest używany, jeśli to możliwe; w przeciwnym razie jest używany protokół NTLM. Wynikowy token jest wyświetlany w warstwie PROTOKOŁU SOAP jako token pomocniczy; oznacza to token, który podpisuje podpis wiadomości. Usługa jest dodatkowo uwierzytelniana w warstwie transportu przez certyfikat X.509. Element powiązania zabezpieczeń jest TransportSecurityBindingElement zwracany przez metodę CreateSspiNegotiationOverTransportBindingElement . Alternatywnie ustaw authenticationMode atrybut na SspiNegotiatedOverTransport.

UserNameForCertificate

W przypadku tego trybu uwierzytelniania klient uwierzytelnia się w usłudze przy użyciu tokenu nazwy użytkownika wyświetlanego w warstwie protokołu SOAP jako podpisanego tokenu pomocniczego; oznacza to token podpisany przez podpis wiadomości. Usługa uwierzytelnia się na kliencie przy użyciu certyfikatu X.509. Element powiązania zabezpieczeń jest SymmetricSecurityBindingElement zwracany przez metodę CreateUserNameForCertificateBindingElement . Alternatywnie ustaw authenticationMode atrybut na UserNameForCertificate.

UserNameForCertificate W trybie uwierzytelniania zarówno klient, jak i usługa muszą używać programu WS-Security 1.1.

UserNameForSslNegotiated

W tym trybie uwierzytelniania klient jest uwierzytelniany przy użyciu tokenu nazwy użytkownika, który jest wyświetlany w warstwie PROTOKOŁU SOAP jako podpisany token pomocniczy; oznacza to token podpisany przez podpis wiadomości. Usługa jest uwierzytelniana przy użyciu certyfikatu X.509. Element powiązania zabezpieczeń jest SymmetricSecurityBindingElement zwracany przez metodę CreateUserNameForSslBindingElement . Alternatywnie ustaw authenticationMode atrybut na UserNameForSslNegotiated.

UserNameOverTransport

W tym trybie uwierzytelniania klient uwierzytelnia się przy użyciu tokenu nazwy użytkownika wyświetlanego w warstwie PROTOKOŁU SOAP jako podpisanego tokenu pomocniczego; oznacza to token podpisany przez podpis wiadomości. Usługa jest uwierzytelniana przy użyciu certyfikatu X.509 w warstwie transportu. Element powiązania zabezpieczeń jest TransportSecurityBindingElement zwracany przez metodę CreateUserNameOverTransportBindingElement . Alternatywnie ustaw authenticationMode atrybut na UserNameOverTransport.

Zobacz też