C++ Client mit Zugriff auf Webservice (.Net/WCF) mit Authentifikation
-
Wie kann man aus einer C++ Anwendung einen Webservice ansprechen, der eine Authentifikation erfordert?
Die Schnittstellen bekomme ich mittels "Component/Import WSDL..." importiert und solange keine Authentifikation aktiv ist, kann ich den Webservice auch einwandfrei nutzen (auch unter https). Nun soll dieser Webservice aber abgesichert werden, und egal was ich bisher auf Seiten der WCF-Konfiguration und des C++ Clients auch versuche: Ich bekomme es nicht hin (ein C# Client bekomme ich zum Laufen).
Gewünscht ist zumindest eine einfache Benutzername/Passwort-Absicherung des Services, doch fehlen hier Beispiele wie man diese auf C++ Seite ansprechen kann.
Hat vielleicht schon jemand einen Webservice mit Authentifikation unter dem C++ Builder zum Laufen bekommen, und kann uns ein einfaches Beispiel nennen? Die Webservicekonfiguration können wir beliebig ändern, wichtig ist nur das wir einen lauffähigen Fall bekommen.
-
Hier schon geschaut?
https://www.google.de/#q=delphi+wsdl+authentication
Und das hier ausprobiert?
http://stackoverflow.com/questions/7462991/how-can-i-authenticate-to-this-https-soap-service
Oder das hier?
http://shenoyatwork.blogspot.de/2005/02/getting-wsdl-using-basic.html
-
Nicht nur schon geschaut, sondern auch diverses schon probiert. Das Problem scheint hier auch zu sein, wie der Service zu konfigurieren ist, damit die Anmeldung wie in den Links beschrieben funktioniert. Ich versuche gerade alle möglichen WCF-Einstellungen durch, bislang habe ich noch keine für den C++ Builder lauffähige Konfiguration gefunden.
Nachtrag:
Bislang (seit annähernd einer Woche sitze ich hauptsächlich an diesem Problem) habe ich keine lauffähige Konstellation gefunden. Ohne Authentifikation läuft alles gut, sind noch die aussagekräftigsten Fehlermeldung des Systems "InvalidSecurity"/"Fehler beim Überprüfen der Sicherheit für die Nachricht" (Auf Seite von .Net habe ich alle potentiellen Überprüfungsprobleme beseitigt, und akzeptiere beliebige Namen/Passwortkombinationen für den Test).Ich gehe davon aus das man Benutzername/Passwort anders als angegeben übergeben muss, oder das die verwendeten Protokolle von der VCL nicht unterstützt werden.
-
Welche Art der Authentifizierung wird denn benutzt?
mfg Martin
-
mgaeckler schrieb:
Welche Art der Authentifizierung wird denn benutzt?
Ich sage mal was gewünscht ist, was benutzt wird ist aktuell Experimentsache (ich habe vor ca. 3 Stunden überhaupt eine Authentifizierungsmethode zum Laufen gebracht - leider eine nicht ganz gewünschte):
a) Es soll nach Möglichkeit eine Benutzername/Passwort-Authentifikation eingebaut werden, mit einem "Custom Validator" (Kennung unserer Anwendung, nicht von der Domäne etc.).
b) Optional und zusätzlich wäre auch eine Windowsdomänenauthentifizierung schön, hier könnten wir aber auch ohne gut Leben (von unseren Kunden haben die wenigsten eine Domäne, wenngleich diese gerne eine zusätzlich Anmeldung vermeiden wollen).Wichtig ist das der Zugang zumindest soweit geschützt ist das man nicht sofort ins Schwitzen kommt, wenn der Service über Internet erreichbar ist, gleichzeitig sind zu große Vorraussetzung an die Konfiguration den meisten Kunden nicht verkaufbar (z.B. Zwang von Server+Clientzertifikaten - für ein Paar wenige wäre dies eine Option, nicht aber für alle*).
* Wir haben Kunden denen wäre ein SSL-Zertifikat für einen Server ja schon fast zu teuer (wobei ich Https+Serverzertifikat zumindest für Internetzugriff als Minimum ansehe).
Geschafft habe ich jetzt im ersten Schritt das ich eine Konfiguration habe in der man sich händisch mit den Domänennutzer anmelden kann (was ich noch nicht ausprobiert habe ist, ob man auch im IIS zusätzliche Benutzer anlegen kann, abseits von der Domäne für die Anmeldung). Mein Validator wird in dieser Konfiguration nicht angesprochen und ob die Einrichtungen mit der Zusätzlichen Pflege im IIS leben könnten sei auch dahingestellt.
Mir ist die Form der Authentifikation _fast_ egal, da es eine Übergangslösung bis zu einer Komplettumstellung auf .net wäre. Unter .Net bekomme ich meine Validierungen zum Laufen, und auch eine zusätzliche Domänenanmeldung zu konfigurieren ist keinerlei Problem. Wichtig ist nur das ich die Benutzer im Service eindeutig unterscheiden kann und unseren Anwendungsbenutzern zuordnen kann.