Programovanie OpenID: Naučte sa zaobchádzať s univerzálnymi prihláseniami

zverejnenie: Vaša podpora pomáha udržiavať web v prevádzke! Za niektoré zo služieb, ktoré odporúčame na tejto stránke, získavame poplatok za sprostredkovanie.


OpenID je zámerne bezplatný decentralizovaný autentifikačný protokol. Poskytuje spôsob pre bezpečné autentifikačné systémy, ako je napríklad prihlásenie Google, na overenie totožnosti používateľov pri prístupe na webové stránky a aplikácie tretích strán. Vďaka OpenID a iným decentralizovaným autentifikačným systémom môžu osobné blogy, webové stránky malých firiem a mobilné aplikácie používať zabezpečené autentifikačné systémy, ktoré boli navrhnuté a implementované špičkovými odvetviami..

História OpenID

OpenID sa narodil v máji 2005, keď Brad Fitzpatrick, zakladateľ LiveJournal, oznámil nový distribuovaný systém identifikácie s názvom Yadis (Yet Another Distributed Identity System). Pôvodné oznámenie objasnilo, že Brad predstavil Yadisa ako metódu autentifikácie používateľov LiveJournal na webové stránky tretích strán. O niekoľko dní neskôr bol Yadis premenovaný na OpenID, keď bola doména openid.net nadaná na použitie v projekte.

OpenID 1.0 bol koncepčný rámec s obmedzeným úžitkom v reálnom svete. Vývoj sa však pohol rýchlo a OpenID 2.0 bol vyhlásený približne rok po spustení projektu. Prijatie OpenID 2.0 bolo rozšírené a rýchle a začiatkom roku 2007 boli na palube spoločnosti Symantec, Microsoft, AOL a Sun Microsystems..

V roku 2014 sa narodil OpenID Connect. Táto nová generácia OpenID ponúka dve pozoruhodné vylepšenia v porovnaní s OpenID 2.0:

  • Je postavený na robustných komunikačných a autorizačných protokoloch OAuth 2.0.
  • Integrácia s mobilnými aplikáciami je priaznivejšia pre vývojárov a ľahšia ako jej predchodcovia.

Kto používa OpenID?

OpenID sú vydávané mnohými populárnymi webmi vrátane Google, Yahoo !, Microsoft a PayPal. Ak sa zaregistrujete na niektorej z týchto lokalít, bude vám pridelené ID OpenID. Výsledkom je, že už pravdepodobne máte jednu, dve alebo hrsť OpenID, aj keď si to neuvedomujete..

Webové stránky všetkých typov – webové stránky elektronického obchodu, blogy, sociálne siete a ďalšie – používajú OpenID na autentifikáciu používateľov. V skutočnosti existuje viac ako miliarda registrovaných OpenID a viac ako milión webových stránok a aplikácií, ktoré akceptujú OpenID na overenie totožnosti používateľa..

Ako OpenID funguje?

Do overovania totožnosti používateľa OpenID sú zapojené tri strany:

  • Koncový užívateľ: Jednotlivec, ktorý sa snaží autentifikovať – ​​tj prihlásiť sa – na webovú stránku alebo do aplikácie.
  • Zaisťovacia časť (RP): Webové stránky alebo aplikácie, ktoré vyžadujú overenie používateľa a spoliehajú sa na protokol OpenID na komunikáciu s treťou stranou na overenie totožnosti koncových používateľov..
  • Poskytovateľ identity (IDP): Služba tretej strany, ako je napríklad Google, ktorá registruje OpenID a poskytuje autentifikačné služby OpenID.

Po definovaní týchto troch strán funguje OpenID takto:

  1. Koncový užívateľ si nárokuje OpenID registráciou účtu u IDP.
  2. IDP vytvorí OpenID URL pre koncového používateľa. Táto adresa URL je jedinečná pre koncového používateľa a nárokovanie vlastníctva adresy URL vyžaduje, aby sa koncový používateľ prihlásil do systému IDP. Ak napríklad používate spoločnosť Google ako IDP, vytvoria vo vašom mene adresu URL Google+, ktorá slúži ako adresa URL OpenID, a ak chcete overiť vlastníctvo tejto adresy URL, musíte sa prihlásiť do svojho účtu Google..
  3. Koncový používateľ navštívi OpenID RP a vyberie možnosť registrácie účtu prihlásením sa na IDP tretej strany, ako je napríklad Google.
  4. Koncový používateľ je presmerovaný na IDP tretej strany a po prihlásení sa vyzve, aby potvrdil vlastníctvo adresy URL OpenID..
  5. Ak je koncový používateľ úspešne autentifikovaný IDP, IDP pošle späť jedinečnú OpenID URL koncových používateľov do RP a RP zaregistruje nového používateľa s touto URL.

RP nikdy nedostane heslo koncového používateľa. V dôsledku toho si RP nemusia robiť starosti s bezpečným ukladaním hesiel používateľov. IDP spracúva overenie a potom potvrdí totožnosť koncového používateľa pre RP pomocou adresy URL OpenID koncového používateľa.

Vytvorte si svoju vlastnú adresu OpenID pomocou phpMyID

Doteraz sme použili príklady známych poskytovateľov OpenID. OpenID je však úmyselne zadarmo. To znamená, že ktokoľvek – dokonca aj vy – sa môže zaregistrovať OpenID a slúžiť ako IDP. Nastavenie a ponúkanie verejnej registrácie OpenID je určite zlý nápad, pokiaľ nie ste odborníkom na webovú bezpečnosť. Ak však chcete nastaviť OpenID IDP pre svoje osobné použitie a vzdelávanie, nie je to naozaj také ťažké.

phpMyID je jednoduchý skript, pomocou ktorého môžete nastaviť ľubovoľnú adresu URL, ktorú spravujete, ako svoj vlastný osobný OpenID. Pôvodný projekt bol opustený už v roku 2008 a nefungoval s PHP 5.4. Avšak s niekoľkými aktualizáciami a vylepšeniami zabezpečenia bol projekt vylepšený pomocou PHP 5.4 a 5.6 a môžete ho získať z GitHubu..

Je potrebné poznamenať, že phpMyID nespĺňa špecifikácie OpenID Connect. Môžete ho však použiť na generovanie adries URL OpenID 2.0.

Nezabúdajte, že phpMyID je iba taká bezpečná ako verzia PHP, na ktorej je skript spustený, bezpečnostné opatrenia hesiel, ktoré ste zaviedli, a bezpečnostné opatrenia, ktoré chránia server, na ktorom sú hostené. Výsledkom je, že nastavenie vlastného OpenID pomocou phpMyID je zaujímavý projekt, ktorý treba riešiť, ale v konečnom dôsledku riskantné úsilie, pokiaľ nemáte potrebné odborné znalosti na zabezpečenie jeho bezpečnosti. Inými slovami, na získanie informácií o OpenID použite phpMyID, ale nepoužívajte ho na všeobecné overenie používateľov.

zdroje

Ak chcete začleniť overenie OpenID do nasledujúceho projektu, je k dispozícii množstvo zdrojov, ktoré vám pomôžu začať.

Prehľady OpenID

Pred ponorením do implementácie budete chcieť dôkladne porozumieť tomu, ako OpenID funguje. Nasledujúce zdroje poskytujú prehľad na vysokej úrovni, ktorý potrebujete:

  • OpenID Connect FAQ a Q&Ako: oficiálny FAQ nadácie OpenID. Na tejto stránke nájdete podrobný úvod k OpenID.
  • Tipy pre vývojárov z OpenID Vysvetlené: ak implementujete OpenID prvýkrát, prečítajte si tieto tipy, aby ste sa vyhli bežným nástrahám.
  • OpenID Connect v skratke od Nat Sakimura: ak sa cítite trochu zastrašený implementáciou OpenID, tento krátky článok poskytuje prehľad o tom, ako sa spoliehajú partneri a poskytovatelia identity.
  • Napíš OpenID Connect Server v troch jednoduchých krokoch od Nat Sakimura: neexistuje lepší spôsob, ako sa učiť, ako robiť. Ak už máte skúsenosti s OAuth 2.0, tento tutoriál vás prevedie procesom rýchleho nastavenia servera OpenID Connect nad autentifikáciou OAuth 2.0..

Technické zdroje

Ak ste pripravení posunúť sa ďalej od úvodov a prehľadov a pustiť sa do implementácie, tu sú technické špecifikácie a knižnice, ku ktorým budete potrebovať prístup.

  • Knižnice, produkty a nástroje: tento zoznam knižníc, produktov a nástrojov OpenID vedie Nadácia OpenID. Ak už máte pre svoj projekt na starosti vývojový rámec alebo jazyk, existuje veľmi dobrá šanca, že v tomto zozname nájdete nástroj, produkt alebo knižnicu pre svoje prostredie. Dostupné zdroje zahŕňajú knižnice napísané pre JavaScript, Java, PHP, Python, Ruby, C #, C a mnoho ďalších jazykov, ako aj produkty OpenID od Amazon Web Services, Microsoft Azure, Ping Identity a mnoho ďalších poskytovateľov..
  • Vitajte v OpenID Connect: táto oficiálna domovská stránka OpenID Connect obsahuje odkazy na špecifikácie OpenID. Dostupné dokumenty zahŕňajú špecifikáciu OpenID Connect Core, príručku základného klienta implementátora, príručku implicitného klienta implementátora a mnoho ďalších..
  • Zdroje poskytovateľa OpenID: Niektorí poskytovatelia OpenID ponúkajú rozsiahlu dokumentáciu, aby vývojári mohli používať svoje systémy OpenID na autentifikáciu používateľov.
    • Platforma identity Google: OpenID Connect
    • PayPal Developer: Integrované prihlásenie pomocou PayPal
    • Sieť vývojárov Yahoo: OpenID Connect
    • Microsoft Azure: Autorizujte prístup k webovým aplikáciám pomocou OpenID Connect a Azure Active Directory

knihy

K dispozícii sú tiež dobre preverené knihy, ktoré zavádzajú OpenID a vysvetľujú implementáciu autentifikácie.

  • OAuth 2.0: Začíname v API Security (2015) Matthias Biehl: krátky úvod k OAuth 2.0 a OpenID Connect, ktorý poskytne základ pre riešenie pokročilejších materiálov.
  • Pokročilá bezpečnosť API: Zabezpečenie API pomocou OAuth 2.0, OpenID Connect, JWS a JWE (2014) od Prabath Siriwardena: dôkladný úvod do autentifikácie API, ktorý pokrýva najpopulárnejšie štandardy autentifikácie dnes vrátane OAuth 2.0 a OpenID. Na viac ako 250 stranách to nie je rýchle prečítanie.
  • Začíname s OAuth 2.0 (2012) od Ryan Boyda: stručný úvod k implementácii OAuth 2.0 pre autentifikáciu užívateľa. Tento text zameraný na výsledky predstavuje OAuth 2.0 a vysvetľuje, ako OpenID Connect umožňuje autentifikáciu bez potreby budovania autentifikačného systému..

Ďalšie kroky

OpenID Connect nie je samostatný autentifikačný protokol. Ak ju chcete používať, budete tiež potrebovať pracovné znalosti OAuth 2.0, pretože všetky systémy OpenID Connect sú postavené na jej vrchole. Krivka učenia, ako začať s OpenID Connect, je strmá. Je toho čo učiť. Po zvládnutí budete môcť integrovať vysoko bezpečné overenie totožnosti používateľa na svoj web alebo do aplikácie s relatívne minimálnym problémom..

Ďalšie čítanie a zdroje

Máme viac sprievodcov, návodov a infografík týkajúcich sa kódovania a vývoja:

  • Úvod a zdroje OAuth: úzko súvisiaci systém, ktorý umožňuje dve aplikácie v mene používateľa.
  • Úvod, príručky a zdroje OpenSSL: začnite s vytváraním zabezpečených webových stránok pomocou protokolu SSL.
  • Rýchly úvod a zdroje: Toto je jeden z najnovších jazykov podobných jazyku C. Budúcnosť programovania? Zistite tu!

Aký kód by ste sa mali naučiť?

Ste zmätení, v akom programovacom jazyku by ste sa mali naučiť kódovať? Pozrite si náš infographic, aký kód by ste sa mali naučiť? Diskutuje nielen o rôznych aspektoch jazykov, ale odpovedá na dôležité otázky, napríklad: „Koľko peňazí zarobím na programovanie jazyka Java na bývanie?“

Aký kód by ste sa mali naučiť?
Aký kód by ste sa mali naučiť?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map