Portál AbcLinuxu, 30. dubna 2025 20:15

Praktické skúsenosti s implemetáciou OpenID

16.6.2008 10:39 | Přečteno: 1453× | poslední úprava: 16.6.2008 10:39

Začal som teraz ďaľší php projekt, úplne nezávyslý od predchádzajúcich, tak som si povedal že prihlasovanie spravím cez OpenID. Tu sú moje skúsenosti.

Kneď na úvod musím povedať že to nie je tak jednoduché ako som si predstavoval. Očakával som že do index.php pridám 2 riadky kódu a tým bude celé OpenID poriešené. Minimálne demo má však nejakých 266 riadkov php kódu a je rozdrbané do 4 súborov. K tomu si pripočítajte jeden adresár s OpenID knižnicou ktorý má 15000 riadkov. Pri troche snahy sa mi podarilo napísať "wrapper" takže som to nakoniec skresal na tie 2 riadky.

Prvý bezpečnostný problém sa objavil ked som si uvedomil že sa prihlasujem pomocou "http://JankoHrasko.oidprovider.com", ktorý síce servru povie že mám nick "John The Ripper" ale server už moje skutočné meno vie (JankoHrasko). Najprv som myslel že sa budem musieť môjho pekného OID nicku vzdať, ale potom som si uvedomil čo robím zle. Pri prihlasovaní netreba uvádať vaše celé OpenID, stačí zadať http://oidprovider.com/. Bohužial, ako som nakoniec zistil, OpenID server vracia skutočné OpenID takže si tým veľmi nepomôžete. Na ilegálnu činnosť budete potrebovať druhé OpenID alebo providera ktorý podporuje viac OpenID.

Z hľadiska používateľa je treba si pozor dávať na to, aby vám server nepodstrčil falošnú stránku (niečo ako phishing na OpenID), takže ak zadávate heslo treba skontrolovať adresu či ste na oidprovider.com. Samozrejme že väčšinou to heslo vôbec netreba zadať lebo ste tam už prihlásený (cookies na oidprovider.com).

Mimochodom vo Firefoxe 3 celé prihlasovanie funguje normálne, ale v Opere 9.50 to nefunguje úplne na 100%. Po potvrdení prihlásenia Opera zobrazí chybovú stránku, je treba refreshovať stránku, potom už to ide.

Pokoušíte se přistoupit na adresu https://www.myopenid.com/trust_submit, která je nedostupná. Zkontrolujte, zda je adresa zadána správně, a pak zkuste stránku načíst znovu.

Zaujímavé je, že to funguje aj ak je moja stránka na localhoste. Na môj vkus je to tiež trochu pomalé (asi 5s).

Medzi jednotlivými providermi je dosť veľký rozdiel čo sa týka prehľadnosti. Vyskúšajte niekoľko a zistíte ktorý vám najviac vyhovuje. Ako návrhár stránky ešte musíte dať pozor na to ako zadávajú používatelia OpenID pri prihlasovaní, lebo napr. openid.cz/janko ten môj kód neakceptuje (ale janko.myopenid.com ano), akceptuje http://openid.cz/janko alebo http://www.openid.cz/janko. Problém je že to isté vracia po autorizácii, teda ten istý uživateľ sa raz prihlási raz bez www raz s www. Účet http://janko.myopenid.com/ tam môže byť tiež 2x, raz s lomítkom na konci a raz bez neho. No proste bordel, OpenID servere nevracajú unifikované OpenID. Takže toto musíte nejak ošetriť.

Ďalšia nástraha je, že vačšinou portály ktoré podporujú prihlasovanie cez OpenID tiež majú aj nejaké vlastné registrovanie. Väčšinou ale nie sú provider OpenID takže tým že sa u nich registrujete OpenID nezískate.

Pre mňa implementácia OpenID spočívala v stiahnutí nejakej zbalenej knižnice, a následnom rozbalení do nejakého adresáru. Ako dlho to tam bude hniť? Kto sa o to bude starať? Kto bude kontrolovať nové verzie? Oveľa radšej by som to mal ako súčasť PHP, nech sa o aktualizáciu stará balíčkovací systém.

Ďalšia zrada (týka sa len sevra openid.cz) je taká, že ak napíšete na stránka vaše OpenID, dáte prihlásiť, presmeruje vás to na stránku providera. Ak teraz dáte back a skúsite sa prihlásiť ešte raz s tým istým OpenID tak vám vypíše že je to neplatné OpenID (metoda $consumer->begin($oid) vrati NULL), a už sa s ním neprihlásite. Toto je docela prúser. Ako som neskôr zistil, openid.cz nefunguje nikde, nepoužívajte ho.

Daily wtf dnes patrí servru bloguje.cz. Tam celú pointu OpenID chápu po svojom. Aby ste sa mohli pomocou OpenID prihlasovať, musíte sa u nich "normálne" zaregistrovať. Po registrácii musíte nastaviť ktoré OpenID budete na prihlasovanie používať. Akože teraz vážne, WTF? Predpokladám ale že manažéri sú spokojný, bulshit bingo proste boduje. Zakončím to citátom zo slashdotu, ktorý komentuje že MPAA chce zamedziť možnosti nahrávať filmy na DVR:

Further, how many people are going to buy a DVR (Digital Video RECORDER) that doesn't actually RECORD? Isn't that like, I don't know, THE WHOLE FUCKING POINT?!?!?

Ako som dnes ráno zistil, funguje to viac menej aj na Windowse taže masívnemu rozšíreniu už nič nebráni. Majte sa fajn, idem sa vyspať.

       

Hodnocení: 88 %

        špatnédobré        

Anketa

Používate OpenID?
 (18 %)
 (4 %)
 (82 %)
Celkem 68 hlasů

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

16.6.2008 12:08 maleprase | skóre: 28
Rozbalit Rozbalit vše Re: Praktické skúsenosti s implemetáciou OpenID
Odpovědět | Sbalit | Link | Blokovat | Admin
ad. bloguje.cz: neni to treba tak ze abych se mohl prihlasit musim mit blog a abych mel blog tak ho musim nechat vytvorit neboli zaregistrovat se a obracene proc se prihlasovat kdyz v systemu nejsem vedeny jako uzivatel a nemam v nem zadne data?

nebo by snad mely stranky pouzivajici openID k prihlasovaci akceptovat jakehokoliv uzivatele ktery ma zrovna nekde vytvoreny openid ucet? to snad ne ...
16.6.2008 12:51 Marek Bečka | skóre: 3 | Ružomberok, Praha
Rozbalit Rozbalit vše Re: Praktické skúsenosti s implemetáciou OpenID
Samozrejme musíte sa zaregistrovať, rozdiel je v tom, že netreba u každého webu vymýšlať login a heslo.
There are 110 kinds of people. Those who understand base-negative-2 notation, and those who do not.
hikikomori82 avatar 16.6.2008 12:54 hikikomori82 | skóre: 18 | blog: foobar | Košice
Rozbalit Rozbalit vše Re: Praktické skúsenosti s implemetáciou OpenID
No ale prave ze tam si meno a heslo vymyslat musi. Inak sa nezaregistruje, OpenID na to nestaci.
16.6.2008 12:58 Marek Bečka | skóre: 3 | Ružomberok, Praha
Rozbalit Rozbalit vše Re: Praktické skúsenosti s implemetáciou OpenID
Teda hovoril som o normálnej situácii :)
There are 110 kinds of people. Those who understand base-negative-2 notation, and those who do not.
pavlix avatar 17.6.2008 01:02 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Praktické skúsenosti s implemetáciou OpenID
To se mi nějak nezdá, buď používám login a heslo, nebo používám openid.

Ještě bych pochopil login a openid, v krajních případech, ale ne obecně.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
16.6.2008 13:44 CEST
Rozbalit Rozbalit vše Re: Praktické skúsenosti s implemetáciou OpenID
No, u nekterych systemu to proste funguje jenom jako autentizace: system pro overeni uzivetele. Ale ne jako autorizace a identifikace uctu - coz je blby.

Existuje spousta systemu, ktery si proste user management resi po svym, protoze proste maji mysql tabulku users, kde je uzivatelske jmeno typu string 3-8 znaku [a-z] a nic jineho a dalsi tabulky jsou na tohle jmeno provazany pres nejaky ID, coz je cislo z ty tabulky users pro danyho uzivatele. Potom samozrejme tyhle systemy trebas umozni prihlaseni pres jinej system, ale rovnou si to prihlasovaci jmeno namapujou na svoje vlastni username.

Super by samozrejme bylo, kdyby username mohlo byt cokoliv, teda i openid. Pak by clovek prisel na stranku treba s nejakym OpenID a system by se ho zeptal "Chcete zalozit blog/schranku/... pod identitou http://franta-novak.openid-provider.dom?" a jako username by pouzil prave tohle openid.
lebo napr. openid.cz/janko ten môj kód neakceptuje (ale janko.myopenid.com ano), akceptuje http://openid.cz/janko alebo http://www.openid.cz/janko. Problém je že to isté vracia po autorizácii, teda ten istý uživateľ sa raz prihlási raz bez www raz s www. Účet http://janko.myopenid.com/ tam môže byť tiež 2x, raz s lomítkom na konci a raz bez neho. No proste bordel, OpenID servere nevracajú unifikované OpenID. Takže toto musíte nejak ošetriť.
Tohle je hodne velkej problem. Dokud to nebude skutecne jednotne fungovat, tak to bude asi docela problem. My ted v praci "experimentujeme" (na nekterych systemech uz to bezi) se SAML, konkretne SimpleSamlPhp a osobne muzu rict, ze instalace a konfigurace je opravdu trivialni. Pocatecne konfigurace sice trosku casu sezere, zvlast IdP je nutny trosku vic nakonfigurovat kvuli overovani identity, ale pridani dalsiho SP uz je jenom rozbaleni ZIPu, zkopirovani 4 souboru a uprava hostname na SP a IdP, a basedir na SP.
pavlix avatar 17.6.2008 01:04 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Praktické skúsenosti s implemetáciou OpenID
Použití openid na autentizaci neni tak úplně blbý. Lepší než ho nepoužít vůbec a nutit uživatele do hesel.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
16.6.2008 21:48 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: Praktické skúsenosti s implemetáciou OpenID
Odpovědět | Sbalit | Link | Blokovat | Admin
Neznate nekdo nejakou evropskou alternativu Verisign, ktera by poskytovala podobne bezpecnostni prvky?
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
pavlix avatar 17.6.2008 01:50 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Praktické skúsenosti s implemetáciou OpenID
Odpovědět | Sbalit | Link | Blokovat | Admin
Naštěstí většina (žádné?) tvých problémů nevychází ze samotného konceptu OpenID.

Bloguje.cz jsem moc nezkoumal, měl jsem za to, že na komentování stačí mít openid. Na založení blogu je samozřejmě potřeba založit blog :D. Ale třeba se pletu.

Dlouhé trvání je vlastností konkrétních implementací a serverů.

OpenID řeší relativně složitý problém, takže jednoduchost při implementaci by byl příliš velký luxus. Zvlášť, pokud se člověk rozhodne pro PHP.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.