Bezpečnostní

Správa přihlášení OAuth

Správa přihlášení OAuth

Důležité věci, které potřebujete o OAuth vědět

OAuth je něco, o čem musí každý vývojář vědět. Pokud vytváříte samostatnou aplikaci nebo aplikaci třetí strany, která se integruje s nějakou jinou službou HTTP, potřebujete vědět, jak OAuth funguje, aby poskytoval vašim uživatelům snadno použitelnou a dobře integrovanou službu.

Myšlenkou je umožnit klientským aplikacím omezený přístup k informacím o uživateli, aniž by bylo nutné sdílet pověření uživatele nebo heslo. Rámec OAuth je zodpovědný za výměny, které jsou vyžadovány předtím, než aplikace získá vaše informace.

Předpokládejme, že se chcete zaregistrovat na Dev.do (což je skvělé místo pro výměnu nápadů mezi vývojáři) vám umožní zaregistrovat se pomocí svého účtu GitHub. Jak se to stalo?? Jak by věděli, že vlastníte účet GitHub, se kterým se přihlašujete?

Ještě důležitější je, jak zajistíte, aby Dev.to není překročení jeho hranic, pokud jde o vaše informace uložené v GitHubu?

Účastníci OAuth

Držíme se příkladu pluginu GitHub editoru Atom, který umožňuje vývojářům posílat kód do GitHubu přímo pomocí rozhraní Atom. Důvodem je například to, že GitHub neskrývá detaily za scénou a uvidíte, co se děje pod kapotou.

Než se dostaneme do detailů fungování OAuth. Pojďme připravit půdu rozpoznáním všech účastníků výměny:

  1. Vlastník zdroje nebo uživatel: Tento uživatel je ten, jehož informace o účtu je třeba zpřístupnit (číst a / nebo zapisovat), aby fungoval s aplikací.
  2. Klient: Toto je aplikace, která požaduje vaše svolení k přístupu k vašim informacím z jiné služby. V našem příkladu je klientem editor Atom.
  3. Zdroj: Zdrojem jsou vaše skutečné informace, které se nacházejí na serverech v nějakém vzdáleném umístění. K tomu lze přistupovat prostřednictvím API, pokud má klient udělena příslušná oprávnění.
  4. Autorizační server: Také propojeno s pomocí API. Tento server je udržován poskytovatelem služeb (v našem příkladu GitHub). Autorizační server i server prostředků se označují jako API, protože jsou spravovány jednou entitou, v tomto případě GitHub a vystaveny jako API vývojáři klienta.

Registrace OAuth

Proces začíná při vývoji klientské aplikace. Můžete přejít na poskytovatele prostředků a zaregistrovat se pomocí portálu jejich vývojáře nebo části API na webu. Budete také muset zadat adresu URL zpětného volání, kam by byl uživatel přesměrován po přijetí nebo odmítnutí, aby aplikaci dal potřebná oprávnění.

Například pokud přejdete na GitHub → Nastavení → Nastavení vývojáře a kliknete na „Zaregistrovat novou aplikaci“. To by vám poskytlo a ID klienta které mohou být zveřejněny a Tajemství klienta což musí vývojářská organizace udržovat ... dobře v tajnosti.

Poté, co vám, vývojáři, vám bude poskytnuto ID klienta a tajemství musí udržujte je v bezpečí, protože se znovu nezobrazí autorizačním serverem. Totéž platí pro všechny ostatní žetony, které by se hodily (více o žetonech později).

Pracovní postup OAuth 2

Zaregistrovali jste svou přihlášku. Byl vyvinut a testován a nyní jsou uživatelé připraveni jej používat. Novému uživateli při registraci u vaší služby se zobrazí možnost „Přihlásit se pomocí GitHubu“. Toto je první krok.

Krok 1: Žádost o povolení

Požadavek na autorizaci je část, kde se nové okno (nebo podobná výzva) otevírá s webovou stránkou zdroje a žádá uživatele o přihlášení. Pokud jste již na tomto zařízení přihlášeni, je tento krok přeskočen a GitHub vás jednoduše požádá, pokud chcete udělit přístup k klientské aplikaci Atom. To je v případě Atomu mnohem transparentnější, protože vás požádají, abyste ručně navštívili web GitHub a udělili jim oprávnění.

Při návštěvě adresy URL budete požádáni o povolení.

Všimněte si URL, které ukazuje, že se jedná o zabezpečenou (HTTPS) webovou stránku GitHub.Vč. Nyní si vy, uživatel, můžete být jisti, že přímo komunikujete s GitHubem. Atom prostě čeká, zcela mimo cestu.

Na rozdíl od Atomu většina klientských aplikací automaticky načte stránku pro přihlášení nebo oprávnění. I když je to velmi výhodné, může být také zneužito, pokud se klientská aplikace rozhodne otevřít phishingový odkaz. Abyste tomu zabránili, musíte vždy zkontrolovat adresu URL, na kterou jste přesměrováni, a ujistit se, že je to správná adresa URL a používá protokol HTTPS.

Krok 2: Získání autorizačního grantu

Chcete-li upozornit klienta Atom, obdržíte token (autorizační grant), který se poté odešle klientovi Atom.

Jakmile to uživatel udělá, je práce uživatele hotová. (Typický uživatel ve skutečnosti ani neví o výměně povolení. Příklad GitHub byl vybrán, aby ukázal, že se to stane).

Krok 3: Získání přístupového tokenu

Udělení oprávnění stále není entitou, která poskytuje klientovi přístup k informacím o uživateli. To se získá pomocí něčeho, co se nazývá přístupový token. Které se klientská aplikace v tomto kroku pokusí získat.

K tomu bude nyní klient muset poskytnout autorizační server autorizačnímu serveru spolu s dokladem o své vlastní identitě. Identita se ověřuje pomocí ID klienta a tajemství klienta, které byly klientské aplikaci dány dříve.

Ověření identity se provádí, aby se zajistilo, že uživatel nebude podveden k používání hanebné aplikace, která předstírá, že je legitimní aplikací. Například pokud se někdo rozhodne pojmenovat svůj spustitelný soubor jako Atom se stejným názvem, logem a funkcemi, může být uživatel podveden k tomu, aby poskytl přístup klientovi, který může zneužít vaše informace. Mohou slídit nebo dokonce jednat bez vašeho souhlasu. Autorizační server zajišťuje, že klient je skutečně tím, čím se zdá svým uživatelům.

Jakmile je identita ověřena a je uděleno povolení autorizace, autorizační server hodí token do klientské aplikace. Přemýšlejte o tokenu jako o kombinaci uživatelského jména a hesla, které lze dát serveru prostředků pro přístup ke konkrétnímu chráněnému prostředku, ke kterému vám vlastník prostředku povolil přístup.

Nakonec pomocí tohoto tokenu může aplikace nyní získat přístup k požadovaným informacím o uživateli a dalším prostředkům ze serveru prostředků.

Všimněte si, jak v celé této výměně skutečné uživatelské jméno a heslo, kde se s klientem nikdy nesdílelo? To je krása OAuth. Místo poskytování uživatelského jména a hesel, která by aplikaci poskytla veškerý přístup k prostředku, používá místo toho tokeny. A token může získat pouze omezený přístup ke zdroji.

Odvolání oprávnění

Předpokládejme, že ztratíte přístup k zařízení, ve kterém byla autorizovaná klientská aplikace. Můžete se přihlásit na GitHub a přejít do Nastavení → Aplikace → Autorizované aplikace OAuth a odebrat autorizační grant a přístupový token. Udělám to samé, protože na výše uvedených screenshotech byl veřejně zobrazen Autorizační grant.

Nyní, když máte ptačí pohled na to, jak OAuth 2.Zde si můžete přečíst další informace o grantech autorizace a dalších podrobnějších informacích o protokolu a o tom, jak se uskutečňují volání API.

Trackpad a ukazatel myši AppyMouse na obrazovce pro tablety Windows
Uživatelé tabletů často postrádají ukazatel myši, zejména když obvykle používají notebooky. Dotykové smartphony a tablety mají mnoho výhod a jediným o...
Střední tlačítko myši nefunguje ve Windows 10
The prostřední tlačítko myši pomáhá procházet dlouhé webové stránky a obrazovky se spoustou dat. Pokud se to zastaví, budete nakonec používat klávesni...
Jak změnit levé a pravé tlačítko myši na počítači se systémem Windows 10
Je úplnou normou, že všechna zařízení počítačových myší jsou ergonomicky navržena pro praváky. K dispozici jsou však myší zařízení, která jsou speciál...