Bezpečnosť

Správa prihlásenia OAuth

Správa prihlásenia OAuth

Dôležité veci, ktoré potrebujete vedieť o OAuth

OAuth je niečo, o čom musí vedieť každý vývojár. Ak vyrábate samostatnú aplikáciu alebo aplikáciu tretej strany, ktorá sa integruje s nejakou inou službou HTTP, potrebujete vedieť, ako OAuth funguje, aby poskytla vašim používateľom ľahko použiteľnú a dobre integrovanú službu.

Cieľom je umožniť klientskym aplikáciám obmedzený prístup k informáciám o používateľoch bez toho, aby ste niekedy museli zdieľať prihlasovacie údaje alebo heslo. Rámec OAuth je zodpovedný za výmeny, ktoré sú potrebné predtým, ako aplikácia získa vaše informácie.

Predpokladajme, že sa chcete zaregistrovať do služby Dev.do (čo je skvelé miesto pre vývojárov na výmenu nápadov) vám umožnia zaregistrovať sa pomocou svojho účtu GitHub. Ako sa to stalo?? Ako by vedeli, že vlastníte účet GitHub, s ktorým sa registrujete?

Ešte dôležitejšie je, ako zabezpečíte, aby Dev.to nie je prekročenie svojich hraníc, pokiaľ ide o vaše informácie uložené v GitHub?

Účastníci protokolu OAuth

Zostaneme pri príklade doplnku GitHub editora Atomu, ktorý umožňuje vývojárom tlačiť kód na GitHub priamo pomocou rozhrania Atom. Dôvod napríklad: GitHub neskrýva detaily za scénou a vy vidíte, čo sa deje pod kapotou.

Predtým, ako sa dostaneme k detailom fungovania OAuth. Pripravme pôdu tým, že rozpoznáme všetkých účastníkov výmeny:

  1. Vlastník zdroja alebo používateľ: Tento používateľ je ten, ku ktorému je potrebné získať prístup k informáciám o účte (čítať a / alebo zapisovať), aby fungoval s aplikáciou.
  2. Zákazník: Toto je aplikácia, ktorá žiada o vaše povolenie na prístup k vašim informáciám z inej služby. V našom príklade je klientom editor Atom.
  3. Zdroj: Zdrojom sú vaše skutočné informácie umiestnené na serveroch v nejakom vzdialenom umiestnení. Prístup k nim je možný cez API, ak má klient príslušné oprávnenie.
  4. Autorizačný server: Tiež prepojené s pomocou API. Tento server je udržiavaný poskytovateľom služieb (v našom príklade GitHub). Autorizačný server aj server prostriedkov sa označujú ako API, pretože sú spravované jednou entitou, v tomto prípade GitHub, a vystavené ako API vývojárovi klienta.

Registrácia OAuth

Proces sa začína pri vývoji klientskej aplikácie. Môžete ísť k poskytovateľovi prostriedkov a zaregistrovať sa na jeho vývojárskom portáli alebo v sekcii API na webe. Budete tiež musieť poskytnúť adresu URL spätného volania, na ktorú bude používateľ presmerovaný po prijatí alebo odmietnutí udelenia potrebných povolení aplikácii.

Napríklad ak prejdete na GitHub → Nastavenia → Nastavenia vývojára a kliknete na „Registrovať novú aplikáciu“. To by vám poskytlo a ID klienta ktoré je možné zverejniť a a Tajomstvo klienta ktoré musí vývojárska organizácia udržiavať ... dobre v tajnosti.

Po poskytnutí ID klienta a tajomstva vám, vývojárovi, vám musieť udržiavajte ich v bezpečí, pretože sa znova nezobrazia na autorizačnom serveri. To isté platí pre všetky ďalšie žetóny, ktoré by sa hodili okolo (Viac o žetónoch neskôr).

Pracovný tok OAuth 2

Zaregistrovali ste svoju prihlášku. Bol vyvinutý a testovaný a teraz sú používatelia pripravení ho používať. Novému používateľovi sa pri registrácii do vašej služby zobrazí možnosť „Prihlásiť sa pomocou GitHubu“. Toto je prvý krok.

Krok 1: Žiadosť o autorizáciu

Žiadosť o autorizáciu je časť, v ktorej sa na webovej stránke zdroja otvorí nové okno (alebo podobná výzva), ktorá žiada používateľov o prihlásenie. Ak ste na danom zariadení už prihlásení, tento krok sa preskočí a GitHub vás jednoducho požiada, či chcete povoliť prístup k klientskej aplikácii Atom. To je v prípade Atomu oveľa transparentnejšie, pretože vás požiadajú, aby ste manuálne prešli na web GitHub a udelili im povolenie.

Pri návšteve adresy URL sa zobrazí výzva na povolenie.

Všimnite si adresu URL, ktorá ukazuje, že ide o zabezpečenú webovú stránku (HTTPS) od spoločnosti GitHub.Inc. Teraz si môžete byť používateľom istý, že priamo komunikujete s GitHubom. Atóm jednoducho čaká, celkom z cesty.

Na rozdiel od Atomu väčšina klientskych aplikácií automaticky načíta stránku prihlásenia alebo povolení. Aj keď je to veľmi pohodlné, dá sa to aj zneužiť, ak sa klientska aplikácia rozhodne otvoriť phishingový odkaz. Ak sa tomu chcete vyhnúť, musíte vždy skontrolovať adresu URL, na ktorú ste presmerovaní, a ubezpečiť sa, že je to správna adresa URL a používa protokol HTTPS.

Krok 2: Získanie autorizačného grantu

Na upozornenie klienta Atom dostanete token (autorizačný grant), ktorý sa potom odošle klientovi Atom.

Akonáhle to užívateľ urobí, jeho práca je hotová. (Typický používateľ v skutočnosti ani nevie o výmene udeleného oprávnenia. Bol vybraný príklad GitHub, ktorý ukazuje, že sa to deje).

Krok 3: Získanie prístupového tokenu

Autorizačný grant stále nie je subjektom, ktorý poskytuje klientovi prístup k informáciám o používateľovi. Získava sa to pomocou niečoho, čo sa nazýva prístupový token. Ktoré sa klientska aplikácia v tomto kroku pokúsi získať.

Za týmto účelom bude klient teraz musieť poskytnúť autorizačný server autorizačnému serveru spolu s dokladom o vlastnej totožnosti. Identita sa overuje pomocou ID klienta a tajomstva klienta, ktoré boli klientskej aplikácii dané skôr.

Overenie totožnosti sa vykonáva, aby sa zabezpečilo, že používateľ nebude podvedený k použitiu škodlivej aplikácie, ktorá sa vydáva za legitímnu aplikáciu. Napríklad, ak sa niekto rozhodne pomenovať svoj spustiteľný súbor ako Atom s rovnakým názvom, logom a funkčnosťou, môže byť používateľ podvedený pri poskytovaní prístupu klientovi, ktorý môže zneužiť vaše informácie. Môžu sliediť alebo dokonca konať bez vášho súhlasu. Autorizačný server zaisťuje, že klient je skutočne taký, aký sa javí svojim používateľom.

Po overení identity a schválení autorizačného servera autorizačný server vloží token do klientskej aplikácie. Predstavte si token ako kombináciu používateľského mena a hesla, ktoré je možné zadať serveru zdrojov na prístup ku konkrétnemu chránenému prostriedku, ku ktorému vám vlastník prostriedku povolil prístup.

Nakoniec pomocou tohto tokenu môže aplikácia teraz získať prístup k požadovaným informáciám o používateľovi a ďalším zdrojom zo servera zdrojov.

Všimnite si, ako v tejto celej výmene skutočné používateľské meno a heslo, kde sa nikdy s klientom nezdieľalo? To je krása OAuth. Namiesto poskytovania používateľského mena a hesiel, ktoré aplikácii umožnia prístup k prostriedku, použije namiesto toho tokeny. Token môže získať iba obmedzený prístup k zdroju.

Odvolanie povolení

Predpokladajme, že stratíte prístup k zariadeniu, v ktorom bola autorizovaná klientská aplikácia. Môžete sa prihlásiť na GitHub a prejsť do Nastavenia → Aplikácie → Autorizované aplikácie OAuth, aby ste zrušili udelenie autorizácie a prístupový token. Urobím to isté, pretože na vyššie uvedených snímkach obrazovky bol verejne zobrazený grant Authorization.

Teraz, keď máte z vtáčej perspektívy prehľad o tom, ako je OAuth 2.Tu si môžete prečítať viac informácií o grantoch autorizácie a ďalších podrobnejších podrobnostiach protokolu a o tom, ako sa hovory API uskutočňujú.

Hry 5 najlepších arkádových hier pre Linux
5 najlepších arkádových hier pre Linux
V dnešnej dobe sú počítače vážne stroje používané na hranie hier. Ak nemôžete dosiahnuť nové najvyššie skóre, budete vedieť, čo tým myslím. V tomto pr...
Hry Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 vydané minulý mesiac, je šiestym vývojovým vydaním v 1.13.séria x a prináša množstvo vylepšení, najmä používateľského rozhra...
Hry Ako nainštalovať League Of Legends na Ubuntu 14.04
Ako nainštalovať League Of Legends na Ubuntu 14.04
Ak ste fanúšikom League of Legends, potom je to pre vás príležitosť otestovať spustenie League of Legends. Upozorňujeme, že program PlayOnLinux podpor...