Početna » Internet » Što je OAuth Connect i kako ga koristiti

    Što je OAuth Connect i kako ga koristiti

    Mnogi od nas dolaze u kontakt s OAuthom prilikom pregledavanja weba, a većina nas nije ni svjesna postojanja. OAuth (otvorena provjera autentičnosti) je sustav koji web-lokacijama trećih strana dodjeljuje ograničen pristup korisničkim računima, primjerice vašim Twitter ili Facebook računima. Omogućuje posjetiteljima interakciju unutar web-mjesta bez potrebe za registracijom novog računa ili puštanjem vašeg korisničkog imena i lozinke trećim stranama.

    U ovom vodiču želim predstaviti koncept OAuth i kako se može primijeniti na programere. Postoji mnogo tehničkih detalja koji su uključeni u implementaciju vaše vlastite OAuth aplikacije. Moj primjer će biti napisan u PHP-u pomoću omotača knjižnice Twitter, ali možete koristiti gotovo sve popularne API-je za programiranje od Pythona do Ruby-a ili Objective-C.

    Čak i ako se koncept osjeća zagonetno, pokušajte probaviti što više možete. To je još uvijek vrlo tajanstvena tehnologija, tek je izrađena još 2007. godine. Sigurno nisam razumjela kako razviti potpune OAuth veze čak i nakon prvih nekoliko uputa, ali ako se držite toga, brzo ćete se uhvatiti. Sada najprije razbijte stvari, mali uvod!

    Koje probleme možemo riješiti?

    Ako razmislite o tome koliko je više Interneta postalo povezano, ima smisla da korisnici žele dijeliti informacije između više računa od Facebooka u Twitteru, Tumblr, Foursquare, a sada čak iu mobilnim aplikacijama kao što su Path ili Instagram. Problem s kojim se sada suočavamo je kako to postići na najsigurniji i najjednostavniji mogući način. OAuth 1.0 je pokušaj rješavanja ovog i brojnih drugih problema u usporedbi sa starijim OpenID standardima. Korisnici još uvijek unose svoje korisničko ime / zaporku na druge web-lokacije trećih strana kako bi se povezali s OpenID-om. To ne čini ga sigurnijim za korisnika. Pod OAuth specifikacijama korisnik nikada ne mora pohranjivati ​​podatke osobnih računa u bazu podataka treće strane.

    (Izvor slike: Martin Hassman)

    Uz OAuth, glavni davatelj računa (npr. Twitter, Facebook) najprije će vas (korisnika) preusmjeriti na stranicu za autorizaciju. Korisnik se zatim prijavljuje na glavnu mrežu, a zatim prihvaća ili odbija novu vezu na web-lokaciju treće strane. Tehnologija je bezbolno jednostavna i uvijek možete neovlašteno povezivati ​​veze s postavkama računa u bilo kojem trenutku. Primijetite da se vaša lozinka nikada ne daje trećoj strani, što ovaj protokol čini mnogo sigurnijim od njegovog partnera.

    Kako proces funkcionira

    U standardnom OAuth pozivu treba uzeti u obzir 3 osobe:

    • Davatelj usluga - Glavna mreža s koje pokušavate povući podatke. Pružaju API odgovor, kao što su korisničko ime, slika profila, URL web-lokacije i druge stvari.
    • Potrošač - Aplikacija treće strane koja želi primati podatke. To bi bila web-lokacija ili mobilna aplikacija koja čini početni zahtjev za povezivanje, a zatim nakon odobrenja obrađuje povratne podatke.
    • Korisnik - Osoba koja sjedi iza računala u interakciji s web-mjestima koja bi bila vi!

    Svrha usluge OAuth nije pružiti određenu biblioteku za upotrebu web-lokacija. To zapravo uspostavlja “pravila” za izgradnju API-ja otvorenog protokola. Dakle, dok svi mi možemo imati koristi od ove tehnologije, zapravo su programeri koji će zaista pronaći interes za ovo područje. Ako trebate više informacija pogledajte revidirano izdanje v1.0 izdano u travnju 2010.

    Suočavanje sa sigurnošću

    Cjelokupni proces u konačnici zahtijeva 2 različita ključa uz pristupni token. Ključevi dobivate od root usluge nakon što registrirate aplikaciju - ona su poznata kao vaša klijent i tajni ID. ID klijenta obično se prelazi u URL za provjeru autentičnosti kako bi poslužitelj mogao prepoznati vašu aplikaciju.

    Tajni ID čuva se u vašem kodu tako da poslužitelj može potvrditi identitet vaše aplikacije. Slično tome, udaljeni poslužitelj će uskladiti vaš tajni ID s vlastitim, tako da nećete pogrešno poslati zahtjev za Twitter na Facebookov API ili obrnuto. Ako korisnik autorizira vezu i svi se ključevi podudaraju, onda se vraćaju na vašu web-lokaciju s dugim kodom slučajnih brojeva i slova.

    Ovaj se kôd koristi za generiranje novog pristupni token. One se ponašaju slično varijabli sesije koju možete pohraniti u kolačić kako bi korisnik ostao prijavljen na vašu web-lokaciju. Jedina razlika je u tome što će mnoge usluge poslati natrag pristupni token i tajni pristupni token. Vjerojatno trebate oboje za povlačenje podataka s poslužitelja. Primjer bi mogao biti zahtjev za fotografiju profila korisnika za spremanje kopije na vlastitu web-lokaciju.

    Primjer knjižnice za Twitter OAuth

    Programeri često ne počinju ispočetka pa zašto ne biste pogledali u prethodno izgrađenu knjižnicu? To će nam uštedjeti vrijeme i glavobolje pri radu s PHP-om. Pogledajmo u stvaranju vrlo jednostavnog primjera na vrhu Twitter API-ja.

    Ja visoko preporučiti Twitter Async Jaisen Mathai na GitHub. Radi savršeno i čak pruža neke stvarno jednostavne primjerke koje možemo pogledati. Za sada možete preuzeti .zip, ali prije nego što pogledamo kod, trebamo se registrirati i dobiti naše ID-ove aplikacija iz Twittera.

    Registriranje nove aplikacije

    Twitter Dev Center je izvrstan izvor za one koji su tek počeli koristiti API. Pisana je i prepisivana mnogo puta tijekom nekoliko godina. Stranicu koju želimo je https://dev.twitter.com/apps/new. Od vas će se tražiti da se prvo prijavite, a zatim morate unijeti neke vjerodajnice za novu aplikaciju.

    Naziv i opis aplikacije prikazuju se kada korisnik ode na autorizaciju putem usluge Twitter. Vaš URL na webu također je važan za razlikovanje adrese treće strane. Bilo bi lakše raditi s domenom uživo, iako možete koristiti localhost za testiranje, ali ne potičem ovu metodu. To je jednako lako prijaviti za besplatni web host i pokrenuti svoje skripte od tamo.

    URL za povratni poziv se navodi kao krajnje odredište nakon što posjetitelji prihvate ili uskrate autorizaciju. To je vaš posao kao programer za čitanje odgovora iz Twittera i slanje poruke u skladu s tim. U Async knjižnici već smo dobili neke vjerodajnice, ali neće funkcionirati jer je URL povratnog poziva određen za vanjski blog. Ako ste zainteresirani za izgradnju potpuno povezane web-aplikacije OAuth, u nastavku su navedeni neki detaljni vodiči.

    Provjerite kod

    Ako koristite udaljeni web-host, možda biste htjeli raspakirati Async knjižnice i učitati ih u novi direktorij. Inače možete samo provjeriti izvorni kod. Vrlo je vjerojatno da ionako nećemo moći povući novu vezu. Međutim, praktično iskustvo s učitavanjem i uređivanjem izvornog koda je uvijek proces učenja.

    U korijenskom direktoriju ćete pronaći ime pod nazivom simpleTest.php. Unutra je puno PHP kodova vezanih uz OAuth knjižnice. Neću moći sve to složiti za vas, ali trebamo pogledati važan blok koda da bismo odredili značajne detalje.

     

    Postoje 4 vrlo važne varijable za ključ potrošača i tajni ID, zajedno s tokenom i tajnim ID-om tokena. Nisu svi API servisi potrebni ovaj skup od 4, ali to je ispravan OAuth protokol. Klasa EpiTwitter zahtijeva sve 4 vrijednosti kao parametre i generira URL veze u Twitteru.

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

    S ovim novim dinamičkim URL-om možete izraditi gumb za prijavu za svoje korisnike. To bi ih najprije usmjerilo na sigurnu Twitter API stranicu na kojoj korisnik prihvaća ili odbija vašu vezu. Bez obzira na njihov izbor, korisnik se zatim ponovno preusmjerava na URL za povratni poziv aplikacije. Cijeli otvoreni protokol ima vrlo čistu perspektivu koja omogućuje brz razvoj, osobito s dostupnim knjižnicama u gotovo svakom jeziku.

    povezani Linkovi

    • hueniverse oauth 1.0 vodič
    • Blagi uvod u OAuth
    • OAuth FAQ
    • Vodič za razvoj Dev autentifikacije na Facebooku
    • Jednostavno Twitter OAuth Signin
    • Korištenje OAuth-a s Twitter-om u Cocoa Objective-C
    • Konzumiranje OAuth-a inteligentno u tračnicama

    Zaključak

    Nadam se da vas je ovaj uvod u OAuth zainteresirao za izgradnju aplikacija preko protokola. Mnogi programeri teže upravo takvom rješenju, a OAuth 2.0 može biti budućnost međusobno povezanih društvenih mreža. Već koristim više od dvadeset veza u moj Twitter račun i doista sam impresioniran dokumentacijom razvojnog programera!

    Jasno je da ima puno toga za reći na ovu temu. To nije nešto što možete u potpunosti obraditi u jednom sjedenju. Pregledajte mrežu za više rješenja OAuth i javite nam svoje mišljenje u području za raspravu u nastavku.