HellĂł!
Az iránt érdeklődöm, hogy a 2.0-ás teszt környezet működőképes-e?
Feltételez-e új felhasználói regisztrációt a 2.0-ás API a teszt környezet használatához.
TörtĂ©nt-e mĂłdszertani változás az adatok aláĂrásában az 1.1-es verziĂłhoz kĂ©pest (ha igen ennek leĂrását hol találom meg)?
Jelen pillanatban a TokenExchangeRequest hĂvás INVALID_REQUEST_SIGNATURE hibával tĂ©r vissza az általam beadott adatokkal.
ElĹ‘re is köszönöm a segĂtsĂ©get.
Szia @vajayattila
Nem kell kĂĽlön regisztráciĂł a 2.0 használatához Ă©s a teszt környezet is működik, azonban a requestSignature számĂtása változott. A konkrĂ©t kĂ©rdĂ©sre a választ a 2.0-ás interfĂ©sz dokumentáciĂł 1.5.2 pontja tartalmazza, azonban ha ez Ăşj, akkor javasolom hogy nĂ©zd át az 5.3-as fejezetet is, ahol diĂłhĂ©jban összegezve vannak az 1.1 -> 2.0 mĂłdosĂtások.
Köszi az infót.
A dokumentumnak megfelelően összerakom a requestSignature értékét. Igazából annyit csináltam, hogy a sha-512 metódust lecseréltem sha3-512-re. CryptoPP 8.2-t használok.
/*Régi metódus*/
extern "C" __declspec(dllexport)
long __stdcall Sha512Hex(const char* in, char** out, unsigned int *size) {
long retval = ERR_OK;
SHA512 hash;
string digest;
StringSource s(
in, true, new HashFilter(
hash, new HexEncoder(new StringSink(digest))
)
);
*size = digest.length() + 1;
*out = new char[*size];
if (*out != NULL) {
memset(*out, 0, *size);
strcpy(*out, digest.c_str());
}
else {
retval = ERR_MEM_ERROR;
}
return retval;
}
/*Ăšj metĂłdus*/
extern "C" __declspec(dllexport)
long __stdcall Sha3512Hex(const char* in, char** out, unsigned int *size) {
long retval = ERR_OK;
SHA3_512 hash;
string digest;
StringSource s(
in, true, new HashFilter(
hash, new HexEncoder(new StringSink(digest))
)
);
*size = digest.length() + 1;
*out = new char[*size];
if (*out != NULL) {
memset(*out, 0, *size);
strcpy(*out, digest.c_str());
}
else {
retval = ERR_MEM_ERROR;
}
return retval;
}
A kapott sha3-512 Ă©rtĂ©ket ellenĹ‘riztem egy online tool segĂtsĂ©gĂ©vel. Ugyanazt a hash Ă©rtĂ©ket kaptam vissza. A TokenExchangeRequest ezĂşttal INVALID_SECURITY_USER hibát ad. A user adatok biztos, hogy jĂłk, mert ugyanezeket adva át a 1.1-es verziĂłjĂş szolgáltatásnak, rendben visszajön.
Van valami ötlet mit szúrhatok el?
Lehet esetleg, hogy a password hash nem jĂł?
A passwordHash nem sha3-512?
Ezt Ărjátok a doksiban: passwordHash Sha512HashType [0-9A-F]{128}
but why?
EgyĂ©bkĂ©nt ez volt a baj. Azt mondjuk nem Ă©rtem itt miĂ©rt nem cserĂ©ltĂ©tek le a hash eljárást, de elfogadom, hogy Ăgy van. A kĂ©rdĂ©s csak az, Ăgy is marad?
Szia!
Ă–rĂĽlök hogy az INVALID_REQUEST_SIGNATURE hibán tĂşljutottál. Annak kevĂ©sbĂ©, hogy nem volt egyĂ©rtelmű a doksibĂłl, hogy a passwordHash nem változik, mert mĂ©g itt is tett a közössĂ©g a doksi ilyen irányĂş egyĂ©rtelműsĂtĂ©sĂ©re vonatkozĂł javaslatokat. De majd mĂ©g ötletelek, mit lehetne tenni. Esetleg ötlet, hol kellene ezt jobban kihangsĂşlyozni?
KĂ©rdĂ©sedre válaszul hogy a passwordHash miĂ©rt nem változik, 2 dolgot tudok mondani. MindkettĹ‘ indokrĂłl is Ărtam már korábban, egyszer egy dev diary-ban, egyszer pedig itt egy konkrĂ©t ticket kapcsán.
Mivel a mĂ©rleg kĂ©t serpenyĹ‘je Ăşgy áll, hogy a másik oldalon maximum csak az egysĂ©gessĂ©g áll mind benefit, ezĂ©rt Ăşgy gondoltuk hogy most nem cserĂ©ltetĂĽnk jelszĂłt csak ezĂ©rt. Amire sĂ©rĂĽlĂ©keny az SHA2, annak egy jelszĂłhash esetĂ©ben 0 relevanciája van. Persze ez nem azt jelenti, hogy a kĂ©sĹ‘bbiekben bármi miatt nem kell majd a technikai userek jelszavát cserĂ©lni/megĂşjĂtani, de ez majd egy másik beszĂ©lgetĂ©s lesz.
Lezárod majd?
Igazad van, a doksi alapján egyértelmű, hogy passwordHash hash eljárása megegyezik az 1.1 verziójú szolgáltatáséval. Én gondoltam túl a dolgot, hogy felesleges többféle hash eljárást alkalmazni.
Az, hogy a felhasználĂłnak jelszĂłt kell kötelezĹ‘en mĂłdosĂtania, ezt az Ă©rvet nem tudom elfogadni. Az ĂĽgyfĂ©lkapu idĹ‘közönkĂ©nt szĂvja a vĂ©rem, hogy változtassak jelszĂłt, de ne adjam meg az elĹ‘zĹ‘t stb. Ezt nem 300 ezer emberrel játssza el, hanem mindegy ĂĽgyfĂ©lkapus felhasználĂłval.
A második érved a technológia váltásról félig el tudom fogadni, félig nem. Az én magánvéleményem az, hogy az ember mindenképpen belekényszerül egy váltásba, akkor az olyan váltás legyen, ami hosszú távra szól, különben kétszer kell dolgoznia vele.
Részemről a jegyet lezárhatod.
Köszönöm szĂ©pen a segĂtsĂ©get.
Csak még egy gondolat.
Szerintem összemosod a két dolgot. Azzal semmi baj sincs ha az Ügyfélkapu jelszócserére kötelez, de ezt abból az okból teszi, mert a jelszó már túl régi, nem pedig azért, mert neki a jelszó új hash alakjára van szüksége. Ez szerintem eléggé nagy különbség.
Szerintem a felhasználó szemszögéből nincs különbség. Mindkettő olyan folyamat, amire nem kérte meg a szolgáltatás üzemeltetőjét, de valami miatt (biztonsági okok, fejlesztési okok miatt) rákényszerül.
Nem véletlenül kérdeztem meg, hogy a 2.0-ához kell-e új felhasználót létrehozni. Simán el tudom képzelni, hogy a 1.1 és 2.0 felhasználói bázisa nem azonos. Így a 2.0-ás fejlesztései nem vágja tacsra a 1.1 működését. Egy másik megoldás, hogy felveszel a felhasználó törzsbe egy 2.0 jelszó mezőt. Biztos van más megoldás is, de nekem ez jutott hirtelen eszembe.