Mikä on OASIS WS-Security UsernameToken -standardi?
Jolla authentikoidutaan SOAP Serverille?
Tai miten sitä käytetään siis?
UsernameToken on yhdenlainen tokeni minkä WS-Security -viritys sisältää. Pankit, ainakin perinteisesti, käyttävät X.509 -sertifikaatteja (BinarySecurityToken).
Mutta jos kerta UsernameTokenia vaaditaan, niin kaiketi siinä sitten vain on tarkoitus autentikoitua. Se on tarkistettava vastaanottavalta taholta mistä on kysymys. Tai jos itse olet pystyttämässä palvelinpään prosessia, niin unohda koko WSS jos mitenkään on mahdollista (⊙_☉).
timoh kirjoitti:
(18.06.2020 14:40:23): UsernameToken on yhdenlainen tokeni minkä WS...
Teen siis erääseen pilivipalveluun integraatiota ja se vaati tällaisen authentikoinnin, koska on niin vanha systeemi. Ja ks. tahon apu tehdä ks. viritelmä jos itse ei osaa maksaa xxx € / tunti + ALV 24 %.
Löysin tällaisen mutta PHP Fatal error tulee jo SOAP Clientin alustuksessa koska vastapään systeemi paluttaa kirjautumissivun HTML:nä. Vaikka käyttäjätunnus, salasana ja y-tunnus ovat oikein mitkä pitää postittaa vastapään systeemiin.
https://gist.github.com/mathdev/3280448
Olen vähän vaikeassa tilanteessa kun mulla on 5-vuoden NDA systeemin kehtityksestä ja valtava sopimussakko jos paljastelen täällä liikesalaisuuksia eli vaikka lähdekoodia.
Ja integroitava sovellus on Visma Fivaldi.
Jostain dokumentaatiosta parasta kaivaa esille millaista infoa UsernameTokenin tulee sisältää. Gistin koodi luo yhdenlaisen sisällön, mutta se on eri asia kelpuuttaako Visman rajapinta sen.
Debuggaamista helpottaa jos esim. SoapClientin __doRequest:ssa logitat $request:in. Pystyt tarkistamaan millainen XML on käytännössä lähdössä. Ehkä se sieltä osuu paremmin silmään missä menee vikaan.
timoh kirjoitti:
(19.06.2020 11:28:06): Jostain dokumentaatiosta parasta kaivaa...
Tämä rivi menee PHP Fatal Erroriin, koska se lukee HTML:nä kirjautmissivun, joten tämän jälkeistä koodia ei voi käynnistää.
$client = new \SoapClient($url, $options);
Documentaatiossa puhutaan kaksivaiheisesta authentikaatiosta, eli ensin katsotaan normaalisti onko käyttäjä tietyllä salasanalla olemassa ja sitten sen jälkeen UsernameTokenilla toinen tarkistus.
Voisiko tuossa nyt olla että luot tarvittavan Soap XML:n UsernameTokeneineen ja lähetät sen osana normaalia HTTP POSTia yhdessä käyttäjätietojen kanssa?
curl https://asp.fivaldi.net/pls/fv00X/xml_web.
Aihe on jo aika vanha, joten et voi enää vastata siihen.