Pagina principala » Internet » Ce este conectarea OAuth și modul de utilizare a acestuia

    Ce este conectarea OAuth și modul de utilizare a acestuia

    Mulți dintre noi intră în contact cu OAuth atunci când navighează în jurul Web-ului și majoritatea dintre noi nici măcar nu sunt conștienți de existența acestuia. OAuth (Open Authentication) este un sistem care permite site-urilor terților acces limitat în conturile de utilizator, de exemplu, conturile Twitter sau Facebook. Permite vizitatorilor să interacționeze în cadrul site-ului fără a solicita înregistrarea unui nou cont sau să-și elibereze numele de utilizator și parola terților.

    În acest ghid aș dori să vă prezint conceptul de OAuth și cum se poate aplica dezvoltatorilor. Există o mulțime de detalii tehnice implicate în implementarea propriei aplicații OAuth. Exemplul meu va fi scris în PHP folosind o broșură de bibliotecă Twitter, dar puteți folosi aproape orice API de programare populară de la Python la Ruby sau Obiectiv-C.

    Chiar dacă conceptul se simte critic, încearcă să digere cât poți. Este totuși o tehnologie foarte misterioasă, tocmai a fost elaborată în 2007. Cu siguranță nu am înțeles cum să dezvolt conexiuni complete OAuth chiar și după primele mele tutoriale, dar dacă rămâi cu ea, vei prinde repede. Acum, mai întâi pentru a lovi lucrurile, o mică introducere!

    Ce probleme putem rezolva?

    Dacă vă gândiți la cât de mult a devenit internetul conectat, are sens doar faptul că utilizatorii vor dori să partajeze informații între mai multe conturi din Facebook pe Twitter, Tumblr, Foursquare și chiar și în aplicații mobile cum ar fi Path sau Instagram. Problema cu care ne confruntăm acum este cum să realizăm acest lucru în cel mai sigur și mai simplu mod posibil. OAuth 1.0 este o încercare de a rezolva această problemă și numeroase alte probleme, în comparație cu standardele OpenID mai vechi. Utilizatorii continuă să introducă numele de utilizator / parola în alte site-uri terțe doar pentru a se conecta la OpenID. Acest lucru nu îl face mai sigur pentru utilizator. În conformitate cu specificațiile OAuth, utilizatorul nu trebuie niciodată să stocheze date contului personal într-o bază de date terță parte.

    (Sursa Image: Martin Hassman)

    Cu ajutorul serviciului OAuth, principalul furnizor de cont (de exemplu, Twitter, Facebook) vă va redirecționa mai întâi (utilizatorul) către o pagină de autorizare. Utilizatorul se loghează apoi în rețeaua principală și apoi acceptă sau refuză o nouă conexiune pe site-ul terț. Tehnologia este fără dureri și puteți oricând neautoriza conexiunile din setările contului dvs. în orice moment. Observați că parola dvs. nu este dată niciodată părții terțe care face acest protocol mult mai sigur decât omologul său.

    Cum funcționează procesul

    Există 3 părți care trebuie să ia în considerare într-un apel standard OAuth:

    • Furnizor de servicii - Rețeaua principală pe care încercați să o trageți. Ele oferă răspunsul API, cum ar fi numele dvs. de utilizator, fotografia de profil, adresa URL a site-ului web și alte chestii.
    • Consumator - Aplicația terță parte care caută să primească date. Acesta ar fi site-ul web sau aplicația mobilă care face cererea de conectare inițială, apoi gestionează și datele de returnare după autorizare.
    • Utilizator - Persoana care stă în spatele calculatorului care interacționează cu site-urile care ar fi dumneavoastră!

    Scopul programului OAuth nu este acela de a furniza o bibliotecă specifică pentru utilizarea site-urilor Web. De fapt, stabilește “norme” pentru construirea unui protocol API deschis. Deci, în timp ce noi toți putem beneficia de această tehnologie, dezvoltatorii sunt de fapt interesați în acest domeniu. Dacă aveți nevoie de mai multe informații, consultați ediția revizuită v1.0 lansată în aprilie 2010.

    Confruntarea cu securitatea

    Întregul proces necesită în cele din urmă două chei diferite, împreună cu un jeton de acces. Cheile sunt furnizate de serviciul rădăcină după înregistrarea unei aplicații - acestea sunt cunoscute sub numele de dvs. client și secret ID. ID-ul clientului este în general trecut în URL-ul de autentificare, astfel încât serverul să poată recunoaște aplicația.

    Codul secret este păstrat în codul dvs., astfel încât serverul să poată verifica identitatea aplicației dvs. În mod similar, serverul de la distanță se va potrivi cu ID-ul dvs. secret cu propriile lor, astfel încât să nu trimiteți în mod eronat o cerere de twitter la API-ul Facebook sau invers. Dacă utilizatorul autorizează conexiunea și toate cheile se potrivesc, atunci acestea sunt returnate pe site-ul dvs. cu un cod lung de numere și litere aleatorii.

    Acest cod este folosit pentru a genera un nou jeton de acces. Acestea se comportă similar cu o variabilă de sesiune pe care o puteți stoca într-un modul cookie pentru a păstra utilizatorul conectat la site-ul dvs. Web. Singura diferență este că multe servicii vor trimite un Token de acces și un Token de acces secret. Probabil că aveți nevoie de ambele pentru a trage orice date de pe server. Un exemplu ar putea fi solicitarea fotografiei de utilizator a utilizatorului pentru a salva o copie pe propriul dvs. site web.

    Exemplu de Bibliotecă pentru Twitter OAuth

    Dezvoltatorii nu sunt adesea susceptibili să înceapă de la zero, de ce să nu privim într-o bibliotecă construită anterior? Acest lucru ne va salva timpul, și de dureri de cap, atunci când lucrăm cu PHP. Să încercăm să construim un exemplu foarte simplu în partea de sus a API-ului Twitter.

    Îmi recomand foarte mult Twitter Async de Jaisen Mathai pe GitHub. Funcționează perfect și oferă chiar și câteva exemple de coduri foarte simple pe care le putem examina. Puteți descărca .zip pentru moment, dar înainte de a examina codul, trebuie să ne înregistrăm și să obținem ID-urile de aplicații de pe Twitter.

    Înregistrarea unei noi aplicații

    Centrul de distribuție Twitter Dev este o resursă excelentă pentru cei care au început deja să funcționeze pe API. A fost scrisă și rescrisă de mai multe ori pe parcursul câtorva ani. Pagina pe care o dorim este https://dev.twitter.com/apps/new. Vă va cere să vă conectați la început, apoi trebuie să introduceți anumite acreditări pentru o nouă aplicație.

    Numele aplicației și descrierea sunt afișate atunci când utilizatorul merge să autorizeze cu Twitter. Adresa URL Web este, de asemenea, importantă pentru a distinge adresa terță parte. Ar fi mai ușor să lucrezi cu un domeniu live, deși poți folosi localhost pentru testarea, dar eu nu fac asta. Este la fel de ușor să vă înscrieți pentru o gazdă web gratuită și să rulați scripturile de acolo.

    Adresa URL de apel invers este indicată ca destinație finală după ce vizitatorii dvs. acceptă sau refuză autorizația. Este treaba ta ca programator să citești răspunsul de la Twitter și să trimiți un mesaj în consecință. În biblioteca Async am obținut deja anumite acreditări, dar acestea nu vor funcționa deoarece adresa URL de apel invers este specificată unui blog extern. Dacă doriți să construiți o aplicație web OAuth complet conectată, am inclus câteva tutoriale detaliate mai jos.

    Verificați codul

    Dacă utilizați o gazdă web la distanță, este posibil să doriți să dezarhivați bibliotecile Async și să le încărcați într-un nou director. În caz contrar, puteți verifica codul sursă. Este posibil să nu reușim oricum să tragem o nouă conexiune. Dar experiența hands-on cu încărcarea și editarea codului sursă este întotdeauna un proces de învățare.

    În directorul rădăcină veți găsi un script numit simpleTest.php. În interior există o mulțime de coduri PHP legate de bibliotecile OAuth incluse. Nu voi putea să le puneți împreună, dar ar trebui să ne uităm la un bloc de coduri importante pentru a identifica detalii notabile.

     

    Există 4 variabile foarte importante pentru cheia de consum și ID-ul secret, împreună cu ID-ul token și secret. Nu toate serviciile API vor necesita acest set de 4, dar este un protocol OAuth corespunzător. Clasa EpiTwitter necesită toate cele 4 valori ca parametri și generează URL-ul de conectare în Twitter.

    https://api.twitter.com/oauth/authorize?oauth_token=TOKEN_ID_HERE

    Cu această nouă adresă dinamică puteți crea un buton de conectare pentru utilizatorii dvs. Acestea ar fi direcționate mai întâi către o pagină securizată API Twitter unde utilizatorul acceptă sau respinge conexiunea. Indiferent de alegerea acestora, utilizatorul va fi redirecționat către adresa URL de apel invers. Întregul protocol deschis are o perspectivă foarte curată, care permite o dezvoltare rapidă, în special cu bibliotecile disponibile în aproape toate limbile.

    Link-uri conexe

    • hueniverse oauth 1.0 ghid
    • Introducere blândă în OAuth
    • OAuth FAQ
    • Facebook Ghid de autentificare Dev
    • Simplu Twitter OAuth Signin
    • Utilizarea OAuth cu Twitter în Cocoa Obiectiv-C
    • Consumând inteligent OAuth în șine

    Concluzie

    Sperăm că această introducere în OAuth v-a interesat să construiți aplicații peste protocol. Mulți dezvoltatori s-au străduit pentru o astfel de soluție, iar OAuth 2.0 poate fi viitorul rețelelor sociale interconectate. Eu deja folosesc peste douăsprezece conexiuni în contul meu Twitter și am fost cu adevărat impresionat de documentația dezvoltatorului!

    În mod evident, există multe de spus despre acest subiect. Nu este ceva pe care să-l puteți procesa pe deplin într-o singură ședință. Navigați în rețea pentru mai multe soluții OAuth și spuneți-ne ideile dvs. în zona de discuții de mai jos.