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:
- EndpointSupportingTokenParameters
- OperationSupportingTokenParameters
- OptionalEndpointSupportingTokenParameters
- OptionalOperationSupportingTokenParameters
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
Erstellen Sie ein Sicherheitsbindungselement. Im nachfolgenden Beispiel wird ein SymmetricSecurityBindingElement mit dem UserNameForCertificate-Authentifizierungsmodus erstellt. Verwenden Sie die CreateUserNameForCertificateBindingElement-Methode.
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