Dela via


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

  1. Lägg till en< customBinding> i bindningselementet>.<

  2. Som ett underordnat element lägger du till ett bindningselement> i elementet<customBinding>.<

  3. Lägg till ett <security> element i elementet <binding> .

  4. authenticationMode Ange attributet till något av de värden som beskrivs nedan. Följande kod anger till exempel läget till AnonymousForCertificate.

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

Så här ställer du in läget programmatiskt

  1. Fastställ returtypen, som kan vara något av följande: SymmetricSecurityBindingElement, TransportSecurityBindingElement, AsymmetricSecurityBindingElement, eller SecurityBindingElement.

  2. 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()
    
  3. 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.

Se även