Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In Windows Communication Foundation (WCF) wird ein Verbunddienst mit folgenden Hauptschritten erstellt:
- Konfigurieren einer WSFederationHttpBinding oder einer ähnlichen benutzerdefinierten Bindung. Weitere Informationen zum Erstellen einer entsprechenden Bindung finden Sie unter Gewusst wie: Erstellen einer WSFederationHttpBinding.
- Konfigurieren von IssuedTokenServiceCredential, die kontrollieren, wie dem Dienst präsentierte ausgestellte Token authentifiziert werden.
Dieses Thema enthält Details über den zweiten Schritt. Weitere Informationen darüber, wie ein Verbunddienst funktioniert, finden Sie unter Verbund.
So legen Sie die Eigenschaften von IssuedTokenServiceCredential in Code fest
Verwenden Sie die IssuedTokenAuthentication-Eigenschaft der ServiceCredentials-Klasse, um einen Verweis an eine IssuedTokenServiceCredential-Instanz zurückzugeben. Der Zugriff auf die Eigenschaft erfolgt über die Credentials-Eigenschaft der ServiceHostBase-Klasse.
Legen Sie die AllowUntrustedRsaIssuers-Eigenschaft auf true fest, wenn selbst ausgestellte Token wie CardSpace-Karten authentifiziert werden sollen. Der Standardwert ist false.
Füllen Sie die von der KnownCertificates-Eigenschaft zurückgegebene Sammlung mit Instanzen der X509Certificate2-Klasse auf. Jede Instanz stellt einen Aussteller dar, von dem der Dienst Token authentifiziert.
Tipp
Im Gegensatz zur clientseitigen Sammlung, die von der ScopedCertificates-Eigenschaft zurückgegeben wird, handelt es sich bei der Sammlung bekannter Zertifikate nicht um eine schlüsselgebundene Sammlung. Der Dienst akzeptiert die Token, die die angegebenen Zertifikate unabhängig von der Adresse des Clients, der die Nachricht mit dem ausgestellten Token gesendet hat, ausstellen (mit gewissen Einschränkungen, die später in diesem Thema beschrieben werden).
Legen Sie die CertificateValidationMode-Eigenschaft auf einen der X509CertificateValidationMode-Enumerationswerte fest. Dies kann nur in Code erfolgen. Die Standardeinstellung ist ChainTrust.
Wenn die CertificateValidationMode-Eigenschaft auf Custom gesetzt ist, weisen Sie eine Instanz der benutzerdefinierten X509CertificateValidator-Klasse zur CustomCertificateValidator-Eigenschaft zu.
Wenn CertificateValidationMode auf ChainTrust oder PeerOrChainTrust eingestellt ist, legen Sie die RevocationMode-Eigenschaft auf einen entsprechenden Wert aus der X509RevocationMode-Enumeration fest. Beachten Sie, dass der Sperrmodus nicht im PeerTrust-Validierungsmodus oder im Custom-Validierungsmodus verwendet wird.
Weisen Sie, sofern erforderlich, eine Instanz einer benutzerdefinierten SamlSerializer-Klasse zur SamlSerializer-Eigenschaft zu. Ein benutzerdefiniertes SAML-Serialisierungsprogramm (Security Assertions Markup Language) wird benötigt, z. B. zum Analysieren von benutzerdefinierten SAML-Assertionen.
So legen Sie die Eigenschaften von IssuedTokenServiceCredential in der Konfiguration fest
Erstellen Sie ein <issuedTokenAuthentication>-Element als untergeordnetes Element eines <serviceCredentials>-Elements.
Legen Sie das allowUntrustedRsaIssuers-Attribut des <issuedTokenAuthentication>-Elements auf true fest, wenn die Authentifizierung ein selbst ausgestelltes Token ist, wie z. B. eine CardSpace-Karte.
Erstellen Sie ein <knownCertificates>-Element als untergeordnetes Element des <issuedTokenAuthentication>-Elements.
Erstellen Sie null oder mehr <add>-Elemente als untergeordnete Elemente des <knownCertificates>-Elements, und geben Sie mithilfe der storeLocation, dem storeName-Attribut, dem x509FindType-Attribut und dem findValue-Attribut an, wie das Zertifikat zu finden ist.
Legen Sie ggf. das samlSerializer-Attribut des <issuedTokenAuthentication>-Elements auf den Typnamen der benutzerdefinierten SamlSerializer-Klasse fest.
Beispiel
Im folgenden Beispiel werden die Eigenschaften von IssuedTokenServiceCredential in Code festgelegt.
Damit ein Verbunddienst einen Client authentifizieren kann, muss Folgendes für das ausgestellte Token zutreffen:
- Wenn die digitale Signatur des ausgestellten Tokens einen RSA-Sicherheitsschlüsselbezeichner verwendet, muss die AllowUntrustedRsaIssuers-Eigenschaft true lauten.
- Wenn die Signatur des ausgestellten Tokens eine Seriennummer eines X.509-Ausstellers, einen Subjektschlüsselbezeichner des X.509-Zertifikats oder einen Fingerabdruck-Sicherheitsbezeichner des X.509-Zertifikats verwendet, muss das ausgestellte Token von einem Zertifikat in der Sammlung signiert sein, die von der KnownCertificates-Eigenschaft der IssuedTokenServiceCredential-Klasse zurückgegeben wurde.
- Wenn das ausgestellte Token mit einem X.509-Zertifikat signiert ist, muss das Zertifikat anhand der semantischen Informationen überprüft werden, die vom Wert der CertificateValidationMode-Eigenschaft angegeben werden, unabhängig davon, ob das Zertifikat als X509RawDataKeyIdentifierClause an die vertrauende Seite gesendet wurde oder von der KnownCertificates-Eigenschaft stammt. Weitere Informationen zur Überprüfung des X.509-Zertifikats finden Sie unter Verwenden von Zertifikaten.
Durch Festlegen von CertificateValidationMode auf PeerTrust würde beispielsweise jedes ausgestellte Token, dessen Signaturzertifikat im TrustedPeople-Zertifikatspeicher abgelegt ist, authentifiziert werden. Legen Sie in diesem Fall die TrustedStoreLocation-Eigenschaft entweder auf CurrentUser oder auf LocalMachine fest. Sie können andere Modi auswählen, einschließlich Custom. Bei Auswahl von Custom müssen Sie eine Instanz der X509CertificateValidator-Klasse zur CustomCertificateValidator-Eigenschaft zuweisen. Das benutzerdefinierte Validierungssteuerelement kann Zertifikate mit allen beliebigen Kriterien überprüfen. Weitere Informationen finden Sie unter Gewusst wie: Erstellen eines Dienstes, der ein benutzerdefiniertes Zertifikats-Validierungssteuerelement verwendet.
Siehe auch
Aufgaben
Gewusst wie: Deaktivieren sicherer Sitzungen auf einer WSFederationHttpBinding
Gewusst wie: Erstellen einer WSFederationHttpBinding
Gewusst wie: Erstellen eines Verbundclients
Konzepte
Verbund
Verbund und Vertrauenswürdigkeit
Verwenden von Zertifikaten
SecurityBindingElement-Authentifizierungsmodi