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)
[HttpRequest] (SOAP-Anfrage in Clear)
[HttpResponse] (SOAP-Antwort in Clear)
Nachher : (WSHttpBinding)
[HttpRequest] RequestSecurityToken
[HttpResponse] RequestSecurityTokenResponse
[HttpRequest] RequestSecurityToken
[HttpResponse] RequestSecurityTokenResponse
[HttpRequest] RequestSecurityTokenResponse
[HttpResponse] RequestSecurityTokenResponseCollection
[HttpRequest] EncryptedData
[HttpResponse] EncryptedData
[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?