Koduleht » Internet » Mis on OAuth Connect ja kuidas seda kasutada

    Mis on OAuth Connect ja kuidas seda kasutada

    Paljud meist puutuvad OAuthiga kokku veebi sirvimisel ja enamik meist ei tea isegi selle olemasolu. OAuth (Open Authentication) on süsteem, mis annab kolmandate isikute veebisaitidele piiratud juurdepääsu kasutajakontodele, näiteks Twitteri või Facebooki kontodele. See võimaldab külastajatel saidil suhelda, ilma et oleks vaja uut konto registreerimist või oma kasutajanime ja parooli väljastamist kolmandatele isikutele.

    Selles juhendis tahaksin tutvustada OAuth'i kontseptsiooni ja seda, kuidas seda arendajatele rakendada. OAuth-rakenduse rakendamisel on palju tehnilisi üksikasju. Minu näide on kirjutatud PHP-s, kasutades Twitteri raamatukogu pakendit, kuid sa võid kasutada peaaegu kõiki populaarseid programmeerimise API-sid Pythonist Ruby või Objective-C.

    Isegi kui kontseptsioon tunneb end salajasena, püüdke seedida nii palju kui võimalik. See on ikka veel väga salapärane tehnoloogia, mis on 2007. aastal alles koostatud. Ma ei mõistnud kindlasti, kuidas arendada OAuth'i täielikke ühendusi isegi pärast esimest paari õpetust, kuid kui sa sellega kinni jäävad, sa saad kiiresti kinni. Nüüd tuleb kõigepealt asjad maha võtta, väike sissejuhatus!

    Millised probleemid on lahendatavad?

    Kui arvate, kui palju rohkem on ühendatud Internet, on mõttekas, et kasutajad soovivad jagada teavet mitme konto vahel Facebookist Twitteri, Tumblr, Foursquare ja nüüd isegi mobiilirakendustesse, nagu Path või Instagram. Probleem, millega me praegu silmitsi seisame, on see, kuidas seda kõige turvalisemal ja lihtsaimal viisil saavutada. OAuth 1.0 on katse lahendada see ja mitmed teised probleemid võrreldes vanemate OpenID standarditega. Kasutajad sisestavad endiselt oma kasutajanime / parooli teistesse kolmandate osapoolte veebisaitidesse lihtsalt selleks, et ühendada OpenIDiga. See ei muuda seda kasutajale turvalisemaks. OAuth'i spetsifikatsioonide kohaselt ei pea kasutaja kunagi salvestama isiklikke kontoandmeid kolmanda osapoole andmebaasi.

    (Pildi allikas: Martin Hassman)

    OAuthiga suunab peamine kontooperaator (nt Twitter, Facebook) teid (kasutaja) kõigepealt autoriseerimislehele. Seejärel logib kasutaja põhivõrku ja siis kas aktsepteerib või keelab uue ühenduse kolmanda osapoole veebisaidile. Tehnoloogia on valutult lihtne ja teil on alati võimalik kontode seadeid igal ajal lubada. Pange tähele, et teie parooli ei anta kunagi kolmandale osapoolele, kes muudab selle protokolli palju turvalisemaks kui tema vaste.

    Kuidas protsess toimib

    OAuth-standardse kõne puhul on vaja kaaluda kolme osapoolt:

    • Teenusepakkuja - Peamine võrk, kust üritate andmeid tõmmata. Need annavad API vastuse, näiteks teie kasutajanime, profiili pilti, veebisaidi URL-i ja muid asju.
    • Tarbija - Kolmanda osapoole rakendus soovib andmeid vastu võtta. See oleks veebisait või mobiilirakendus, mis teeb esialgse ühenduse taotluse, seejärel tegeleb tagasisaatmisandmetega ka pärast luba.
    • Kasutaja - Isik, kes istub arvuti taga, kes suhtleb veebisaitidega, mis oleksid sina!

    OAuthi eesmärk ei ole pakkuda konkreetset veebisaitide raamatukogu kasutamiseks. See loob tegelikult “eeskirjad” avatud protokolli API loomiseks. Nii et kui me kõik sellest tehnoloogiast kasu saame, on tegelikult arendajad, kes tõesti huvi selle valdkonna vastu leiavad. Kui vajate rohkem infot, vaadake läbi parandatud v1.0 väljaanne, mis avaldati 2010. aasta aprillis.

    Turvalisus

    Kogu protsess nõuab lõppkokkuvõttes 2 erinevat võtit koos pääsukoodiga. Klahvid annavad juurteenuse pärast taotluse registreerimist - neid tuntakse sinu nime all klient ja salajane ID. Kliendi ID kantakse tavaliselt autentimise URL-i, et server saaks teie rakenduse ära tunda.

    Salajane ID on teie koodis, nii et server saab teie rakenduse identiteeti kontrollida. Samamoodi sobib serveri server teie salajase ID-ga vastavaks, nii et sa ei saa ekslikult saata Twitteri API-le Twitteri päringut või vastupidi. Kui kasutaja lubab ühenduse ja kõik võtmed sobivad, siis tagastatakse need teie veebisaidile juhuslike numbrite ja tähtede pika koodiga.

    Seda koodi kasutatakse uue loomiseks juurdepääsu tunnus. Need käituvad sarnaselt seansi muutujaga, mida saate küpsisesse salvestada, et kasutaja teie veebisaidile sisse logida. Ainus erinevus on see, et paljud teenused saadavad tagasi pääsukoodi ja salajase juurdepääsu tunnuse. Sa pead tõenäoliselt mõlemaid andmeid serverist andmete tõmbamiseks tegema. Näiteks võiks kasutaja profiili foto taotlemine koopia salvestamiseks teie enda veebisaidile.

    Twitteri OAuth raamatukogu näide

    Arendajad ei hakka sageli alustama nullist, siis miks mitte uurida varem ehitatud raamatukogu? See säästab meid ajast ja peavaludest, kui töötate PHP-ga. Vaatame Twitteri API peale üsna lihtsat näidet.

    Ma soovitan Jaisen Mathai'lt Twitterit Asyncit GitHubis. See toimib ideaalselt ja pakub isegi mõningaid tõeliselt lihtsaid näite koode, mida me saame vaadata. Nüüd saate .zipi alla laadida, kuid enne seda, kui me vaatame koodi, peame registreeruma ja saama oma rakenduse ID-sid Twitterist.

    Uue rakenduse registreerimine

    Twitter Dev Center on suurepärane ressurss neile, kes alustavad API-ga alustamist. See on kirjutatud ja ümber kirjutatud mitu korda mõne aasta jooksul. Soovitud leht on https://dev.twitter.com/apps/new. See palub teil kõigepealt sisse logida, seejärel peate uue rakenduse jaoks mõned volikirjad sisestama.

    Rakenduse nimi ja kirjeldus kuvatakse siis, kui kasutaja läheb Twitteriga autoriseerima. Teie veebiaadress on oluline ka kolmanda osapoole aadressi eristamiseks. Oleks lihtsam töötada reaalajas domeeniga, kuigi saate testimiseks kasutada localhostit, kuid ma ei toeta seda meetodit. See on sama lihtne registreeruda tasuta veebi ja käivitada oma skripte sealt.

    Tagasihelistamise URL on märgitud lõppsihtkohaks pärast seda, kui teie külastajad loa heaks kiidavad või keelduvad. See on sinu töö programmeerijana, et lugeda vastus Twitterist ja väljastada sõnum vastavalt. Async raamatukogus on meil juba olemas mõned volikirjad, kuid nad ei tööta, kuna tagasihelistamise URL on määratud välisele blogile. Kui olete huvitatud täielikult ühendatud OAuth veebirakenduse loomisest, siis olen lisanud mõned üksikasjalikud õpetused allpool.

    Tutvu koodiga

    Kui kasutate kaugjuurdepääsu veebiserverit, võite soovida Async'i raamatukogud lahti pakkida ja need uude kataloogi üles laadida. Vastasel juhul saate lihtsalt lähtekoodi vaadata. Tõenäoliselt ei saa me uut ühendust tõmmata. Kuid praktiline kogemus lähtekoodi üleslaadimisel ja redigeerimisel on alati õppeprotsess.

    Juhtkataloogis leiate nimega skripti simpleTest.php. Toas on palju PHP-koode, mis on seotud OAuth'i raamatukogudega. Ma ei suuda seda teie jaoks kokku panna, kuid me peaksime vaatama olulist koodiplokki, et täpselt tuvastada.

     

    Tarbija võtme ja salajase ID jaoks on 4 väga olulist muutujat koos sümboolse ja salajase tunnuse ID-ga. Kõik API-teenused ei vaja seda komplekti 4, kuid see on õige OAuth-protokoll. EpiTwitteri klass vajab kõiki 4 väärtust parameetritena ja genereerib ühenduse URLi Twitteris.

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

    Selle uue dünaamilise URL-i abil saate oma kasutajatele sisse logida. See suunaks need kõigepealt turvalise Twitteri API lehele, kus kasutaja kas teie ühendus võtab vastu või keelab selle. Sõltumata nende valikust saab kasutaja seejärel uuesti teie rakenduse tagasihelistamise URL-ile. Kogu avatud protokollil on väga puhas perspektiiv, mis võimaldab kiiret arengut, eriti raamatukogudes, mis on saadaval praktiliselt igas keeles.

    seotud lingid

    • hueniverse oauth 1.0 juhend
    • Õrn tutvustus OAuthile
    • OAuth KKK
    • Facebooki autentimisseadme juhend
    • Lihtne Twitter OAuth Signin
    • OAuth'i kasutamine Twitteriga kakao-eesmärgi-C puhul
    • OAuthi tarbimine raadiuses

    Järeldus

    Loodetavasti on see sissejuhatus OAuthisse sulle huvi pakkuda rakenduste loomiseks üle protokolli. Paljud arendajad on püüdnud just sellist lahendust ja OAuth 2.0 võib olla omavahel ühendatud sotsiaalsete võrgustike tulevik. Ma kasutan oma Twitteri kontos juba üle kahekümne ühenduse ja arendaja dokumendid on muljet avaldanud!

    On selge, et sellel teemal on palju öelda. See ei ole midagi, mida te saaksite ühes istungis täielikult töödelda. Sirvige võrku rohkem OAuth-lahendusi ja andke meile teada oma mõtted allpool olevas arutelualal.