Domača » Internet » Kaj je povezava OAuth in kako jo uporabljati

    Kaj je povezava OAuth in kako jo uporabljati

    Mnogi od nas pridejo v stik z OAuth, ko brskate po spletu, in večina od nas se niti ne zaveda svojega obstoja. OAuth (Open Authentication) je sistem, ki spletnim mestom tretjih oseb omogoča omejen dostop do uporabniških računov, na primer računov v storitvi Twitter ali Facebook. Obiskovalcem omogoča interakcijo znotraj spletnega mesta brez potrebe po registraciji novega računa ali prepustitvi uporabniškega imena in gesla tretjim osebam.

    V tem priročniku želim predstaviti koncept OAuth in kako ga lahko uporabimo za razvijalce. Pri izvajanju vaše lastne aplikacije OAuth je vključenih veliko tehničnih podrobnosti. Moj primer bo napisan v PHP-ju z uporabo ovitka knjižnice v storitvi Twitter, vendar lahko uporabite skoraj vsak priljubljen programski API od Pythona do Ruby ali Objective-C.

    Tudi če se pojem počuti skrivnostno, poskusite čim bolj prebaviti. To je še vedno zelo skrivnostna tehnologija, ki je bila pravkar pripravljena leta 2007. Vsekakor nisem razumela, kako razviti popolne OAuth Connections tudi po prvih nekaj vajah, vendar če se boste držali tega, boste hitro ujeli. Zdaj najprej izstreli stvari, majhen uvod!

    Katere težave lahko rešimo?

    Če pomislite, koliko je internet postal bolj povezan, je smiselno, da bodo uporabniki želeli deliti informacije med več računi iz Facebooka v Twitter, Tumblr, Foursquare in zdaj celo v mobilne aplikacije, kot sta Path ali Instagram. Problem, s katerim se zdaj spopadamo, je, kako to doseči na najbolj varen in preprost način. OAuth 1.0 je poskus reševanja tega in številnih drugih težav v primerjavi s starejšimi standardi OpenID. Uporabniki še vedno vnašajo svoje uporabniško ime / geslo v druga spletna mesta tretjih oseb, da se povežejo v OpenID. To ne pomeni, da je za uporabnika to varnejše. Pod specifikacijami OAuth uporabnik nikoli ne sme shraniti podatkov osebnih računov v bazo podatkov tretjih oseb.

    (Vir: Martin Hassman)

    Z OAuth vas bo glavni ponudnik računa (npr. Twitter, Facebook) najprej (uporabnik) preusmeril na stran za avtorizacijo. Uporabnik se nato prijavi v glavno omrežje, nato pa sprejme ali zavrne novo povezavo na spletnem mestu tretje osebe. Tehnologija je neboleče enostavna in vse povezave z nastavitvami računa lahko kadar koli nepooblaščeno. Upoštevajte, da vaše geslo ni nikoli dano tretji stranki, zaradi česar je ta protokol veliko varnejši kot njegov ustreznik.

    Kako deluje proces

    V standardnem klicu OAuth je treba upoštevati 3 stranke:

    • Ponudnik storitev - Glavno omrežje, iz katerega želite potegniti podatke. Zagotavljajo odziv API, kot so vaše uporabniško ime, slika profila, URL spletnega mesta in druge stvari.
    • Potrošnik - Aplikacija tretje osebe, ki želi prejeti podatke. To bi bila spletna stran ali mobilna aplikacija, ki zahteva začetno povezavo, nato pa po odobritvi obravnava podatke o vračanju.
    • Uporabnik - Oseba, ki sedi za računalnikom, ki sodeluje s spletnimi stranmi, ki bi bila vi!

    Namen OAuth ni zagotoviti posebne knjižnice za uporabo spletnih mest. Pravzaprav vzpostavi “pravila” za izgradnjo odprtega protokola API. Torej, medtem ko lahko vsi imeli koristi od te tehnologije je dejansko razvijalci, ki bodo resnično našli interes na tem področju. Če potrebujete več informacij, si oglejte popravljeno izdajo v1.0, izdano aprila 2010.

    Soočanje z varnostjo

    Celoten postopek na koncu zahteva dva različna ključa skupaj z dostopnim žetonom. Ko registrirate aplikacijo, ključe priskrbi korenska služba - ti so znani kot vaši stranka in tajni ID. ID odjemalca se običajno prenese v URL za overjanje, da lahko strežnik prepozna vašo aplikacijo.

    Skrivni ID je shranjen v kodi, tako da lahko strežnik preveri identiteto aplikacije. Podobno se bo oddaljeni strežnik ujemal s svojim tajnim ID-jem s svojimi, tako da ne boste napačno poslali zahtevek za Twitter na API za Facebook ali obratno. Če uporabnik odobri povezavo in se vsi ključi ujemajo, se vrnejo na vaše spletno mesto z dolgo kodo naključnih številk in črk.

    Ta koda se uporablja za ustvarjanje novega dostopni žeton. Te se obnašajo podobno kot spremenljivka seje, ki jo lahko shranite v piškotek, da uporabnik ostane prijavljen v vaše spletno mesto. Edina razlika je, da bodo številne storitve poslale nazaj žeton za dostop in žeton za skrivni dostop. Verjetno potrebujete oba, da potegnete podatke iz strežnika. Primer je lahko zahteva, da uporabnikova fotografija profila shrani kopijo na vašo spletno stran.

    Primer knjižnice za Twitter OAuth

    Razvijalci pogosto ne morejo začeti iz nič, zakaj ne bi pogledali v prej zgrajeno knjižnico? To nam bo prihranilo čas in glavobole pri delu s PHP-jem. Poglejmo si, kako narediti zelo preprost primer na vrhu API-ja Twitterja.

    Zelo priporočam Twitter Async, ki ga Jaisen Mathai na GitHub. Deluje odlično in celo ponuja nekatere res preproste primerne kode, ki jih lahko pogledamo. Zdaj lahko prenesete .zip, vendar preden pogledamo kodo, se moramo registrirati in pridobiti naše ID-je iz aplikacije Twitter.

    Registracija nove aplikacije

    Center za storitve Twitter je odličen vir za tiste, ki so začeli uporabljati API. V nekaj letih je bila napisana in napisana večkrat. Stran, ki jo želimo, je https://dev.twitter.com/apps/new. Najprej vas bo prosil, da se prijavite, potem pa morate vnesti nekaj poverilnic za novo aplikacijo.

    Ime in opis aplikacije se prikažeta, ko uporabnik odpre pooblastilo s storitvijo Twitter. Vaš spletni URL je prav tako pomemben za razlikovanje naslova tretje osebe. Lažje bi bilo delo z domeno v živo, čeprav lahko za testiranje uporabite localhost, vendar te metode ne podpiram. To je prav tako enostavno, da se prijavite za prost spletni strežnik in zaženete svoje skripte od tam.

    URL povratnega klica je naveden kot končni cilj, potem ko vaši obiskovalci sprejmejo ali zavrnejo avtorizacijo. To je vaša naloga kot programerja, da preberete odziv Twitterja in v skladu s tem pošljete sporočilo. V knjižnici Async smo že dobili nekaj poverilnic, vendar ne bodo delovale, ker je URL povratnega klica določen za zunanji blog. Če vas zanima izgradnja popolnoma povezane spletne aplikacije OAuth, sem v nadaljevanju navedel nekaj podrobnih vadnic.

    Preverite kodo

    Če uporabljate oddaljeni spletni strežnik, boste morda želeli razširiti knjižnice Async in jih naložiti v nov imenik. V nasprotnem primeru lahko preverite izvorno kodo. Verjetno ne bomo mogli vzpostaviti nove povezave. Toda praktične izkušnje z nalaganjem in urejanjem izvorne kode so vedno učni proces.

    V korenskem imeniku boste našli imenovani skript simpleTest.php. Inside je veliko PHP kod, povezanih z vključenimi knjižnicami OAuth. Ne bom mogel vse skupaj zbrati za vas, vendar pa si moramo ogledati pomemben kodni blok, da ugotovimo pomembne podrobnosti.

     

    Obstajajo 4 zelo pomembne spremenljivke za potrošniški ključ in tajni ID, skupaj z žetonom in tajnim ID-jem žetona. Tega niza 4 ne potrebujejo vse storitve API, vendar je to ustrezen protokol OAuth. Razred EpiTwitter zahteva vse 4 vrednosti kot parametre in generira URL povezave v storitvi Twitter.

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

    S tem novim dinamičnim URL-jem lahko ustvarite gumb za prijavo za svoje uporabnike. Tako bi jih najprej usmerili na varno stran API za Twitter, kjer uporabnik sprejme ali zavrne povezavo. Ne glede na njihovo izbiro se uporabnik nato ponovno preusmeri na URL povratnega klica aplikacije. Celoten odprti protokol ima zelo čisto perspektivo, ki omogoča hiter razvoj, zlasti s knjižnicami, ki so na voljo v skoraj vsakem jeziku.

    Sorodne povezave

    • vodnik hueniverse oauth 1.0
    • Nežen uvod v OAuth
    • Pogosta vprašanja OAuth
    • Priročnik za Devteracijo za Facebook
    • Enostavno Twitter OAuth Signin
    • Uporaba OAuth s storitvijo Twitter v Cocoa Objective-C
    • Poraba OAuth inteligentno v tirih

    Zaključek

    Upajmo, da vas je ta predstavitev v OAuthu zanimala za izgradnjo aplikacij prek protokola. Mnogi razvijalci si prizadevajo za takšno rešitev, OAuth 2.0 pa je lahko prihodnost medsebojno povezanih družbenih omrežij. V svojem računu na Twitterju že uporabljam več kot dva ducata povezav in sem se zelo navdušil nad dokumentacijo razvijalca!

    O tej temi je vsekakor veliko povedati. To ni nekaj, kar bi lahko celovito obdelali v eni seji. Brskajte po omrežju za več rešitev OAuth in nam sporočite svoje misli v spodnjem razpravnem prostoru.