<authentication> des <clientCertificate>-Elements

Gibt die Authentifizierungsverhalten für Clientzertifikate an, die von einem Dienst verwendet werden.

<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceCredentials>
            <clientCertificate>
              <authentication>

Syntax

<authentication customCertificateValidatorType="namespace.typeName, [,AssemblyName] [,Version=version number] [,Culture=culture] [,PublicKeyToken=token]"
                certificateValidationMode="ChainTrust/None/PeerTrust/PeerOrChainTrust/Custom"
                includeWindowsGroups="Boolean"
                mapClientCertificateToWindowsAccount="Boolean"
                revocationMode="NoCheck/Online/Offline"
                trustedStoreLocation="CurrentUser/LocalMachine" />

Attribute und Elemente

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

Attribute

attribute BESCHREIBUNG
customCertificateValidatorType Optionale Zeichenfolge. Ein Typ und eine Assembly, die zum Überprüfen eines benutzerdefinierten Typs verwendet werden. Das Attribut muss festgelegt werden, wenn für certificateValidationMode der Wert Custom festgelegt wurde.
certificateValidationMode Optionale Enumeration. Gibt einen der für die Prüfung von Anmeldeinformationen verwendeten Modi an. Dieses Attribut ist vom Typ X509CertificateValidationMode. Wenn dies auf X509CertificateValidationMode.Custom festgelegt wurde, muss auch ein customCertificateValidator bereitgestellt werden. Der Standardwert ist X509CertificateValidationMode.ChainTrust.
includeWindowsGroups Optionaler boolescher Wert. Gibt an, ob Windows-Gruppen im Sicherheitskontext enthalten sind. Wird dieses Attribut auf true festgelegt, hat dies Auswirkungen auf die Leistung, da dabei eine vollständige Gruppenerweiterung durchgeführt wird. Legen Sie dieses Attribut auf false fest, wenn Sie die Liste der Gruppen, zu denen ein Benutzer gehört, nicht angeben müssen.
mapClientCertificateToWindowsAccount Boolesch. Gibt an, ob der Client mithilfe des Zertifikats einer Windows-Identität zugeordnet werden kann. Active Directory muss dafür aktiviert sein.
revocationMode Optionale Enumeration. Einer der Modi zum Prüfen auf eine Liste gesperrter Zertifikate. Der Standardwert ist Online. Dieser Wert wird ignoriert, wenn HTTP-Transportsicherheit verwendet wird.
trustedStoreLocation Optionale Enumeration. Einer der beiden 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.

customCertificateValidatorType-Attribut

Wert BESCHREIBUNG
String Gibt den vollständigen Typnamen und die Assembly sowie weitere Daten zum Suchen des Typs an.

certificateValidationMode-Attribut

Wert BESCHREIBUNG
Enumeration Einer der folgenden Werte: None, PeerTrust, ChainTrust, PeerOrChainTrust, Custom.

Weitere Informationen finden Sie unter Arbeiten mit Zertifikaten.

revocationMode-Attribut

Wert BESCHREIBUNG
Enumeration Einer der folgenden Werte: NoCheck, Online, Offline. Weitere Informationen finden Sie unter Arbeiten mit Zertifikaten.

trustedStoreLocation-Attribut

Wert BESCHREIBUNG
Enumeration Einer der folgenden Werte: LocalMachine oder CurrentUser. Der Standardwert ist CurrentUser. Wenn die Clientanwendung über ein Systemkonto ausgeführt wird, befindet sich das Zertifikat in der Regel in LocalMachine. Wenn die Clientanwendung über ein Benutzerkonto ausgeführt wird, befindet sich das Zertifikat in der Regel in CurrentUser.

Untergeordnete Elemente

Keine

Übergeordnete Elemente

Element BESCHREIBUNG
<clientCertificate> Definiert ein X.509-Zertifikat, das zum Authentifizieren eines Clients bei einem Dienst verwendet wird.

Bemerkungen

Das <authentication>-Element entspricht der X509ClientCertificateAuthentication-Klasse. Mit dem Element können Sie die Art der Clientauthentifizierung anpassen. Sie können als Wert für das certificateValidationMode-Attribut None, ChainTrust, PeerOrChainTrust, PeerTrust oder Custom festlegen. Standardmäßig wird die Stufe ChainTrust verwendet, die angibt, dass jedes Zertifikat in einer Zertifizierungshierarchie zu finden sein muss, die in eine Stammzertifizierungsstelle 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 setzen. Wenn Sie den Wert Custom verwenden, müssen Sie für das customCertificateValidatorType-Attribut zudem ein Assembly und einen Typ, mit dem das Zertifikat überprüft wird, festlegen. Wenn Sie Ihre eigene Überprüfung erstellen möchten, müssen Sie die abstrakte X509CertificateValidator-Klasse vererben. Weitere Informationen finden Sie unter Gewusst wie: Erstellen eines Diensts, der ein benutzerdefiniertes Zertifikat-Validierungssteuerelement verwendet.

Beispiel

Der folgende Code gibt ein X.509-Zertifikat und einen benutzerdefinierten Validierungstyp im <authentication>-Element an.

<serviceBehaviors>
  <behavior name="myServiceBehavior">
    <clientCertificate>
      <certificate findValue="www.cohowinery.com"
                   storeLocation="CurrentUser"
                   storeName="TrustedPeople"
                   x509FindType="FindByIssuerName" />
      <authentication customCertificateValidatorType="MyTypes.Coho"
                      certificateValidationMode="Custom"
                      revocationMode="Offline"
                      includeWindowsGroups="false"
                      mapClientCertificateToWindowsAccount="true" />
    </clientCertificate>
  </behavior>
</serviceBehaviors>

Siehe auch