Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
Jako element podrzędny dodaj <element powiązania> do
<customBinding>elementu .<security>Dodaj element do<binding>elementu .authenticationModeUstaw atrybut na jedną z wartości opisanych poniżej. Na przykład poniższy kod ustawia tryb naAnonymousForCertificatewartość .<bindings> <customBinding> <binding name="SecureCustomBinding"> <security authenticationMode ="AnonymousForCertificate" /> </binding> </customBinding> </bindings>
Aby ustawić tryb programowo
Określ typ zwracany, który może być jednym z następujących: SymmetricSecurityBindingElement, , TransportSecurityBindingElementAsymmetricSecurityBindingElementlub SecurityBindingElement.
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()Użyj elementu powiązania, aby utworzyć powiązanie niestandardowe. Aby uzyskać więcej informacji, zobacz Powiązania niestandardowe.
Opisy trybu
AnonimowyDlaCertyfikatu
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 <security> elementu na AnonymousForCertificate.
AnonymousForSslNegotiated
W tym trybie 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.
Token wydany
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.
TokenWydanyDlaCertyfikatu
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.
TokenWydanyDlaSslNegocjowanego
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.
Token Wydany na Środku Transmisji
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 < lub za pomocą konstruktora>. 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 < lub za pomocą konstruktora>. Aby uzyskać więcej informacji, zobacz Service Identity and Authentication (Tożsamość usługi i uwierzytelnianie).
Certyfikat Wzajemny
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.
Negocjacje wzajemnego SSL
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.
BezpiecznaKonwersacja
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.
NegocjowaneSspiPrzezTransport
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.
NazwaUżytkownikaDlaCertyfikatu
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.
NazwaUżytkownikaDlaSSLUzgodnionego
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.