Frage

I schrieb vor einiger Zeit eine benutzerdefinierte WCF Bindung meiner Lastenausgleich Farm ermöglichen Dienste über IIS zu hosten. Der Grund für die benutzerdefinierte war verbindlich, dass jeder Server SSL nicht hat, aber die Fähigkeit benötigt, um ein Client-Credential von Benutzername + Passwort zu akzeptieren. Der Proxy vor dieser Farm hat SSL so dass der Verkehr außerhalb der Firewall verschlüsselt werden würde. Diese kundenspezifische Bindung funktioniert gut, aber jetzt bin ich an dem Punkt, wo ich den Verkehr von meinem Rechner vor Ort zu beobachten und wollte diesen w / out SSL in der Mischung zu tun.

Das Problem ist, das - auf dem .net-Client, wenn ich meinen Sicherheitsmodus gesetzt = „TransportWithMessageCredential“ Ich muß SSL, was ich den Spaß Fehler „ungültiges Schema, erwartete https“ get

Ist es möglich, etwas speziell für die Kunden zu „ignorieren“, dass SSL fehlt aber immer noch lassen Sie mich übergeben Sie die Benutzername + Passwort über die SOAP-Header?

schreiben
War es hilfreich?

Lösung

Yup, ich schrieb einen Blog-Post über dieses eine Weile zurück "How To: SSL-Passthrough mit WCF --oder-- TransportWithMessageCredential über Plain-HTTP".

Die kurze davon ist, dass Sie Ihre eigene HttpTransportBindingElement Unterklasse, welche „Lügen“ Sicherheit über die Bereitstellung erstellen müssen.

Andere Tipps

Es gibt einen Hotfix für .net 3.5 sp1, die eine AllowInsecureTransport Eigenschaft auf die Security fügt . Dies wird auch in .net 4 Beta 2.

Ich gehe davon aus, auf Ihrer benutzerdefinierten Bindung, dass Sie auch eine Fehlermeldung erhalten, wenn Sie nur Sicherheitsmodus verwenden = „Message“? Eine kundenspezifische Bindung war nicht wirklich notwendig, da (wenn ich mich nicht irre) können Sie den wsHttpBinding mit Sicherheitsmodus verwenden können = „Message“ (ohne eigenes SSL).

Eine weitere Alternative ist nur ein SSL-Zertifikat selbst zu erzeugen, installieren Sie es in IIS und implementieren Code ein Vertrauen all Zertifikatsrichtlinie in Ihrer Berufung, aber dies ist in der Regel verpönt (wie Benutzername und Passwörter über einen unsicheren Kanal sendet) .

Eine dritte Option ist Ihr Vertrag Operationen zu ändern, um Ihre Datenverträge Benutzernamen und Kennwörter (oder irgendeine Art von Token) als Parameter oder ändern zu akzeptieren, so dass Sie die Informationen zusammen mit dem, was Objekt senden können Sie bereits das Senden werden können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top