Nie je mi celkom jasne naco to vlastne je.
Je to preto, aby v databaze na serveri nejakej sluzby neboli moje prihlasovacie mena?
Bude tam "len" nejaky kluc ktorym sa bude sluzba autorizovat?
Ked niekto hackne ten server tak nemoze ten kluc pouzit?
Ked ta sluzba bude chciet zneuzit moj account, nestaci jej na to ten kluc?
Názory k článku
OAuth - nový protokol pro autentizaci k vašemu API
25. 11. 2008 12:51
Nový
Re: Naco?
celé vlákno
Bude tam "len" nejaky kluc ktorym sa bude sluzba autorizovat?
Ne tak zcela přesně. Ten klíč tam bude jen po dobu nezbytně nutnou na provedení požadovaných operací. Nemá smysl ho kamkoli do databáze ukládat, protože jeho doba platnosti je omezená.
Ked niekto hackne ten server tak nemoze ten kluc pouzit?
Pokud někdo hackne server, tak může použít celý mechanismus "transparentně" - tj. nechat oběti, aby se autorizovaly na té cizí službě, a pak získá API klíč. Ale, a to je princip celého OAuth, nezíská jméno a heslo, se kterým by dostala plnou kontrolu nad účtem (včetně zrušení účtu, změny hesel, platebních operací apod.)
Ked ta sluzba bude chciet zneuzit moj account, nestaci jej na to ten kluc?
Operace s účtem jsou různě "závažné". Služba může použít (nebo zneužít) ty operace, které jí cílový server umožní použít přes API, a u kterých uživatel souhlasí s tím, že je služba může použít. API většinou poskytuje jen omezenou množinu operací, ty nejzávážnější to nebývají. U popisovaného příkladu by např. mohla poslat vaším jménem příspěvek na Twitter (pokud by měla váš souhlas s posíláním článků). Nemůže ale účet "unést", nemůže ho smazat, nezjistí vaše heslo, takže škody jsou, v porovnání s "předáním hesla", relativně malé.
A to je celý důvod: Minimalizovat případné škody tím, že uživatel nemusí prozradit své heslo.
Ne tak zcela přesně. Ten klíč tam bude jen po dobu nezbytně nutnou na provedení požadovaných operací. Nemá smysl ho kamkoli do databáze ukládat, protože jeho doba platnosti je omezená.
Ked niekto hackne ten server tak nemoze ten kluc pouzit?
Pokud někdo hackne server, tak může použít celý mechanismus "transparentně" - tj. nechat oběti, aby se autorizovaly na té cizí službě, a pak získá API klíč. Ale, a to je princip celého OAuth, nezíská jméno a heslo, se kterým by dostala plnou kontrolu nad účtem (včetně zrušení účtu, změny hesel, platebních operací apod.)
Ked ta sluzba bude chciet zneuzit moj account, nestaci jej na to ten kluc?
Operace s účtem jsou různě "závažné". Služba může použít (nebo zneužít) ty operace, které jí cílový server umožní použít přes API, a u kterých uživatel souhlasí s tím, že je služba může použít. API většinou poskytuje jen omezenou množinu operací, ty nejzávážnější to nebývají. U popisovaného příkladu by např. mohla poslat vaším jménem příspěvek na Twitter (pokud by měla váš souhlas s posíláním článků). Nemůže ale účet "unést", nemůže ho smazat, nezjistí vaše heslo, takže škody jsou, v porovnání s "předáním hesla", relativně malé.
A to je celý důvod: Minimalizovat případné škody tím, že uživatel nemusí prozradit své heslo.
uživatel si přál zůstat v anonymitě
---.techcomnet.cz
25. 11. 2008 12:52
Nový
Podrobnější vysvětlení
celé vlákno
Samotnému OAuth je věnován asi jeden odstavec se stručným co to je a ještě stručnějším jak to funguje. Podrobnější popis by nebyl? Proč používat tohle a ne něco vlastního? Jde snad o první z mnoha článků o OAuth?
25. 11. 2008 13:02
Nový
Re: Podrobnější vysvětlení
celé vlákno
Proč používat tohle a ne něco vlastního?
V tom je význam standardů. Pokud všichni podporují jeden mechanismus, tak spolu můžou všichni snadno komunikovat. Vlastní řešení je určitě možné, ale pak musíte přesvědčit druhou stranu, aby je také implementovala. Oč je pak snazší použít hotovou knihovnu pro OAuth navíc, když druhá strana možná už dávno udělala totéž.
25. 11. 2008 13:08
Nový
Re: Podrobnější vysvětlení
celé vlákno
Při přednášce na WebExpu mi lidé říkali, že o technologiích, o nichž jsem mluvil (OAuth, OpenID, LiveID apod.) slyšeli, ale že jim nebylo jasné k čemu jsou a na co to je, a že to je tedy určitě zbytečné a zase jen nějaká komplikace a klacek pod nohy poctivým vývojářům. Proto jsem tedy s dovolením začal vysvětlením, proč je pro určité specifické případy potřeba nová autentifikační metoda a na příkladu ukazuju, jak by měla fungovat. Berte to tedy prosím jako seznámení se zajímavostí, o níž mnozí slyšeli, ale nechápali, k čemu by jim byla. Proč používat tohle a ne něco vlastního? No asi ze stejného důvodu, proč (například) použít SSL a nevymýšlet vlastní šifrovací metody: V 95% případů lze použít standardní řešení. OAuth je nabízený standard. Podrobnější popis by jistě byl, pokud bude zájem.
uživatel si přál zůstat v anonymitě
---.techcomnet.cz
25. 11. 2008 13:36
Nový
Re: Podrobnější vysvětlení
celé vlákno
Jop, zájem by byl.
uživatel si přál zůstat v anonymitě
---.techcomnet.cz
25. 11. 2008 13:37
Nový
Re: Podrobnější vysvětlení
celé vlákno
Jěště takto, nejlepší by bylo to ukázat na konkrétním případě implementace.
25. 11. 2008 13:42
Nový
Re: Podrobnější vysvětlení
celé vlákno
Dobrá... Bude stačit ukázka implementace v PHP? :)
Vážným zájemcům zatím mohu doporučit Google OAuth playground a některé techničtější principy by mohl osvětlit třeba článek Using OAuth with the Google Data APIs.
Vážným zájemcům zatím mohu doporučit Google OAuth playground a některé techničtější principy by mohl osvětlit třeba článek Using OAuth with the Google Data APIs.
25. 11. 2008 13:14
Nový
Flickr
celé vlákno
Takhle funguje napr overeni nove aplikace pro flickr (kFlickr) a mam dojem, ze takto se autorizuji i externi aplikace na facebooku.
dc (neregistrovaný)
---.mcrn.sk
25. 11. 2008 21:54
Nový
poznamka
celé vlákno
Dve veci. Jenak mashup je uz fakt trosicka moc.Az tak by ste jazyk prznit nemuseli,aj ked je to Vasa cestina.
A druha vec, cim dalej tym je mi viac zle z celeho web developmentu a smeru ktorym sa to ubera.Prestavam pomalicky chapat,a sam mam chut sa otocit celemu tomuto smeru chrbtom, preco sa jednoduche veci stale robia zlozitejsie a zlozitejsie.Preco sa silou mocou snazime znasilnovat protokol a vobec cely web k tomu aby fungoval ako bezne desktopove aplikacie ked tie tu uz davno su.Ked si zratam vsetky aktualne technologie a postupy ktore sa pouzivaju pri webe tak uz zdaleka to neni nejaky rapid development, a zacinaju nevyhody prevazovat nad vyhodami.Bohuzial ani na desktope to neni o moc lepsie (.NET a java urobili svoje).
A druha vec, cim dalej tym je mi viac zle z celeho web developmentu a smeru ktorym sa to ubera.Prestavam pomalicky chapat,a sam mam chut sa otocit celemu tomuto smeru chrbtom, preco sa jednoduche veci stale robia zlozitejsie a zlozitejsie.Preco sa silou mocou snazime znasilnovat protokol a vobec cely web k tomu aby fungoval ako bezne desktopove aplikacie ked tie tu uz davno su.Ked si zratam vsetky aktualne technologie a postupy ktore sa pouzivaju pri webe tak uz zdaleka to neni nejaky rapid development, a zacinaju nevyhody prevazovat nad vyhodami.Bohuzial ani na desktope to neni o moc lepsie (.NET a java urobili svoje).
26. 11. 2008 1:32
Nový
Re: poznamka
celé vlákno
Ad slovo "mashup": Je běžné, že jazyk přebírá slova z jiných jazyků, pokud sám pojmenování nemá. Zde pojmenování není, a pokud jsou navrhované české ekvivalenty ("míchanice"), tak jsou zase pro lidi z oboru často nesrozumitelné (viz výrazy z 80. let: Stykové rozhraní, režim výměny). Slovo "mashup" se navíc nebrání české flexi ani odvozování (mashupy, mashupem, mashupový), takže bych se proti výrazu "prznění" docela ohradil, použití slova "mashup" tu je zcela na místě. Jen tak pro zajímavost: Jaký výraz používá pro tento jev slovenština?
Ad zbytek: Věřte nebo ne, souhlasím s vámi. Opravdu si myslím, že "ohýbání" webu do podoby desktopové aplikace a např. stavění uživatelského rozhraní nad HTML je zhůvěřilost a slepá ulička, kudy rozhodně cesta vést možná může, ale nesmí! Na druhou stranu mám intenzivní pocit, že jste si spletl článek, protože zrovna OAuth nemá s tím, co píšete, nic moc společného. Žádná "snaha ohýbat protokol", nic o rapid developmentu, žádná samoúčelná technologická exhibice, pouze dohoda "jak autentifikovat uživatele u cizí služby a neprozradit přitom heslo". Mám dojem, že jste dočetl ke slovu "mashup", v tu chvíli jste si OAuth hodil do škatulky s nápisem "Web 2.0 nesmysly" a přišel jste si do komentářů ulevit. Mýlím se moc?
Ad zbytek: Věřte nebo ne, souhlasím s vámi. Opravdu si myslím, že "ohýbání" webu do podoby desktopové aplikace a např. stavění uživatelského rozhraní nad HTML je zhůvěřilost a slepá ulička, kudy rozhodně cesta vést možná může, ale nesmí! Na druhou stranu mám intenzivní pocit, že jste si spletl článek, protože zrovna OAuth nemá s tím, co píšete, nic moc společného. Žádná "snaha ohýbat protokol", nic o rapid developmentu, žádná samoúčelná technologická exhibice, pouze dohoda "jak autentifikovat uživatele u cizí služby a neprozradit přitom heslo". Mám dojem, že jste dočetl ke slovu "mashup", v tu chvíli jste si OAuth hodil do škatulky s nápisem "Web 2.0 nesmysly" a přišel jste si do komentářů ulevit. Mýlím se moc?
uživatel si přál zůstat v anonymitě
---.59.48.77.static.gemnet.cz
2. 12. 2008 3:57
Nový
Re: poznamka
celé vlákno
ale vubec, v tomto pripade (stejne tak jako ku prikladu v pripade REST) se nejedna o zadne "ohybani protokolu"
naopak (a jde to pekne videt treba prave na RESTu), protokol se vyuziva plne (nejenom metody GET a POST), a tak, jak byl puvodne zamyslen. V pripade OAuth jde jen o to, ze autentikaci (authentication) provede sam uzivatel, jehoz si sluzby mezi sebou presmerovavaji (header('Location: ...'), a prenasen je pouze jednoduchy 'token', jehoz 'schopnosti' jsou navic omezeny jak v case, tak co se funkcnosti tyce. Tedy pokud jsem to pochopil spravne
naopak (a jde to pekne videt treba prave na RESTu), protokol se vyuziva plne (nejenom metody GET a POST), a tak, jak byl puvodne zamyslen. V pripade OAuth jde jen o to, ze autentikaci (authentication) provede sam uzivatel, jehoz si sluzby mezi sebou presmerovavaji (header('Location: ...'), a prenasen je pouze jednoduchy 'token', jehoz 'schopnosti' jsou navic omezeny jak v case, tak co se funkcnosti tyce. Tedy pokud jsem to pochopil spravne
Martin (neregistrovaný)
---.nic.cz
24. 7. 2009 17:00
Nový
Jak se to liší od OpenID?
celé vláknoJak se to liší od OpenID? Proč místo OAuth nepoužít OpenID? Zajímavá autentizace je přes dongl Yubico.