Domovská » Internet » Co je OAuth Connect a jak jej používat

    Co je OAuth Connect a jak jej používat

    Mnozí z nás přicházejí do styku s OAuthem při procházení webu a většina z nás si ani neuvědomuje jeho existenci. OAuth (Open Authentication) je systém, který uděluje webovým stránkám třetích stran omezený přístup do uživatelských účtů, například účtů Twitter nebo Facebook. To umožňuje návštěvníkům komunikovat v rámci stránek bez nutnosti registrace nového účtu nebo uvolnění vašeho uživatelského jména a hesla třetím stranám.

    V této příručce bych chtěl představit koncept OAuth a jak se může vztahovat na vývojáře. Při implementaci vlastní aplikace OAuth existuje mnoho technických detailů. Můj příklad bude napsán v PHP pomocí wrapperu knihovny Twitter, ale můžete použít téměř všechny populární programovací API od Pythonu po Ruby nebo Objective-C.

    I když se tento koncept jeví jako záhadný, pokuste se strávit co nejvíce. Je to stále velmi záhadná technologie, která byla právě vypracována v roce 2007. Určitě jsem nepochopila, jak rozvíjet plnohodnotné připojení OAuth dokonce i po mých prvních několika tutoriálech, ale pokud se s tím budete držet, chytíte rychle. Nejdřív je to první, co by se dalo vykopnout, malý úvod!

    Jaké problémy můžeme vyřešit?

    Pokud se domníváte, že čím více je internet propojen, má smysl pouze to, že uživatelé budou chtít sdílet informace mezi více účty z Facebooku na Twitter, Tumblr, Foursquare a nyní i do mobilních aplikací, jako je Path nebo Instagram. Problém, kterému nyní čelíme, je, jak toho dosáhnout co nejbezpečnějším a nejjednodušším možným způsobem. OAuth 1.0 je pokus o vyřešení tohoto a mnoha dalších problémů ve srovnání se staršími standardy OpenID. Uživatelé stále zadávají své uživatelské jméno / heslo na jiné webové stránky třetích stran, aby se mohli připojit do OpenID. To neznamená, že je pro uživatele bezpečnější. Podle specifikace OAuth uživatel nikdy nepotřebuje ukládat žádná data osobních účtů do databáze třetích stran.

    (Obrázek Zdroj: Martin Hassman)

    Hlavní poskytovatel účtu (např. Twitter, Facebook) vás s uživatelem OAuth přesměruje (uživatele) na stránku autorizace. Uživatel se pak přihlásí do hlavní sítě a poté přijme nebo odmítne nové připojení na webovou stránku třetí strany. Tato technologie je bezbolestně jednoduchá a připojení můžete kdykoli neautorizovat z nastavení účtu. Všimněte si, že vaše heslo není nikdy poskytnuto třetí straně, což činí tento protokol mnohem bezpečnějším než jeho protějšek.

    Jak proces funguje

    Ve standardním volání OAuth je třeba zvážit 3 strany:

    • Poskytovatel služeb - Hlavní síť, ze které se pokoušíte stahovat data. Poskytují odpověď API, jako je uživatelské jméno, obrázek profilu, adresa URL webové stránky a další položky.
    • Spotřebitel - Aplikace třetí strany, která chce přijímat data. Jednalo by se o webovou stránku nebo mobilní aplikaci, která provede počáteční požadavek na připojení, a po zpracování také zpracuje data vrácení.
    • Uživatel - Osoba sedící za počítačem, interakci s webovými stránkami, které by vás!

    Účelem OAuth není poskytnout konkrétní knihovnu pro webové stránky, které mají být používány. Vlastně to nastavuje “pravidla” pro vytvoření otevřeného protokolu API. Zatímco z této technologie můžeme těžit všichni, je to vlastně vývojář, který o tuto oblast skutečně najde zájem. Pokud potřebujete více informací, podívejte se na revidované vydání v1.0 vydané v dubnu 2010.

    Tváří v tvář bezpečnosti

    Celý proces nakonec vyžaduje 2 různé klíče spolu s přístupovým tokenem. Klíče jsou poskytovány službou root po registraci aplikace - tyto jsou označovány jako vaše klienta a tajné ID. ID klienta se obecně předává do ověřovací adresy URL, takže server může vaši aplikaci rozpoznat.

    Tajný identifikátor je uložen ve vašem kódu, takže server může ověřit identitu vaší aplikace. Stejně tak vzdálený server bude odpovídat vašemu tajnému ID s vlastním, takže omylem neposíláte žádost o Twitter na API služby Facebook nebo naopak. Pokud uživatel autorizuje spojení a všechny klíče se shodují, pak se vrátí na vaše webové stránky s dlouhým kódem náhodných čísel a písmen.

    Tento kód se používá k vytvoření nového token přístupu. Tyto funkce se chovají podobně jako proměnná relace, kterou můžete uložit do souboru cookie, aby byl uživatel přihlášen na vaše webové stránky. Jediný rozdíl je, že mnoho služeb odešle zpět Token přístupu a Token tajného přístupu. Pravděpodobně budete potřebovat obě tyto údaje, abyste mohli ze serveru vytáhnout všechna data. Příkladem může být požadování profilové fotografie uživatele pro uložení kopie na vaše vlastní webové stránky.

    Příklad knihovny pro Twitter OAuth

    Vývojáři nejsou často pravděpodobně začínají od nuly, tak proč se podívat do dříve vytvořené knihovny? To nám ušetří čas a bolestí hlavy při práci s PHP. Podívejme se na vytvoření opravdu jednoduchého příkladu na vrcholu rozhraní API služby Twitter.

    Velmi doporučuji Twitter Async od Jaisen Mathai na GitHub. Funguje to dokonale a dokonce poskytuje některé velmi jednoduché příklady kódů, na které se můžeme podívat. Nyní si můžete stáhnout .zip, ale než se podíváme do kódu, musíme se zaregistrovat a získat ID aplikace od Twitteru.

    Registrace nové aplikace

    Twitter Dev Center je skvělý zdroj pro ty, kteří začínají na API. V průběhu několika let byla mnohokrát napsána a přepsána. Stránka, kterou chceme, je https://dev.twitter.com/apps/new. Zpočátku vás požádá o přihlášení, pak musíte zadat některá pověření pro novou aplikaci.

    Název a popis aplikace se zobrazí, když uživatel přejde k autorizaci pomocí služby Twitter. Vaše webová adresa URL je také důležitá pro rozlišení adresy třetí strany. Bylo by jednodušší pracovat s živou doménou, i když můžete použít localhost pro testování, ale tuto metodu nezískávám. Je to stejně snadné se zaregistrovat do volného web hostitele a spouštět skripty odtamtud.

    Adresa URL pro zpětné volání je uvedena jako konečný cíl poté, co vaši návštěvníci buď autorizaci přijmou nebo odmítnou. Je to vaše práce jako programátor číst odpověď od Twitter a výstup zprávy odpovídajícím způsobem. V knihovně Async jsme již zavedli některá pověření, ale nebudou fungovat, protože adresa URL zpětného volání je určena pro externí blog. Máte-li zájem o vybudování plně připojené webové aplikace OAuth, uvedl jsem několik podrobných návodů níže.

    Podívejte se na kód

    Pokud používáte vzdáleného webového hostitele, můžete rozbalit knihovny Async a nahrát je do nového adresáře. V opačném případě se můžete podívat na zdrojový kód. Je pravděpodobné, že nebudeme schopni vytáhnout nové připojení. Praktické zkušenosti s nahráváním a editací zdrojového kódu jsou však vždy procesem učení.

    V kořenovém adresáři najdete název skriptu simpleTest.php. Uvnitř je celá řada kódů PHP, které se týkají knihoven OAuth. Nebudu moci dát to všechno dohromady, ale měli bychom se podívat na důležitý kódový blok, abychom zjistili pozoruhodné detaily.

     

    K dispozici jsou 4 velmi důležité proměnné pro klíč zákazníka a tajné ID, spolu s tokenem a tajným ID tokenu. Ne všechny služby API budou vyžadovat tuto sadu 4, ale je to správný protokol OAuth. Třída EpiTwitter vyžaduje všechny 4 hodnoty jako parametry a generuje adresu URL spojení do služby Twitter.

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

    Pomocí této nové dynamické adresy URL můžete vytvořit uživatelské tlačítko pro přihlášení. To by je nasměrovalo nejprve na bezpečnou stránku API služby Twitter, kde uživatel buď přijme nebo odmítne vaše připojení. Bez ohledu na jejich volbu se pak uživatel přesměruje na adresu URL zpětného volání aplikace. Celý otevřený protokol má velmi čistou perspektivu, která umožňuje rychlý rozvoj, zejména u knihoven dostupných prakticky v každém jazyce.

    související odkazy

    • hueniverse oauth 1.0 průvodce
    • Gentle Úvod do OAuth
    • OAuth FAQ
    • Facebook Authentication Dev Guide
    • Jednoduchý Twitter OAuth Signin
    • Použití OAuth s Twitter v Cocoa Objective-C
    • Konzumace OAuth Intelligently v Rails

    Závěr

    Doufejme, že tento úvod do OAuth vás zajímá o budování aplikací nad protokolem. Mnoho vývojářů se snaží o takové řešení a OAuth 2.0 může být budoucností propojených sociálních sítí. Používám více než dvě desítky spojení do mého účtu Twitter a byl jsem opravdu ohromen vývojářskou dokumentací!

    Je jasné, že k tomuto tématu máme co říci. Není to něco, co byste mohli plně zpracovat v jednom sezení. Projděte si síť pro více řešení OAuth a dejte nám vědět své myšlenky v níže uvedené diskusní oblasti.