14 komentářů k článku OAuth – nový protokol pro autentizaci k vašemu API:

  1. Rado2

    Naco?
    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?

    1. Martin MalýAutor příspěvku

      Re: Naco?
      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.

  2. Anonym

    Podrobnější vysvětlení
    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?

    1. Martin Hassman

      Re: Podrobnější vysvětlení
      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éž.

    2. Martin MalýAutor příspěvku

      Re: Podrobnější vysvětlení
      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.

        1. Anonym

          Re: Podrobnější vysvětlení
          Jěště takto, nejlepší by bylo to ukázat na konkrétním případě implementace.

  3. shMoula

    Flickr
    Takhle funguje napr overeni nove aplikace pro flickr (kFlickr) a mam dojem, ze takto se autorizuji i externi aplikace na facebooku.

  4. dc

    poznamka
    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).

    1. Martin MalýAutor příspěvku

      Re: poznamka
      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?

    2. Anonym

      Re: poznamka
      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

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=2870