<authentication> des <clientCertificate>-Elements
Gibt die Authentifizierungsverhalten von Clientzertifikaten an, die von einem Dienst verwendet werden.
Schemahierarchie
<<system.serviceModel>>
<behaviors>
<serviceBehaviors>
<behavior> von <serviceBehaviors>
<serviceCredentials>
<clientCertificate> von <serviceCredentials>
<authentication> des <clientCertificate>-Elements
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
Attribut | Beschreibung |
---|---|
customCertificateValidatorType |
Optionale Zeichenfolge. Ein Typ und eine Assembly, die zum Prüfen eines benutzerdefinierten Typs verwendet werden. Das Attribut muss festgelegt werden, wenn certificateValidationMode auf Custom festgelegt ist. |
certificateValidationMode |
Optionale Enumeration. Gibt einen der für die Prüfung von Anmeldeinformationen verwendeten Modi an. Dieses Attribut ist vom Typ System.Servicemodel.Security.X509CertificateValidationMode. Falls auf Custom festgelegt, muss auch customCertificateValidator angegeben sein. Der Standardwert ist 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. |
mapClientCertificateToWindowsAcccount |
Boolescher Wert. Gibt an, ob der Client mithilfe des Zertifikats einer Windows-Identität zugeordnet werden kann. Active Directory muss dafür aktiviert sein. Weitere Informationen zur Verwendung von Active Directory finden Sie unter http://technet2.microsoft.com/WindowsServer/en/Library/0602148e-1a8f-4917-bb01-6fd342aba7161033.mspx (möglicherweise in englischer Sprache). |
revocationMode |
Optionale Enumeration. Einer der Modi zum Prüfen auf eine Liste gesperrter Zertifikate. Die Standardeinstellung ist Online. |
trustedStoreLocation |
Optionale Enumeration. Einer der zwei Systemspeicherorte: LocalMachine oder CurrentUser. Dieser Wert wird verwendet, wenn ein Dienstzertifikat mit dem Client ausgehandelt wird. Die Prüfung wird anhand des Vertrauenswürdige Personen-Speichers am angegebenen Speicherort durchgeführt. Der Standardwert ist CurrentUser. |
Untergeordnete Elemente
Keine.
Übergeordnete Elemente
Element | Beschreibung |
---|---|
Definiert ein X.509-Zertifikat, das zum Authentifizieren eines Clients bei einem Dienst verwendet wird. |
Hinweise
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 How To: Create a Service Employing a Custom Certificate Validator.
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
Verweis
X509ClientCertificateAuthentication
X509CertificateValidationMode
Authentication
Authentication
X509ClientCertificateAuthenticationElement
Weitere Ressourcen
Security Behaviors in WCF
How To: Create a Service Employing a Custom Certificate Validator
Working with Certificates