Freigeben über


<authentication>of-Element <clientCertificate>

Gibt das 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 und übergeordnete Elemente beschrieben.

Attribute

Merkmal Description
customCertificateValidatorType Optionale Zeichenfolge. Ein Typ und eine Assembly zum Überprüfen eines benutzerdefinierten Typs. Dieses Attribut muss beim certificateValidationMode Festlegen auf Custom.
Certificatevalidationmode Optionale Aufzählung. Gibt einen der Modi an, die zum Überprüfen von Anmeldeinformationen verwendet werden. Dieses Attribut ist vom X509CertificateValidationMode Typ. Bei Festlegung auf X509CertificateValidationMode.Custom, muss auch ein customCertificateValidator Wert angegeben werden. Der Standardwert lautet X509CertificateValidationMode.ChainTrust.
includeWindowsGroups Optionaler Boolean-Wert. Gibt an, ob Windows-Gruppen im Sicherheitskontext enthalten sind. Das Festlegen dieses Attributs auf true eine Leistungsauswirkung hat, da es zu einer vollständigen Gruppenerweiterung führt. Legen Sie dieses Attribut fest, false wenn Sie die Liste der Gruppen, zu der ein Benutzer gehört, nicht einrichten müssen.
mapClientCertificateToWindowsAccount Boolesch. Gibt an, ob der Client einer Windows-Identität mithilfe des Zertifikats zugeordnet werden kann. Active Directory muss dazu aktiviert sein.
revocationMode Optionale Aufzählung. Einer der Modi, die zum Überprüfen auf eine widerrufene Zertifikatlisten (RCL) verwendet werden. Der Standardwert lautet Online. Dieser Wert wird ignoriert, wenn die HTTP-Transportsicherheit verwendet wird.
trustedStoreLocation Optionale Aufzählung. Einer der beiden Systemspeicherorte: LocalMachine oder CurrentUser. Dieser Wert wird verwendet, wenn ein Dienstzertifikat an den Client ausgehandelt wird. Die Überprüfung wird für den Speicher " Vertrauenswürdige Personen " am angegebenen Speicherort ausgeführt. Der Standardwert lautet CurrentUser.

customCertificateValidatorType-Attribut

Wert Description
String Gibt den Typnamen und die Assembly sowie andere Daten an, die zum Suchen des Typs verwendet werden.

certificateValidationMode-Attribut

Wert Description
Aufzählung Einer der folgenden Werte: None, PeerTrust, ChainTrust, PeerOrChainTrust, Custom.

Weitere Informationen finden Sie unter Arbeiten mit Zertifikaten.

revocationMode-Attribut

Wert Description
Aufzählung Einer der folgenden Werte: NoCheck, Online, Offline. Weitere Informationen finden Sie unter Arbeiten mit Zertifikaten.

trustedStoreLocation-Attribut

Wert Description
Aufzählung Einer der folgenden Werte: LocalMachine oder CurrentUser. Der Standardwert lautet CurrentUser. Wenn die Clientanwendung unter einem Systemkonto ausgeführt wird, befindet sich das Zertifikat in der Regel unter LocalMachine. Wenn die Clientanwendung unter einem Benutzerkonto ausgeführt wird, befindet sich das Zertifikat in der Regel in CurrentUser.

Untergeordnete Elemente

Keiner.

Übergeordnete Elemente

Element Description
<Client-Zertifikat> Definiert ein X.509-Zertifikat, das zum Authentifizieren eines Clients für einen Dienst verwendet wird.

Bemerkungen

Das <authentication> Element entspricht der X509ClientCertificateAuthentication Klasse. Sie können anpassen, wie Clients authentifiziert werden. 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.

Example

Der folgende Code gibt ein X.509-Zertifikat und einen benutzerdefinierten Überprüfungstyp 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