Freigeben über


Gewusst wie: Erstellen unterstützender Anmeldeinformationen

Sie können über ein benutzerdefiniertes Sicherheitsschema verfügen, für das mehrere Anmeldeinformationen erforderlich sind. Beispielsweise kann ein Dienst vom Client nicht nur den Benutzernamen und das Kennwort fordern, sondern auch Anmeldeinformationen, die beweisen, dass der Client älter als 18 Jahre. Diese Anmeldeinformationen sind unterstützende Anmeldeinformationen. In diesem Thema wird beschrieben, wie Sie solche Anmeldeinformationen in einem Windows Communication Foundation (WCF)-Client implementieren.

Tipp

Die Spezifikation für unterstützende Anmeldeinformationen ist Teil der WS-SecurityPolicy-Spezifikation. Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?LinkId=88537 (möglicherweise in englischer Sprache).

Unterstützende Token

Beim Verwenden der Nachrichtensicherheit wird die Nachricht immer mit primären Anmeldeinformationen gesichert (z. B. mit einem X.509-Zertifikat oder einem Kerberos-Ticket).

Wie durch die Spezifikation festgelegt, verwendet eine Bindung zur Sicherung des Nachrichtenaustauschs Token. Ein Token ist eine Darstellung von Sicherheitsanmeldeinformationen.

Die Sicherheitsbindung verwendet zum Erstellen einer Signatur ein in ihrer Richtlinie identifiziertes primäres Token. Diese Signatur wird als Nachrichtensignatur bezeichnet.

Es können zusätzliche Token angegeben werden, um die von dem der Nachrichtensignatur zugeordneten Token bereitgestellten Ansprüche zu erweitern.

Unterzeichnen, Signieren und Verschlüsseln

Als Ergebnis unterstützender Anmeldeinformationen wird ein unterstützendes Token innerhalb der Nachricht übertragen. Die WS-SecurityPolicy-Spezifikation definiert vier Methoden zum Anhängen eines unterstützenden Tokens an die Nachricht, wie in der folgenden Tabelle beschrieben.

Zweck Beschreibung

Signiert

Das unterstützende Token ist im Sicherheitsheader enthalten und wird durch die Nachrichtensignatur signiert.

Unterzeichnend

Ein unterzeichnendes Token signiert die Nachrichtensignatur.

Signiert und unterzeichnend

Signierte, unterzeichnende Token signieren das gesamte aus der Nachrichtensignatur erstellte ds:Signature-Element und werden selbst durch die Nachrichtensignatur signiert; d. h., beide Token (das für die Nachrichtensignatur verwendete Token und das signierte unterzeichnende Token) signieren einander.

Signiert und verschlüsselnd

Signierte, verschlüsselte unterstützende Token sind signierte unterstützende Token, die beim Anzeigen im wsse:SecurityHeader auch verschlüsselt werden.

Programmieren von unterstützenden Anmeldeinformationen

Zum Erstellen eines Dienstes, der unterstützende Token verwendet, müssen Sie ein customBinding Element erstellen. (Weitere Informationen finden Sie unter Gewusst wie: Erstellen einer benutzerdefinierten Bindung mit dem SecurityBindingElement.)

Der erste Schritt beim Erstellen einer benutzerdefinierten Bindung ist das Erstellen eines Sicherheitsbindungselements, das einer der folgenden drei Typen sein kann:

Alle Klassen erben vom SecurityBindingElement, das vier relevante Eigenschaften umfasst:

Bereiche

Für unterstützende Anmeldeinformationen existieren vier Bereiche:

  • Den Endpunkt unterstützende Token unterstützen alle Vorgänge eines Endpunkts. Die Anmeldeinformationen, die das unterstützende Token darstellt, können beim Aufrufen eines beliebigen Endpunktvorgangs verwendet werden.
  • Den Vorgang unterstützende Token unterstützen nur einen bestimmten Endpunktvorgang.

Wie durch die Eigenschaftennamen angegeben, können unterstützende Anmeldeinformationen erforderlich oder optional sein. Die unterstützenden Anmeldeinformationen werden verwendet, wenn sie vorhanden, aber nicht erforderlich sind; die Authentifizierung schlägt jedoch nicht fehl, wenn sie nicht vorhanden sind.

Prozeduren

So erstellen Sie eine benutzerdefinierte Bindung, die unterstützende Anmeldeinformationen enthält

  1. Erstellen Sie ein Sicherheitsbindungselement. Im nachfolgenden Beispiel wird ein SymmetricSecurityBindingElement mit dem UserNameForCertificate-Authentifizierungsmodus erstellt. Verwenden Sie die CreateUserNameForCertificateBindingElement-Methode.

  2. Fügen Sie den unterstützenden Parameter der von der entsprechenden Eigenschaft (Endorsing, Signed, SignedEncrypted oder SignedEndorsed) zurückgegebenen Auflistung von Typen hinzu. Die Typen im System.ServiceModel.Security.Tokens-Namespace umfassen häufig verwendete Typen wie die X509SecurityTokenParameters.

Beispiel

Beschreibung

Im folgenden Beispiel wird eine Instanz des SymmetricSecurityBindingElement erstellt und eine Instanz der KerberosSecurityTokenParameters-Klasse der von der unterzeichenden Eigenschaft zurückgegebenen Auflistung hinzugefügt.

Code

Siehe auch

Konzepte

Gewusst wie: Erstellen einer benutzerdefinierten Bindung mit dem SecurityBindingElement