OpenID

  • 19.11.2008
  • Tomáš Neděla

Největším nepřítelem uživatele na internetu je registrace a přihlašování se na různé služby svým uživatelským jménem a heslem. V rámci bezpečnosti je nutné mít vždy tyto údaje na každém webu jiné (jen se přiznejte, že to tak neděláte), avšak kdo si má všechny ty hesla a jména pamatovat?

Jako odpověď na tuto otázku přichází OpenID.

Co je OpenID

OpenID, který můžeme nazvat jako  "občanský průkaz ve světě internetu", slouží k jednoduché  osobní identifikaci uživatele. Jejím hlavním úkolem je sjednotit přihlašování na internetu a tím se přihlašovat na různé stránky pouze pod jedním uživatelským jménem (tzv. OpenID identifikátor) a jedním heslem. Používáním této služby tedy odpadá nutnost znát mnoho hesel pro jednotlivé služby na internetu.

OpenID se také vyznačuje otevřeným, decentralizovaným frameworkem, který využívá již zaběhnutých a všem dobře známých technologií a protokolů HTTP, SSL, URI či Diffie-Hellman, z čehož vyplývá, že je pro koncové uživatele zcela zdarma.

Tuto službu musí samozřejmě podporovat webová stránka, na kterou se chcete přihlásit.  Seznam těchto stránek neustále narůstá. Patří sem například bloguje.cz, jakožto největší česky blog server  a seznam.cz ohlásil podporu OpenID (např. článek na www.root.cz).

Seznam stránek, podporujících tento systém lze najít např. na myopenid.com, nebo openid.cz pro české stránky.

Jak je možné získat OpenID

Technologie Open Id nemá přímo svého vlastníka a je distribuován tzv. OpenID Providery. Open ID providerem se může stát kdokoli, kdo má možnost bezpečně uchovávat údaje o uživatelích a jejich osobních údajích.  Na internetu v této době existuje již mnoho providerů OpenID, kteří se liší rozsahem svých služeb. Je tedy nutno si vybrat takového poskytovatele openID, který bude uživateli co nejvíce vyhovovat. Registrace snad u všech providerů je velice jednoduchá a nezabere ani 3 minuty, avšak je nutné dát na dobré jméno providera a na jeho dobré reference, neboť jen on pak bude ručit za bezpečnost uživatelových údajů.

Přímo na hlavních stránkách projektu OpenID je možné získat seznam všech poskytovatelů. Osobně jsem otestoval tři z nich:

  • myOpenId.com
    • zřejmě nejlepší OpenID poskytovatel, který nabízí kromě standardních služeb také možnost vytvořit si vlastní certifikát, který zabezpečuje komunikaci protokolem SSL
  • openId.cz
    • český projekt Open ID
    • Nabízí standardní služby v oblasti OpenID, avšak s množstvím neodlazených chyb a nefunkčnosti některých služeb. (např. poslat zapomenuté heslo vždy vyhodí Internal Server Error )
  • claimid.com
    • mimo standardní služby nabízí možnost automatické tvorby HCard, tedy vizitek ve formě microformátů

Jakým způsobem funguje OpenID

Pokud uživatel zavítá na stránku, která podporuje přihlášení pomocí OpenID, tak  do políčka pro přihlášení zadá pouze OpenID identifikátor. Stránka se poté automaticky přesměruje na uživatelova providera OpenID, kde zadá své heslo a poté je zpět přesměrován na stránku, kde se chtěl původně přihlásit. Důležité je, že heslo pro přihlášení se zadává na straně providera. Tímto je  zabezpečeno, že hesla pro přístup na OpenID jsou uložena jen na jednom serveru a třetí strana (v podobě webové stránky, na kterou se chce uživatel přihlásit) k nim nemá přístup.

V rámci nastavení OpenID lze také přesně určit, které informace budou posílány třetí straně. Každá stránka může žádat různé informace, které jsou uloženy pod OpenID účtem, jako například email uživatele, či jeho jméno. Je jen na uživateli, jaké data dané stránce poskytne ze svého OpenID účtu. Navíc je také možné nastavit automatické přihlašování pro konkrétní stránky. Tímto způsobem již uživatel nemusí zadávat heslo pro OpenID na stránky, na které se již tímto způsobem přihlásil.

Vlastní webová stránka jako identifikátor OpenID

OpenID nabízí možnost používat jako identifikátor vlastní webovou stránku. Poté se pro přihlášení používá místo např. "user.myopenid.com" přímo URL adresa uživatelovy stránky, např: „usersite.userdomain.cz\"". Samozřejmě i nadále se uživatel přihlašuje na stránkách providera, ale tímto způsobem si lze snadno zapamatovat identifikátor pro přihlašování.

Pro nastavení stránek, které tímto způsobem budou zastupovat identifikátor OpenID, je nutno jen přidat dva řádky do hlavičky stránek:

<link rel="openid.server" href="http://user.myopenid.com" />
<link rel="openid.delegate" href="http://user.myopenid.com" />

Implementace do webových projektů

Na webu projektu OpenID je k dispozici kompletní specifikace, díky které je možné implementovat OpenID do webových projektů. Komunita okolo OpenID také již sama vytvořila mnoho knihoven do všech programovacích jazyků a tudíž implementace této technologie do stávajících, i budoucích projektů je jednoduchá.

Závěrem

OpenID není zdaleka nová technologie, vždyť je postavena na základech již několik let starých protokolů internetu, ale výjimečnost tkví v jednoduchosti ovládání a umožnění tak jednoduchého přihlášení ke stávajícím internetovým službám pod jedním uživatelským jménem (identitou OpenID) a heslem. Implementace OpenID do webových projektů je jednoduchá a proto lze očekávat velice rychlé rozšíření této technologie i na českém internetu.

Jediné co mi zde chybí je možnost zadat si kompletní adresu uživatele u providera OpenID a tím si zajistit jednoduchou registraci v internetových obchodech.

 

Aktualizace: 18. Prosince 2008

Seznam.cz přidal podporu OpenID

Lupa.cz přinesla zprávu , že největší český internetový vyhledávač www.seznam.cz na svých stránkách implementoval podporu OpenID. Všichni uživatelé, jenž mají účet u seznamu (týká se všech služeb prortálu, tedy například i www.seznamka.cz, www.prozeny.cz atd.) mohou ihned začít používat přihlašování na všechny internetové stránky, podporující OpenId, pomocí svého přihlašovacího jména, které používá na seznam.cz. Toto přihlašovací jméno je pro potřeby OpenID upraveno, a to tak že místo zavináče (@) se doplní ".id.", tedy osoba s přihlašovacím jménem v podobě "jmeno.osoby@seznam.cz" se bude na stránky s podporou OpenID přihlašovat jménem "jmeno.osoby.id.seznam.cz".