Delen via


SecurityBindingElement-verificatiemodi

Windows Communication Foundation (WCF) biedt verschillende modi waarmee clients en services met elkaar worden geverifieerd. U kunt beveiligingsbindingselementen voor deze verificatiemodi maken met behulp van statische methoden in de SecurityBindingElement klasse of via configuratie. In dit onderwerp worden de 18 verificatiemodi kort beschreven.

Zie Procedure voor een voorbeeld van het gebruik van het element voor een van de verificatiemodi : Een SecurityBindingElement maken voor een opgegeven verificatiemodus.

Eenvoudige configuratieprogrammering

In de volgende procedure wordt beschreven hoe u de verificatiemodus instelt in een configuratiebestand.

De verificatiemodus instellen in de configuratie

  1. Voeg een customBinding> toe aan het <bindingselement>.<

  2. Voeg als onderliggend element een <bindingselement> toe aan het <customBinding> element.

  3. Voeg een <security> element toe aan het <binding> element.

  4. Stel het authenticationMode kenmerk in op een van de onderstaande waarden. Met de volgende code wordt de modus bijvoorbeeld ingesteld op AnonymousForCertificate.

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

De modus programmatisch instellen

  1. Bepaal het retourtype, dat een van de volgende opties kan zijn: SymmetricSecurityBindingElement, TransportSecurityBindingElement, AsymmetricSecurityBindingElementof SecurityBindingElement.

  2. Roep de juiste statische methode van de SecurityBindingElement klasse aan. Met de volgende code wordt bijvoorbeeld de methode aangeroepen CreateAnonymousForCertificateBindingElement .

    SymmetricSecurityBindingElement b =
        SecurityBindingElement.
        CreateAnonymousForCertificateBindingElement();
    
    Dim b As SymmetricSecurityBindingElement = _
    SecurityBindingElement.CreateAnonymousForCertificateBindingElement()
    
  3. Gebruik het bindingselement om de aangepaste binding te maken. Zie Aangepaste bindingen voor meer informatie.

Beschrijvingen van modus

AnonymousForCertificate

Met deze verificatiemodus is de client anoniem en wordt de service geverifieerd met behulp van een X.509-certificaat. Het beveiligingsbindingselement wordt SymmetricSecurityBindingElement geretourneerd door de CreateAnonymousForCertificateBindingElement methode. U kunt ook het authenticationMode kenmerk van het <security> element instellen op AnonymousForCertificate.

AnonymousForSslNegotiated

Met deze verificatiemodus is de client anoniem en wordt de service geverifieerd met behulp van een X.509-certificaat dat tijdens runtime wordt onderhandeld. Het beveiligingsbindingselement wordt SymmetricSecurityBindingElement door de CreateSslNegotiationBindingElement methode geretourneerd wanneer een waarde voor false de eerste parameter wordt doorgegeven. U kunt het authenticationMode kenmerk ook instellen op AnonymousForSslNegotiated.

CertificateOverTransport

Met deze verificatiemodus verifieert de client met behulp van een X.509-certificaat dat op de SOAP-laag wordt weergegeven als een endorsing ondersteunend token; Dat wil gezegd: een token waarmee de handtekening van het bericht wordt ondertekend. De service wordt geverifieerd met behulp van een X.509-certificaat op de transportlaag. Het beveiligingsbindingselement wordt TransportSecurityBindingElement geretourneerd door de CreateCertificateOverTransportBindingElement methode. U kunt het authenticationMode kenmerk ook instellen op CertificateOverTransport.

IssuedToken

Met deze verificatiemodus wordt de client niet geverifieerd bij de service, als zodanig; In plaats daarvan verifieert de client bij een beveiligingstokenservice en ontvangt een SAML-token, dat vervolgens aan de server wordt gepresenteerd om de kennis van een gedeelde sleutel te bewijzen. De service wordt niet geverifieerd bij de client, maar de beveiligingstokenservice versleutelt de gedeelde sleutel als onderdeel van het uitgegeven token, zodat alleen de service de sleutel kan ontsleutelen. Het beveiligingsbindingselement wordt SymmetricSecurityBindingElement geretourneerd door de CreateIssuedTokenBindingElement methode. U kunt het authenticationMode kenmerk ook instellen op IssuedToken.

IssuedTokenForCertificate

Met deze verificatiemodus wordt de client niet geverifieerd bij de service, als zodanig; In plaats daarvan verifieert de client bij een beveiligingstokenservice en ontvangt een SAML-token, dat vervolgens aan de server wordt gepresenteerd om de kennis van een gedeelde sleutel te bewijzen. Het uitgegeven token wordt weergegeven op de SOAP-laag als een endorsing ondersteunend token of een bearer-token; Dat wil gezegd: een token waarmee de handtekening van het bericht wordt ondertekend. De service wordt geverifieerd bij de client met behulp van een X.509-certificaat. Het beveiligingsbindingselement wordt SymmetricSecurityBindingElement geretourneerd door de CreateIssuedTokenForCertificateBindingElement methode. U kunt het authenticationMode kenmerk ook instellen op IssuedTokenForCertificate.

IssuedTokenForSslNegotiated

Met deze verificatiemodus wordt de client niet geverifieerd bij de service, als zodanig; In plaats daarvan verifieert de client bij een beveiligingstokenservice en ontvangt een SAML-token, dat vervolgens aan de server wordt gepresenteerd om de kennis van een gedeelde sleutel te bewijzen. Het uitgegeven token wordt weergegeven op de SOAP-laag als een endorsing ondersteunend token of een bearer-token; Dat wil gezegd: een token waarmee de handtekening van het bericht wordt ondertekend. De service wordt geverifieerd met behulp van een X.509-certificaat. Het beveiligingsbindingselement wordt SymmetricSecurityBindingElement geretourneerd door de CreateIssuedTokenForSslBindingElement methode. U kunt het authenticationMode kenmerk ook instellen op IssuedTokenForSslNegotiated.

IssuedTokenOverTransport

Met deze verificatiemodus wordt de client niet geverifieerd bij de service, als zodanig; In plaats daarvan verifieert de client bij een beveiligingstokenservice en ontvangt een SAML-token, dat vervolgens aan de server wordt gepresenteerd om de kennis van een gedeelde sleutel te bewijzen. Het uitgegeven token wordt weergegeven op de SOAP-laag als een endorsing ondersteunend token of een bearer-token; Dat wil gezegd: een token waarmee de handtekening van het bericht wordt ondertekend. De service wordt geverifieerd met behulp van een X.509-certificaat op de transportlaag. Het beveiligingsbindingselement wordt TransportSecurityBindingElement geretourneerd door de CreateIssuedTokenOverTransportBindingElement methode. U kunt het authenticationMode kenmerk ook instellen op IssuedTokenOverTransport.

Kerberos

Met deze verificatiemodus verifieert de client zich bij de service met behulp van een Kerberos-ticket. Hetzelfde ticket biedt ook serververificatie. Het beveiligingsbindingselement wordt SymmetricSecurityBindingElement geretourneerd door de CreateKerberosBindingElement methode. U kunt het authenticationMode kenmerk ook instellen op Kerberos.

Notitie

Als u deze verificatiemodus wilt gebruiken, moet het serviceaccount zijn gekoppeld aan een SPN (Service Principal Name). Hiervoor voert u de service uit onder het NETWORK SERVICE-account of het LOKALE SYSTEEM-account. U kunt ook het hulpprogramma SetSpn.exe gebruiken om een SPN voor het serviceaccount te maken. In beide gevallen moet de client de juiste SPN gebruiken in het <element servicePrincipalName> of met behulp van de EndpointAddress constructor. Zie Service-identiteit en -verificatie voor meer informatie.

Notitie

Wanneer de Kerberos verificatiemodus wordt gebruikt, worden de Anonymous niveaus en Delegation imitatieniveaus niet ondersteund.

KerberosOverTransport

Met deze verificatiemodus verifieert de client zich bij de service met behulp van een Kerberos-ticket. Het Kerberos-token wordt in de SOAP-laag weergegeven als een endorsing ondersteunend token; Dat wil gezegd: een token waarmee de handtekening van het bericht wordt ondertekend. De service wordt geverifieerd met behulp van een X.509-certificaat op de transportlaag. Het beveiligingsbindingselement wordt TransportSecurityBindingElement geretourneerd door de CreateKerberosOverTransportBindingElement methode. U kunt het authenticationMode kenmerk ook instellen op KerberosOverTransport.

Notitie

Als u deze verificatiemodus wilt gebruiken, moet het serviceaccount zijn gekoppeld aan een SPN. Hiervoor voert u de service uit onder het NETWORK SERVICE-account of het LOKALE SYSTEEM-account. U kunt ook het hulpprogramma SetSpn.exe gebruiken om een SPN voor het serviceaccount te maken. In beide gevallen moet de client de juiste SPN gebruiken in het <element servicePrincipalName> of met behulp van de EndpointAddress constructor. Zie Service-identiteit en -verificatie voor meer informatie.

MutualCertificate

Met deze verificatiemodus verifieert de client met behulp van een X.509-certificaat dat op de SOAP-laag wordt weergegeven als een endorsing ondersteunend token; Dat wil gezegd: een token waarmee de handtekening van het bericht wordt ondertekend. De service wordt ook geverifieerd met behulp van een X.509-certificaat. Het beveiligingsbindingselement wordt SymmetricSecurityBindingElement geretourneerd door de CreateMutualCertificateBindingElement methode. U kunt het authenticationMode kenmerk ook instellen op MutualCertificate.

MutualCertificateDuplex

Met deze verificatiemodus verifieert de client met behulp van een X.509-certificaat dat op de SOAP-laag wordt weergegeven als een endorsing ondersteunend token; Dat wil gezegd: een token waarmee de handtekening van het bericht wordt ondertekend. De service wordt ook geverifieerd met behulp van een X.509-certificaat. De binding is een AsymmetricSecurityBindingElement geretourneerd door de CreateMutualCertificateDuplexBindingElement methode. U kunt het authenticationMode kenmerk ook instellen op MutualCertificateDuplex.

MutualSslNegotiated

Met deze verificatiemodus worden de client en de service geverifieerd met X.509-certificaten. Het beveiligingsbindingselement wordt SymmetricSecurityBindingElement door de CreateSslNegotiationBindingElement methode geretourneerd wanneer een waarde voor true de eerste parameter wordt doorgegeven. U kunt het authenticationMode kenmerk ook instellen op MutualSslNegotiated.

SecureConversation

Het beveiligingsbindingselement wordt SymmetricSecurityBindingElement geretourneerd door de CreateSecureConversationBindingElement methode. Deze methode gebruikt een SecurityBindingElement parameter die wordt gebruikt tijdens de initialisatie om de beveiligde sessie tot stand te brengen. U kunt het authenticationMode kenmerk ook instellen op SecureConversation.

Als er geen bootstrapbinding is opgegeven, wordt de SspiNegotiated verificatiemodus gebruikt voor bootstrap.

SspiNegotiation

Met deze verificatiemodus wordt een onderhandelingsprotocol gebruikt om client- en serververificatie uit te voeren. Kerberos wordt indien mogelijk gebruikt; anders wordt NT LanMan (NTLM) gebruikt. Het beveiligingsbindingselement wordt SymmetricSecurityBindingElement geretourneerd door de CreateSspiNegotiationBindingElement methode. U kunt het authenticationMode kenmerk ook instellen op SspiNegotiated.

SspiNegotiatedOverTransport

Met deze verificatiemodus wordt een onderhandelingsprotocol gebruikt om client- en serververificatie uit te voeren. Het Kerberos-protocol wordt indien mogelijk gebruikt; anders wordt NTLM gebruikt. Het resulterende token wordt weergegeven op de SOAP-laag als een endorsing ondersteunend token; Dat wil gezegd: een token waarmee de handtekening van het bericht wordt ondertekend. De service wordt ook geverifieerd op de transportlaag door een X.509-certificaat. Het beveiligingsbindingselement wordt TransportSecurityBindingElement geretourneerd door de CreateSspiNegotiationOverTransportBindingElement methode. U kunt het authenticationMode kenmerk ook instellen op SspiNegotiatedOverTransport.

UserNameForCertificate

Met deze verificatiemodus verifieert de client bij de service met behulp van een gebruikersnaamtoken dat op de SOAP-laag wordt weergegeven als een ondertekend ondersteunend token; Dat wil gezegd: een token dat is ondertekend door de berichthandtekening. De service wordt geverifieerd bij de client met behulp van een X.509-certificaat. Het beveiligingsbindingselement wordt SymmetricSecurityBindingElement geretourneerd door de CreateUserNameForCertificateBindingElement methode. U kunt het authenticationMode kenmerk ook instellen op UserNameForCertificate.

Voor de UserNameForCertificate verificatiemodus moeten zowel de client als de service WS-Security 1.1 gebruiken.

UserNameForSslNegotiated

Met deze verificatiemodus wordt de client geverifieerd met behulp van een gebruikersnaamtoken dat op de SOAP-laag wordt weergegeven als een ondertekend ondersteunend token; Dat wil gezegd: een token dat is ondertekend door de berichthandtekening. De service wordt geverifieerd met behulp van een X.509-certificaat. Het beveiligingsbindingselement wordt SymmetricSecurityBindingElement geretourneerd door de CreateUserNameForSslBindingElement methode. U kunt het authenticationMode kenmerk ook instellen op UserNameForSslNegotiated.

UserNameOverTransport

Met deze verificatiemodus verifieert de client met behulp van een gebruikersnaamtoken dat op de SOAP-laag wordt weergegeven als een ondertekend ondersteunend token; Dat wil gezegd: een token dat is ondertekend door de berichthandtekening. De service wordt geverifieerd met behulp van een X.509-certificaat op de transportlaag. Het beveiligingsbindingselement wordt TransportSecurityBindingElement geretourneerd door de CreateUserNameOverTransportBindingElement methode. U kunt het authenticationMode kenmerk ook instellen op UserNameOverTransport.

Zie ook