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:
Irgendwelche Vorschläge?
AKTUELLE KONFIGURATION
Clientbindung
%Vor%Client-Endpunkt
%Vor%Clientverhalten
%Vor%Service-Bindung
%Vor%Serice-Endpunkt
%Vor%Serviceverhalten
%Vor%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:
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).
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
Tags und Links wcf ws-security