Update: In 24 Martie 2008 a fost lansat primul server OpenID din Romania, myopenid.ro. Via Antonio Eram.

Unul din primele site-uri care a implementat in Romania autentificarea prin OpenID este www.uiteceVreau.ro, un portal de socializare online specializat in crearea, administrarea si promovarea listelor de produse favorite (wish list) ale utilizatorilor de orice varsta. Click aici sa vezi ce poate sa faca ucV ;).

OpenIDIata mai jos cativa pasi simpli pentru implementarea login-ului prin OpenID pe orice website.

1a. Testeaza mai intai procesul de autentificare si asigura-te ca mesajul returnat de server-ul provider de OpenID authentication este unul pozitiv.

1b. Daca mesajul returnat la punctul 1 este “Server denied check_authentication“:

  • inseamna ca sunt probleme la conexiunea cu baza de date si nu sunt salvate asocierile cu serverele OpenID (store nu functioneaza);
  • conexiunea cu baza de date trebuie sa arate in felul urmator (PHP classic):

    // connect to MySQL
    $mysql_connection = mysql_connect('localhost', 'username', 'password');
    // select database
    mysql_select_db('database', $mysql_connection);
    // save MySQL connection for further usage
    define( 'DB', $mysql_connection);
  • sau se poate accesa cu PEAR.

2. Daca esti la acest pas, inseamna ca testul de autentificare OpenID functioneaza pe server-ul tau. Acum poti crea paginile tale de autentificare.

3. Yahoo! e putin diferit fata de majoritatea site-urilor, si vrea sa stie sigur ca site-ul tau trimite clientii pentru autentificarea OpenID. Astfel ca, daca vezi in pagina Yahoo! de autentificare OpenID urmatorul text:

"Warning: This website has not confirmed its identity with Yahoo! and might be fraudulent. Do not share any personal information with this website unless you are certain it is legitimate."

atunci trebuie sa executi urmatorii pasi:

a) trimiti email la openid-feedback@y… si ii intrebi ce are Yahoo! cu site-ul tau, ca tu esti om de treaba si nu faci fraude, iar ei o sa iti raspunda prompt (thanks, Yu) ca trebuie sa le spui exact cine esti (ca website) ca sa nu afiseze warning-ul;

b) sau ma crezi pe cuvant si executi urmatoarele:

  • in calitate de Relying Party, trebuie sa ii spui lui Yahoo! ca ai aceeasi identitate cu site-ul de unde a venit cererea de autentificare OpenID (RP discovery);
  • si faci asta utilizand protocolul Yadis;
  • de exemplu, Realm-ul tau este http://www.siteulmeu.ro/openid/ (Realm este pagina care comanda autentificarea OpenID printr-un formular ce transmite parametrii prin POST);
  • in aceast caz, script-ul tau OpenID este rulat la “index.php”;
  • creaza un fisier “yadis.xrdf” oriunde pe server, sa zicem “http://www.siteulmeu.ro/openid/yadis.xrdf”, si salveaza-l cu urmatorul cod:

    <?xml version="1.0" encoding="UTF-8"?><xrds:XRDS
    xmlns:xrds="xri://$xrds"
    xmlns="xri://$xrd*($v*2.0)">
    <XRD><Service xmlns="xri://$xrd*($v*2.0)">
    <Type>http://specs.openid.net/auth/2.0/return_to</Type>
    <URI>http://www.siteulmeu.ro/openid/</URI>
    </Service></XRD>
    </xrds:XRDS>

    unde in tag-ul <URI>pui Realm-ul tau;
  • spune-i server-ului sa citeasca binar fisierele cu extensia “XRDF”, adaugand urmatorul cod in .htaccess:

    #openid
    AddType application/xrds+xml .xrdf
    RewriteCond %{HTTP_ACCEPT} application/xrds\+xml
    RewriteCond %{HTTP_ACCEPT} !application/xrds\+xml\s*;\s*q\s*=\s*0(\.0{1,3})?\s*(,|$)
    RewriteRule ^$ http://www.siteulmeu.ro/openid/yadis.xrdf [R,L]
  • in pagina generata automat de catre clasa OpenID, in care este continut formularul si campurile hidden care sunt trimise procesatorului de OpenID, trebuie sa adaugi urmatorul camp META in header, inainte de <HEAD>:<meta content=”http://www.siteulmeu.ro/openid/yadis.xrdf” http-equiv=”x-xrds-location” />

4. Enjoy!

Daca ai nevoie de ajutor pentru implementarea OpenID, scrie-mi la contact [arond] nelulazar [punct] com. Promit sa raspund, in masura timpului disponibil.

Acum Cristi poti sa ciripesti mai departe vestea despre implementarea simpla a solutiei OpenID ;).



Articole similare





Cauta in acest site:



Comentarii

Nume (*)

Email (*) nu va fi publicat

Blog / Website

• link-urile nu contin "nofollow"
• ultimele comentarii sunt listate in sidebar

Comentariul tau pentru articolul de mai sus:


Comments links could be nofollow free.