<authentication> des <serviceCertificate>-Elements

Gibt die vom Clientproxy zum Authentifizieren von Dienstzertifikaten verwendeten Einstellungen an, die mittels SSL/TLS-Verhandlung abgerufen werden.

Schemahierarchie

<<system.serviceModel>>
  <behaviors>
    <endpointBehaviors>
      <behavior> von <endpointBehaviors>
        <clientCredentials>
          <serviceCertificate> von <serviceCredentials>
            <authentication> des <serviceCertificate>-Elements

Syntax

<authentication customCertificateValidatorType="String" certificateValidationMode="None/PeerTrust/ChainTrust/PeerOrChainTrust/Custom"
revocationMode="NoCheck/Online/Offline" 
trustedStoreLocation="LocalMachine/CurrentUser" />

Attribute und Elemente

In den folgenden Abschnitten werden Attribute, untergeordnete Elemente und übergeordnete Elemente beschrieben.

Attribute

Attribut Beschreibung

customCertificateValidatorType

Zeichenfolge. Ein Typ und eine Assembly, die zum Überprüfen eines benutzerdefinierten Typs verwendet werden.

certificateValidationMode

Gibt einen der drei für die Überprüfung von Anmeldeinformationen verwendeten Modi an. Ist dies auf Custom festgelegt, muss außerdem ein customCertificateValidator zur Verfügung gestellt werden. Der Standardwert ist ChainTrust.

revocationMode

Einer der Modi zum Prüfen auf eine Liste gesperrter Zertifikate. Die Standardeinstellung ist Online.

trustedStoreLocation

Einer der zwei Systemspeicherorte: LocalMachine oder CurrentUser. Dieser Wert wird verwendet, wenn ein Dienstzertifikat mit dem Client ausgehandelt wird. Die Validierung wird anhand des Vertrauenswürdige Personen-Speichers am angegebenen Speicherort durchgeführt. Der Standardwert ist CurrentUser.

Untergeordnete Elemente

Keine.

Übergeordnete Elemente

Element Beschreibung

<serviceCertificate> von <clientCredentials>-Element

Gibt ein Zertifikat an, das Sie zum Authentifizieren eines Diensts beim Client verwenden können.

Hinweise

Mit dem certificateValidationMode-Attribut dieses Konfigurationselements wird die Ebene der Vertrauenswürdigkeit angegeben, mit der Zertifikate authentifiziert werden. Standardmäßig wird die Ebene ChainTrust verwendet, die angibt, dass jedes Zertifikat in einer Zertifizierungshierarchie zu finden sein muss, die in eine vertrauenswürdige Zertifizierungsstelle am Anfang der Kette mündet. Dies ist der sicherste Modus. Sie können auch den Wert PeerOrChainTrust verwenden, der vorgibt, dass neben den Zertifikaten in einer Vertrauenskette auch selbst ausgestellte Zertifikate (Peervertrauen) akzeptiert werden. Sie können diesen Wert beim Entwickeln und Debuggen von Clients und Diensten verwenden, da selbst ausgestellte Zertifikate nicht von einer vertrauenswürdigen Zertifizierungsstelle bezogen werden müssen. Verwenden Sie beim Bereitstellen eines Clients jedoch den Wert ChainTrust. Sie können den Wert auch auf Custom oder None festlegen. Wenn Sie den Custom-Wert verwenden möchten, müssen Sie auch das customCertificateValidator-Attribut auf eine Assembly und einen Typ festlegen, die zur Validierung des Zertifikats verwendet werden. Wenn Sie eine eigene benutzerdefinierte Validierung erstellen möchten, müssen Sie von der abstrakten X509CertificateValidator-Klasse erben. Weitere Informationen finden Sie unter How To: Create a Service Employing a Custom Certificate Validator.

Das revocationMode-Attribut gibt an, wie Zertifikate auf eine Sperre hin überprüft werden. Der Standardwert ist online, wodurch angegeben wird, dass Zertifikate automatisch auf eine Sperre hin überprüft werden. Weitere Informationen finden Sie unter Working with Certificates.

Beispiel

In folgendem Beispiel werden zwei Aufgaben ausgeführt. Das folgende Beispiel gibt zunächst ein Dienstzertifikat für den Client an, das bei der Kommunikation mit Endpunkten, deren Domänenname www.contoso.com ist, über das HTTP-Protokoll verwendet wird. Danach gibt es den Sperrmodus und den Speicherort für die Authentifizierung an.

<serviceCertificate>
  <defaultCertificate findValue="www.contoso.com" 
                      storeLocation="LocalMachine"
                      storeName="TrustedPeople" 
                      x509FindType="FindByIssuerDistinguishedName" />
  <scopedCertificates>
     <add targetUri="https://www.contoso.com" 
          findValue="www.contoso.com" storeLocation="LocalMachine"
                  storeName="Root" x509FindType="FindByIssuerName" />
  </scopedCertificates>
  <authentication revocationMode="Online" 
   trustedStoreLocation="LocalMachine" />
</serviceCertificate>

Siehe auch

Verweis

<authentication> des <clientCertificate>-Elements
X509RecipientCertificateClientElement
X509CertificateRecipientClientCredential
Authentication
X509ServiceCertificateAuthentication

Weitere Ressourcen

Security Behaviors in WCF
Working with Certificates
How To: Create a Service Employing a Custom Certificate Validator
Securing Clients
Securing Services and Clients