SecurityBindingElement-autentiseringslägen
Windows Communication Foundation (WCF) har flera lägen där klienter och tjänster autentiseras mot varandra. Du kan skapa säkerhetsbindningselement för dessa autentiseringslägen med hjälp av statiska metoder i SecurityBindingElement klassen eller via konfiguration. I det här avsnittet beskrivs kortfattat de 18 autentiseringslägena.
Ett exempel på hur du använder elementet för något av autentiseringslägena finns i Så här skapar du ett SecurityBindingElement för ett angivet autentiseringsläge.
Grundläggande konfigurationsprogrammering
Följande procedur beskriver hur du anger autentiseringsläget i en konfigurationsfil.
Så här ställer du in autentiseringsläget i konfigurationen
Lägg till en< customBinding> i bindningselementet>.<
Som ett underordnat element lägger du till ett bindningselement> i elementet
<customBinding>
.<Lägg till ett
<security>
element i elementet<binding>
.authenticationMode
Ange attributet till något av de värden som beskrivs nedan. Följande kod anger till exempel läget tillAnonymousForCertificate
.<bindings> <customBinding> <binding name="SecureCustomBinding"> <security authenticationMode ="AnonymousForCertificate" /> </binding> </customBinding> </bindings>
Så här ställer du in läget programmatiskt
Fastställ returtypen, som kan vara något av följande: SymmetricSecurityBindingElement, TransportSecurityBindingElement, AsymmetricSecurityBindingElement, eller SecurityBindingElement.
Anropa lämplig statisk metod för SecurityBindingElement klassen. Följande kod anropar CreateAnonymousForCertificateBindingElement till exempel metoden.
SymmetricSecurityBindingElement b = SecurityBindingElement. CreateAnonymousForCertificateBindingElement();
Dim b As SymmetricSecurityBindingElement = _ SecurityBindingElement.CreateAnonymousForCertificateBindingElement()
Använd bindningselementet för att skapa den anpassade bindningen. Mer information finns i Anpassade bindningar.
Lägesbeskrivningar
AnonymousForCertificate
Med det här autentiseringsläget är klienten anonym och tjänsten autentiseras med hjälp av ett X.509-certifikat. Säkerhetsbindningselementet returneras SymmetricSecurityBindingElement av CreateAnonymousForCertificateBindingElement metoden. Du kan också ange authenticationMode
attributet för elementet <security>
till AnonymousForCertificate
.
AnonymousForSslNegotiated
Med det här autentiseringsläget är klienten anonym och tjänsten autentiseras med ett X.509-certifikat som förhandlas vid körning. Säkerhetsbindningselementet returneras SymmetricSecurityBindingElement av CreateSslNegotiationBindingElement metoden när ett värde false
för skickas för den första parametern. Du kan också ange authenticationMode
attributet till AnonymousForSslNegotiated
.
CertificateOverTransport
Med det här autentiseringsläget autentiserar klienten med hjälp av ett X.509-certifikat som visas på SOAP-lagret som en stödtoken. en token som signerar meddelandesignaturen. Tjänsten autentiseras med ett X.509-certifikat på transportlagret. Säkerhetsbindningselementet returneras TransportSecurityBindingElement av CreateCertificateOverTransportBindingElement metoden. Du kan också ange authenticationMode
attributet till CertificateOverTransport
.
IssuedToken
Med det här autentiseringsläget autentiserar inte klienten till tjänsten som sådan. I stället autentiserar klienten till en säkerhetstokentjänst och tar emot en SAML-token, som den sedan presenterar för servern för att bevisa sin kunskap om en delad nyckel. Tjänsten autentiseras inte till klienten, men tjänsten för säkerhetstoken krypterar den delade nyckeln som en del av den utfärdade token så att endast tjänsten kan dekryptera nyckeln. Säkerhetsbindningselementet returneras SymmetricSecurityBindingElement av CreateIssuedTokenBindingElement metoden. Du kan också ange authenticationMode
attributet till IssuedToken
.
IssuedTokenForCertificate
Med det här autentiseringsläget autentiserar inte klienten till tjänsten som sådan. I stället autentiserar klienten till en säkerhetstokentjänst och tar emot en SAML-token, som den sedan presenterar för servern för att bevisa sin kunskap om en delad nyckel. Den utfärdade token visas på SOAP-lagret som antingen en stödjande token eller en ägartoken. en token som signerar meddelandesignaturen. Tjänsten autentiserar till klienten med hjälp av ett X.509-certifikat. Säkerhetsbindningselementet returneras SymmetricSecurityBindingElement av CreateIssuedTokenForCertificateBindingElement metoden. Du kan också ange authenticationMode
attributet till IssuedTokenForCertificate
.
IssuedTokenForSslNegotiated
Med det här autentiseringsläget autentiserar inte klienten till tjänsten som sådan. I stället autentiserar klienten till en säkerhetstokentjänst och tar emot en SAML-token, som den sedan presenterar för servern för att bevisa sin kunskap om en delad nyckel. Den utfärdade token visas på SOAP-lagret som antingen en stödjande token eller en ägartoken. en token som signerar meddelandesignaturen. Tjänsten autentiseras med ett X.509-certifikat. Säkerhetsbindningselementet returneras SymmetricSecurityBindingElement av CreateIssuedTokenForSslBindingElement metoden. Du kan också ange authenticationMode
attributet till IssuedTokenForSslNegotiated
.
IssuedTokenOverTransport
Med det här autentiseringsläget autentiserar inte klienten till tjänsten som sådan. I stället autentiserar klienten till en säkerhetstokentjänst och tar emot en SAML-token, som den sedan presenterar för servern för att bevisa sin kunskap om en delad nyckel. Den utfärdade token visas på SOAP-lagret som antingen en stödjande token eller en ägartoken. en token som signerar meddelandesignaturen. Tjänsten autentiseras med ett X.509-certifikat på transportlagret. Säkerhetsbindningselementet returneras TransportSecurityBindingElement
av CreateIssuedTokenOverTransportBindingElement metoden. Du kan också ange authenticationMode
attributet till IssuedTokenOverTransport
.
Kerberos
Med det här autentiseringsläget autentiserar klienten till tjänsten med hjälp av en Kerberos-biljett. Samma biljett ger även serverautentisering. Säkerhetsbindningselementet returneras SymmetricSecurityBindingElement
av CreateKerberosBindingElement metoden. Du kan också ange authenticationMode
attributet till Kerberos
.
Kommentar
För att kunna använda det här autentiseringsläget måste tjänstkontot associeras med ett tjänsthuvudnamn (SPN). Det gör du genom att köra tjänsten under NÄTVERKSTJÄNSTkontot eller DET LOKALA SYSTEM-kontot. Du kan också använda verktyget SetSpn.exe för att skapa ett SPN för tjänstkontot. I båda fallen måste klienten använda rätt SPN i elementet <servicePrincipalName> eller med hjälp EndpointAddress av konstruktorn. Mer information finns i Tjänstidentitet och autentisering.
Kommentar
När autentiseringsläget Kerberos
används Anonymous stöds inte personifieringsnivåerna och Delegation .
KerberosOverTransport
Med det här autentiseringsläget autentiserar klienten till tjänsten med hjälp av en Kerberos-biljett. Kerberos-token visas på SOAP-lagret som en stödjande token. en token som signerar meddelandesignaturen. Tjänsten autentiseras med ett X.509-certifikat på transportlagret. Säkerhetsbindningselementet returneras TransportSecurityBindingElement
av CreateKerberosOverTransportBindingElement metoden. Du kan också ange authenticationMode
attributet till KerberosOverTransport
.
Kommentar
För att kunna använda det här autentiseringsläget måste tjänstkontot associeras med ett SPN. Det gör du genom att köra tjänsten under NÄTVERKSTJÄNSTkontot eller DET LOKALA SYSTEM-kontot. Du kan också använda verktyget SetSpn.exe för att skapa ett SPN för tjänstkontot. I båda fallen måste klienten använda rätt SPN i elementet <servicePrincipalName> eller med hjälp EndpointAddress av konstruktorn. Mer information finns i Tjänstidentitet och autentisering.
MutualCertificate
Med det här autentiseringsläget autentiserar klienten med hjälp av ett X.509-certifikat som visas på SOAP-lagret som en stödtoken. en token som signerar meddelandesignaturen. Tjänsten autentiseras också med ett X.509-certifikat. Säkerhetsbindningselementet returneras SymmetricSecurityBindingElement
av CreateMutualCertificateBindingElement metoden. Du kan också ange authenticationMode
attributet till MutualCertificate
.
MutualCertificateDuplex
Med det här autentiseringsläget autentiserar klienten med hjälp av ett X.509-certifikat som visas på SOAP-lagret som en stödtoken. en token som signerar meddelandesignaturen. Tjänsten autentiseras också med ett X.509-certifikat. Bindningen returneras AsymmetricSecurityBindingElement
av CreateMutualCertificateDuplexBindingElement metoden. Du kan också ange authenticationMode
attributet till MutualCertificateDuplex
.
MutualSslNegotiated
Med det här autentiseringsläget autentiserar klienten och tjänsten med X.509-certifikat. Säkerhetsbindningselementet returneras SymmetricSecurityBindingElement
av CreateSslNegotiationBindingElement metoden när ett värde true
för skickas för den första parametern. Du kan också ange authenticationMode
attributet till MutualSslNegotiated
.
SecureConversation
Säkerhetsbindningselementet returneras SymmetricSecurityBindingElement
av CreateSecureConversationBindingElement metoden. Den här metoden tar en SecurityBindingElement som en parameter, som används under initieringen för att upprätta den säkra sessionen. Du kan också ange authenticationMode
attributet till SecureConversation
.
Om ingen bootstrap-bindning har angetts används autentiseringsläget SspiNegotiated
för bootstrap.
SspiNegotiation
Med det här autentiseringsläget används ett förhandlingsprotokoll för att utföra klient- och serverautentisering. Kerberos används om möjligt. annars används NT LanMan (NTLM). Säkerhetsbindningselementet returneras SymmetricSecurityBindingElement
av CreateSspiNegotiationBindingElement metoden. Du kan också ange authenticationMode
attributet till SspiNegotiated
.
SspiNegotiatedOverTransport
Med det här autentiseringsläget används ett förhandlingsprotokoll för att utföra klient- och serverautentisering. Kerberos-protokollet används om möjligt. annars används NTLM. Den resulterande token visas i SOAP-lagret som en stödjande token. en token som signerar meddelandesignaturen. Tjänsten autentiseras dessutom på transportlagret av ett X.509-certifikat. Säkerhetsbindningselementet returneras TransportSecurityBindingElement
av CreateSspiNegotiationOverTransportBindingElement metoden. Du kan också ange authenticationMode
attributet till SspiNegotiatedOverTransport
.
UserNameForCertificate
Med det här autentiseringsläget autentiserar klienten till tjänsten med hjälp av en användarnamnstoken som visas på SOAP-lagret som en signerad stödtoken. en token som är signerad av meddelandesignaturen. Tjänsten autentiserar till klienten med hjälp av ett X.509-certifikat. Säkerhetsbindningselementet returneras SymmetricSecurityBindingElement
av CreateUserNameForCertificateBindingElement metoden. Du kan också ange authenticationMode
attributet till UserNameForCertificate
.
För autentiseringsläget UserNameForCertificate
måste både klienten och tjänsten använda WS-Security 1.1.
UserNameForSslNegotiated
Med det här autentiseringsläget autentiseras klienten med hjälp av en användarnamnstoken som visas på SOAP-lagret som en signerad stödtoken. en token som är signerad av meddelandesignaturen. Tjänsten autentiseras med ett X.509-certifikat. Säkerhetsbindningselementet returneras SymmetricSecurityBindingElement
av CreateUserNameForSslBindingElement metoden. Du kan också ange authenticationMode
attributet till UserNameForSslNegotiated
.
UserNameOverTransport
Med det här autentiseringsläget autentiserar klienten med hjälp av en användarnamnstoken som visas på SOAP-lagret som en signerad stödtoken. en token som är signerad av meddelandesignaturen. Tjänsten autentiseras med ett X.509-certifikat på transportlagret. Säkerhetsbindningselementet returneras TransportSecurityBindingElement
av CreateUserNameOverTransportBindingElement metoden. Du kan också ange authenticationMode
attributet till UserNameOverTransport
.