Security Header in SOAP Request (Webservice)

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von gtrdriver.

    Security Header in SOAP Request (Webservice)

    Hallo Zusammen

    wie ich in einem vorherigen Post schon mal erwähnt hatte, arbeite ich seit über 10 Jahren mit ACCESS und VBA - Hier habe ich letztes Jahr ein Projekt erstellt, welches mit einem Werbservice(SOAP) kommuniziert (dieser ist von Struktur und Sicherheitsmerkmal fix vorgegeben), der einen "WS-Security Header" beinhaltet. Das bedeutet dass jeder SOAP Request einen spezifischen Header benötigt, der im konkreten Fall so aussieht:

    XML-Quellcode

    1. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:onec="http://oneclickforpartner.dpag.de"><soapenv:Header><onec:SYSTEM_ID>MEINEID</onec:SYSTEM_ID><onec:REQUEST_TIMESTAMP>24072009-142621</onec:REQUEST_TIMESTAMP><onec:KEY_PHASE>1</onec:KEY_PHASE><onec:SYSTEM_SIGNATURE>XXXXXXXXXXXX</onec:SYSTEM_SIGNATURE></soapenv:Header><soapenv:Body>--- Nutzinformation entfernt ---</soapenv:Body></soapenv:Envelope>



    Ich habe bereits - als ich es mit ACCESS erstellt habe - keine Möglichkeit gefunden, den Header durch Access zu erzeugen lassen (hatte damals bei Access 2000 das MS SOAP eingebunden - hier habe ich keine Möglichkeit gefunden diesen Header zu erzeugen.

    Daher - und weil die Zeit drängte - habe ich mich damals entschlossen den XML Request manuell zu erzeugen (also die XML DAten incl. Header manuell zu erzeugen) - das funktioniert soweit auch prima - hat aber den gravierenden Nachteil - dass wenn sich etwas am Dienst und der WSDL DATEI ändert - dann vermutlich nix mehr funktioniert.

    Ich muß nun quasi dieses Projekt in VB.NET (VB) neu entwicklen und habe hier offen gesprochen gehofft, dass das hier leichter wird, da JA SOAP Services ansich ja bei VB gut integriert sind. Aber - der Header verfolgt mich anscheinend.
    Bisher habe ich keinen Weg gefunden diesen mit VB zu erzeugen - gehen muss es, da ein mir bekannter Programmierer einen ähnlichen Service mit Visual Studio abfragt - allersings in "c" und nicht "VB". Leider kann ich Ihn aufgrund tragischer Ereignisse nicht mehr fragen wie er es gelöst hat.

    Bei Microsoft ist auch etwas über den Header zu finden: msdn.microsoft.com/de-de/library/ms977327.aspx#ID0ERAAC

    Ich habe bestimmt schon 5 Stunden die Suchmaschine gequält - aber nix wirklich brauchbares gefunden - lediglich ein Beispiel in "C+" - mit dem ich aber nix anfangen kann.

    Evtl suche ich auch total falsch ? - keine Ahnung ..... und evtl ist es total simpel - ich hoffe es :)

    Evtl kann mir von euch jemand nen Schubs in die richtige Richtung geben ?

    CU
    GTR
    Hallo,

    warum muss man eigentlich immer erst Detektiv spielen? Warum sagst du uns nicht, dass es um die Einbindung der "Internetmarke" der Post geht? Das ist eine durchaus wichtige Information!

    Optimal wäre natürlich ein Backend, gegen das man seine Anwendung debuggen kann. Aber ist hier wohl nicht möglich, ohne mit jedem Vorgang ne Briefmarke zu buchen. Das kann teuer werden :). Ich schaue mal, ob sich da was machen lässt. Ich weiß aber nicht, wie lange das dauern wird und wie viel ich rausfinde.

    Ach ja: Lass dich nicht dazu hinreißen, im Marktplatz-Thread deine kompletten Daten anzugeben (vor allem nicht an irgendwelche Leute, die beim Programmieren noch nicht über das Timer-Stadium hinausgekommen sind (lies ein paar Beiträge im Forum, dann weißt du, was gemeint ist)).
    Gruß
    hal2000
    Hallo HAL9000 (was für ein Name ... - wenn man an dessen Herkunft denkt muss man vor erfurcht (oder furcht ? ) erschauern .... (off Topic)

    Ja - das ist korrekt - es handelt sich um die Internet-Marke - und weil sich die Post hier zum Thema Sicherheit so derart anstellt, kann ich das nur in "Häppchen" posten ...

    CU
    GTR
    Hast du denn in VisualStudio bereits versucht, die WSDL (ich nehm mal an diese: internetmarke.deutschepost.de/OneClickForApp/?WSDL ) als Dienstverweis hinzuzufügen ?
    Und versucht, dich damit via OneClickForAppPortTypeClient und UserName und Password anzumelden ?
    Das ist meine Signatur und sie wird wunderbar sein!
    Hallo,

    hat schon mal jemand die Internetmarke in .net zum Laufen gebracht oder im Internet ein Codebeispiel gefunden?

    Wenn ich mich mit dem OneClickForAppPortTypeClient und authenticateUser anmelden möchte, bekomme ich die Fehlermeldung "Failed to invoke end componentFailed to invoke methodInvalid signature hash!".
    Guten Tag,

    ich habe mit dem selben Problem zu Kämpfen und versuche mich durch SOAP und der Internetmarke zu fuchsen.
    Die WSAD habe ich bereits als Webverweis eingebunden und kann darauf zugreifen.

    Aufgrund der recht knappen Schnittstellenbeschreibung fällt es mir nun schwer hier eine ordentliche Anwendung zu erschaffen.
    So habe ich z.b. folgendes ausprobiert um ein Login zu schaffen bzw. einen User zu authentifizieren.

    VB.NET-Quellcode

    1. Dim s As New WSAD.AuthenticateUserRequestType
    2. s.username = "xxx"
    3. s.password = "xxx"
    4. exe.authenticateUser(s)

    Als Fehlermeldung erscheint dann: "Die zugrunde liegende Verbindung wurde geschlossen: Unerwarteter Fehler beim Senden.."

    Mir ist bewusst das da noch einiges fehlt. Wenn man in der Schnittstellenbeschreibung schaut, wird erwartet das dem Header ein paar Parameter übergeben werden um als Drittanbieter ein Request zu verifizieren.

    Doch wie sich das gestaltet, ob ich überhaupt auf dem richtigen Weg bin oder wie auch immer ich damit an muss ... da bin ich leider überfragt.
    Ich würde mich sehr freuen wenn jemand da helfen kann oder mir ggf. Quellen liefern könnte, die für den richtigen Weg helfen.
    Meine Suche im Netz hat mir da leider nicht viel gebracht.

    Ich bedanke mich
    Hallo

    mal die grundsätzliche Frage:

    Hast du die Schnittstellenbeschreibung von der deutschen Post erhalten ?
    Wenn ja - dann müsstest du auch einen Schlüssel erhalten haben, mit dem du dann in Verbindung mit anderen Parametern (welche genau stehen in der Beschreibung) den entsprechenden HASH Wert errechnen kannst - ein Teil davon kommt dann in den Header und erst dann kannst du dich per USER Anmelden.

    CU
    Hallo

    gtrdriver schrieb:


    Hast du die Schnittstellenbeschreibung von der deutschen Post erhalten ?
    Wenn ja - dann müsstest du auch einen Schlüssel erhalten haben, mit dem du dann in Verbindung mit anderen Parametern (welche genau stehen in der Beschreibung) den entsprechenden HASH Wert errechnen kannst - ein Teil davon kommt dann in den Header und erst dann kannst du dich per USER Anmelden.

    die Schnittstellen-Beschreibung habe ich nach einem kurzen Telefonat direkt per E-Mail erhalten. Dazu habe ich keinen Schlüssel/Partner-ID erhalten.
    In der Schnittstellen-Beschreibung steht schließlich drin das man den unter einer Webseite, die es nicht mehr gibt, anfordern kann. Statt dessen habe ich an die mitgelieferte E-Mail Adresse nach diesen gefragt. Ich warte dort bisher auf Antwort.

    Das ich diese bestimmten Daten und den Hashwert übermitteln muss weiß ich mittlerweile.
    Nur "wie" ich den Header erstelle bzw. die Sachen dort übergebe, das ist mir gerade vollkommen unbekannt.
    Das was ich bis dato hin bekommen habe steht einen Beitrag über mir, für die ordentliche Connectivität muss ich jedoch den Header jedes mal (wegen der Zeit und dem Hashwert) anpassen. Kann mir da wer helfen an welche Stelle bzw. wie dies geschieht.

    Ich danke vielmals.
    Guten Tag,

    tja - das mit der "Schlüssel Erstellung" kann nach meiner Erfahrung bis zu 6 Monate dauern...
    Du bekommst vorher erst noch eine Mail mit einer Art "Fragebogen" - dann geht das weiter.

    Aber wie gesagt - 6 Monate.... - ich habe 8 gewartet...

    Zum Thema "Header" erstellen - genau darum drehte sich meine Frage in diesem Forum.
    Letzendlich konnte ich mir weder mit meinen Kenntnissen helfen, noch gab es wirklich eine Lösung - da das VB offenbar so out of the Box nicht unterstützt.

    Ich habe mir jedenfalls etwas gegen Entgelt programmieren lassen das diese Funktion abbildet - ich bitte um Verständnis dass ich das hier nicht posten kann.

    CU
    GTR