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?

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.