Welche Sicherheit wird standardmäßig in WSHttpBinding (Serviceseite) oder im WCF-Testclient (Clientseite) verwendet?

8

Ich habe kürzlich einen Dienst von BasicHttpBinding auf WSHttpBinding verschoben (dh SOAP 1.1 -> SOAP 1.2). In WCF werden bei Verwendung von WSHttpBinding () einige Standardsicherheitseinstellungen verwendet. Ich gehe davon aus, dass die gleichen Standardsicherheitseinstellungen auch vom WCF-Testclient verwendet werden, da der Client und der Server nach dem Wechsel zur "gesicherten" WSHttpBinding weiter kommunizieren können. In Fiddler habe ich dieses Sicherheits-Setup bestätigt, da ich komplexere Sicherheits-Handshakes aus der zuvor absolut einfachen Anfrage-Antwort sehen kann, d. H.

Vorher: (BasicHttpBinding)

  1. [HttpRequest] (SOAP-Anfrage in Clear)

    [HttpResponse] (SOAP-Antwort in Clear)

Nachher : (WSHttpBinding)

  1. [HttpRequest] RequestSecurityToken

    [HttpResponse] RequestSecurityTokenResponse

  2. [HttpRequest] RequestSecurityToken

    [HttpResponse] RequestSecurityTokenResponse

  3. [HttpRequest] RequestSecurityTokenResponse

    [HttpResponse] RequestSecurityTokenResponseCollection

  4. [HttpRequest] EncryptedData

    [HttpResponse] EncryptedData

  5. [HttpRequest] EncryptedData (tatsächliche Anforderung auf Anwendungsebene)

    [HttpResponse] EncryptedData (tatsächliche Antwort auf Anwendungsebene)

Ich kann also davon ausgehen, dass Sicherheit angewendet wird. Nun zu den Fragen:

Frage 1: Wie lauten die Sicherheitseinstellungen? Ich habe WCF nie von einem Mitgliedschaftsanbieter erzählt. Tatsächlich habe ich keine Tabelle (SQL oder XML) mit Benutzernamen <-> Passwörtern. Welche Art von Authentifizierung findet also statt? Obwohl sich der WCF-Testclient wie oben authentifizieren kann, übernimmt SoapUI diese Microsoft .NET-Standardeinstellungen nicht und weist Probleme auf. SoapUI versucht eine Klartextkommunikation und der Server antwortet mit einem falschen Sicherheitstokenfehler.

Frage 2: Was ist das am häufigsten praktizierte Sicherheitsmodell für SOAP 1.2? Ist es über Zertifikate oder Benutzernamen Passwörter oder Digest oder _____? Wie werden diese Anmeldeinformationen auf der WCF-Serverseite gespeichert (SQL / XML?) Und konfiguriert?

DeepSpace101
quelle

Antworten:

7

Nun, die berühmte WSHTTPBinding. Dies verursacht bei Nicht-NET-Plattformen große Schmerzen.

Selbst wenn SOAP 1.2 ein Standard ist, ist WSHTTPBinding eine Microsoft-Implementierung über SOAP 1.2. Erfahrungsgemäß ist es nicht so einfach wie "Unser Produkt unterstützt SOAP 1.2, sodass es mit WCF- und WSHTTPBinding-Diensten funktioniert, kein Problem!" .

Antwort 1

Es gibt zwei Hauptsicherheitseinstellungen:

  • Nachrichtensicherheit : Die Nachricht ist teilweise verschlüsselt. Standard
  • Transportsicherheit : Verwendet SSL, um den Kanal zu sichern

Bei der Authentifizierung verwendet WSHTTPBinding standardmäßig Windows-Anmeldeinformationen (NTLM oder Kerberos).

Antwort 2

Es kommt darauf an, aber eine kurze Antwort lautet:

  • Sie müssen die Nachrichten umleiten oder überprüfen: Verwenden Sie Nachrichtensicherheit
  • Sie benötigen Punkt-zu-Punkt-Kanäle und können diese mit Zertifikaten sichern: Verwenden Sie Transport Security
  • Ihre Clients und Server verwenden dieselbe Authentifizierungsplattform. Verwenden Sie die Windows-Authentifizierung
  • Sie benötigen eine offene Authentifizierung für externe Clients oder eine plattformübergreifende Verwendung der Benutzernamenauthentifizierung

Über die Benutzernamenauthentifizierung gibt es verschiedene Konfigurationen. Sie können die Anmeldeinformationen in einer SQL-Datenbank speichern, ja (wir tun dies in unserem Unternehmen für einige Dienste).

Einige einfache Fälle: Verbesserung der Sicherheit von Webdiensten: Szenarien und Implementierungsanweisungen für WCF

JoeBilly
quelle
Vielen Dank! Dieser Link ist auch sehr nützlich. Daher denke ich an SOAP 1.2 + SSL + Basic Auth, da wir externe / Drittanbieter-Clients unterstützen müssen. Gibt es spezielle Tipps / Vorsichtsmaßnahmen in diesem Setup? Wird WS2007HttpBinding gegenüber WSHttpBinding empfohlen?
DeepSpace101
1
Sie wissen nicht viel über WS2007HttpBinding, aber eine Beschreibung der unterstützten Protokolle finden Sie hier: msdn.microsoft.com/en-us/library/ms730294.aspx . In Bezug auf das Setup müssen Sie einige Analysen durchführen, um den Dienstinstanzmodus sowie die Nachrichtengrößen und Zeitüberschreitungen für Bindungen ordnungsgemäß zu konfigurieren.
JoeBilly