WCF-Dienst mit WS-Security erfordert nur den Signed Timestamp

8

Ich muss einen Dienst für einen Drittanbieter bereitstellen, der Soap-Nachrichten mit einem signierten Timestamp sendet.

Wie kann ich meinen Dienst so konfigurieren, dass er dies unterstützt?

UPDATE Es ist mir gelungen, das Format der Soap - Nachricht zu erreichen, nach der wir suchen, aber WCF besteht darauf, sowohl den Benutzernamen als auch die Zeitstempel - Token zu signieren. Gibt es eine Möglichkeit, die verbindlich, nur den Zeitstempel zu signieren?

Weitere Aktualisierung Hier sind unsere Anforderungen:

  • Das Timestamp-Element MUSS unterschrieben werden.
  • Der CN-Name des Zertifikats, das für die Signierung verwendet wird, muss mit dem Benutzernamen "gib" im UsernameToken-Element übereinstimmen.
  • Das für die Signierung verwendete Zertifikat MUSS im BinarySecurityToken-Element gesendet werden.
  • Das KeyInfo-Element MUSS nur ein SecurityTokenReference-Element enthalten, das verwendet werden muss, um auf den BinarySecurityToken zu verweisen.
  • Ein Kanonisierungsalgorithmus MUSS angegeben werden.
  • Die SignatureMethod muss angegeben werden und muss der SHA-1- oder SHA-2-Algorithmus sein.
  • Freistehende Signaturen sollten verwendet werden.

Irgendwelche Vorschläge?

AKTUELLE KONFIGURATION

Clientbindung

%Vor%

Client-Endpunkt

%Vor%

Clientverhalten

%Vor%

Service-Bindung

%Vor%

Serice-Endpunkt

%Vor%

Serviceverhalten

%Vor%     
Dog Ears 24.09.2010, 08:54
quelle

3 Antworten

3

Sie sollten möglicherweise eine benutzerdefinierte Sicherheitsbindungsklasse in Betracht ziehen, die die Sicherheit genau so implementiert, wie Sie es wünschen, und nicht den WCF-Standard.

Diese MSDN-Links erklären benutzerdefinierte Bindungen und die abstrakte Basisklasse SecurityBindingElement:

Ссылка

Ссылка

    
John Weldon 23.02.2011 16:16
quelle
1

WCF erlaubt es nativ nicht, den Zeitstempel, aber nicht den Benutzernamen zu signieren. Zuerst bin ich mir ziemlich sicher, dass dies nicht mit dem Problem zusammenhängt, mit dem Sie konfrontiert sind - ein Server sollte in der Lage sein, beide Fälle zu behandeln. Wenn Sie es brauchen, schlage ich vor, den Benutzernamen überhaupt nicht in der Sicherheit zu verwenden (zB Sicherheitsmodus von "anonymousForCertificate") und dann einen benutzerdefinierten Nachrichtenencoder zu implementieren, um die Benutzernamen / Passwort Tags manuell in die Kopfzeile zu schieben (take Achten Sie darauf, keinen signierten Teil in der Nachricht zu ändern, hauptsächlich den Zeitstempel).

    
Yaron Naveh 14.08.2013 15:11
quelle
0

Sie können dies mit Nachrichtenverträgen tun, siehe: Ссылка

Hier ist ein Beispiel aus dem obigen Link:

%Vor%

Beachten Sie die Schutzstufen None, Sign, EncryptAndSign

    
Shiraz Bhaiji 24.02.2011 15:01
quelle

Tags und Links