MojeID je technicky založená na protokolu OpenID, který je široce podporovaný a na jehož specifikaci se shodla většina velkých hráčů, od Microsoftu a Google až po organizace jako Verisign či banky. OpenID má, i přes verbální podporu, zásadní problém: je možná víc poskytovatelů identity než webů, kde je lze použít.
Krok CZ.NIC tak vzbudil, možná přehnaná, očekávání – mnozí, včetně autora článku, se domnívali, že podobná popularizace protokolu „nad OpenID“ pomůže většímu rozšíření samotného OpenID. Že tento krok podpoří tvůrce webů k tomu, aby implementovali MojeID – a s ním i OpenID, na kterém MojeID stojí. No, nestalo se tak.
Sledujeme MojeID
OpenID? Schovaný…
Už při slavnostním spuštění někteří účastníci poukazovali na to, že je popularizován především nástroj MojeID a o OpenID není téměř ani slovo. Následný vývoj dal těmto hlasům zapravdu: Tiskové zprávy, v nichž jsou zmiňovány počty webů, kde je možno použít MojeID, už nezmiňují to, kolik z nich dovoluje použít obecné OpenID. Realita je taková, že téměř žádný.
Naprostá většina webů, která implementovala MojeID, tak učinila poměrně hrubým způsobem – totiž nabídla pouze možnost použít MojeID, a navíc „natvrdo“ vnucuje příponu „.mojeid.cz“, čímž znemožňuje použít jednu ze základních vlastností OpenID, totiž alias.
Bližší informace o OpenID
- OpenID: Historie, terminologie a mechanismus autentizace
- Implementace přihlašování pomocí OpenID
- OpenID: Identity, aliasy a vlastní poskytovatel
Významní podporovatelé OpenID
Alias
OpenID je navržen velmi flexibilně. Jako identifikátor můžete použít jakékoli URL, bez ohledu na to, kterého poskytovatele si vyberete. Příklad – autor má web maly.cz, a chtěl by používat „maly.cz“ jako OpenID identifikátor. Není to problém – stačí pouze vložit několik metainformací do této stránky, které říkají „Toto je alias identifikátor pro adent.myopenid.com“. Ověření pak proběhne proti serveru myopenid.com.
Výhoda tohoto systému je, že uživatel může změnit poskytovatele OpenID identity (z MyOpenId třeba na Seznam.cz), aniž by měnil identifikátor. Autor např. může dál používat „maly.cz“, i když se z nějakého důvodu rozhodne odejít od myopenid.com.
Bohužel u MojeID narazí. Alias si sice může vytvořit – což se bude hodit v případě, že jste si vytvořili MojeID z údajů u domény, kde výsledkem je leckdy velmi kryptografický identifikátor (u autora např. vygeneruje „pipni.1038.mojeid.cz“) – ale i když nakrásně splní všechny potřebné předpoklady a vytvoří si alias, nezadá ho!
Zkuste si do těchto políček vložit alias – nezadáte! Automaticky předpokládají, že použijete „xxx.mojeid.cz“.
CZ.NIC doporučuje…
Základním principem otevřené technologie OpenID je to, že si může každý vybrat svého důvěryhodného poskytovatele. Obvyklý postup práce u podobných nadstaveb nad OpenID je přitom poněkud jiný. Weby jako RPX a další nabízí přihlášení „specializovanou OpenID identitou“, například MyOpenID nebo Google, a zároveň nabízí i „obecný OpenID“. Funguje to tak, že člověk, který má např. účet u Google nebo u MyOpenId, vyplní pouze své uživatelské jméno, zbytek adresy je doplněn („.myopenid.com“). Pokud má účet někde jinde, pokud má alias apod., kliká na „obecný OpenID“, kde může zadat kompletní identifikátor.
Proč tedy není stejný postup použit i u MojeID? Tedy nabídnout krom MojeID i záložní možnost „OpenID“ (samosebou s tím, že OpenID nenabízí ony nadstavbové možnosti, jako je ověření adresy). Na mnohých webech by to nevadilo, navíc implementace není nijak složitá – pokud implementujete mojeID, implementovali jste OpenID a „ještě něco navíc“ – tedy specifické identifikátory, přidané CZ.NIC. Technicky není důvod, proč omezit přihlášení pouze na MojeID (a už vůbec není důvod omezovat identifikátory pouze na ty, které končí „.mojeid.cz“).
Na první pohled to je problém na straně webů, které implementovaly MojeID, že neumožňují vložit nic jiného. Ovšem CZ.NIC v tom není tak nevinně, jak by se mohlo zdát. Klíčová je informace z implementačních doporučení (viz instalační balíček) – cituji:
„Pro zvýšení uživatelské příjemnosti je doporučeno usnadnit uživateli vkládání tak, že stačí vložit vždy jen část identifikátoru před .mojeid.cz. (tedy aby stačilo vložit jnovakova místo celého jména jnovakova.mojeid.cz).“
Doporučení se ale nezmiňuje o tom, že tímto způsobem ořeže implementátor funkcionalitu, kterou OpenID, a tedy i MojeID, nabízí. V doporučení není rovněž ani slovo o tom, že je možné nabídnout „plnohodnotné OpenID + MojeID“ – přičemž by odstavec textu stačil.
Špatný konec?
Na celé situaci bylo něco divného: Proč CZ.NIC, který vždy podporoval a podporuje otevřené standardy, se v tomto případě chová poněkud neobvykle a v oficiálních materiálech protežuje své proprietární řešení až tak, že doporučeními „vyblokoval“ nejen jakoukoli jinou alternativu, ale i samotný otevřený základ, tedy openID? Obchodně vzato je vše v pořádku: CZ.NIC použil otevřený protokol, postavil nad ním své řešení, to dnes propaguje, a možnost použít identifikátor i někde jinde je „bonus navíc“.
Dobrý konec!
Článek původně končil větami: Přesto se člověk nemůže ubránit dojmu, že zrovna u CZ.NIC podobný postoj k otevřeným technologiím není obvyklý. Doufejme, že CZ.NIC nakonec svůj postoj reviduje a dočkáme se i podpory otevřených standardů – půl stránky textu a jedno upozornění v Doporučeních bude jistě stačit.
Obrátili jsme se před vydáním tohoto článku na sdružení CZ.NIC a požádali jej o vyjádření k celé záležitosti. Reakce na sebe nenechala dlouho čekat, a byla velmi příznivá: CZ.NIC zvážilo naše námitky a rozhodlo se revidovat text svých implementačních doporučení. Nová doporučení by měla zmiňovat možnost implementace OpenID a další výhrady z předchozího textu.
Vyjádření CZ.NIC zveřejňujeme v nezměněném znění.
Vyjádření CZ.NIC
Našim hlavním cílem je podporovat „naši“ službu, tedy mojeID, které oproti OpenID přináší pro uživatele v České republice řadu výhod – ověření držitele mojeID, garantovaná serióznost a nezávislost společnosti, která službu provozuje, nebo léty prověřená zkušenost se správou databází. Proto jsme v našich implementačních dokumentech dosud mluvili pouze o tom, jak nejlépe nasadit službu mojeID. Protože ale obecně podporujeme otevřená řešení, mezi než patří také OpenID, které je s mojeID neodmyslitelně spojené, rozhodli jsme se, že tento návod v blízké době doplníme v tom smyslu, že v něm ukážeme také na možnost zavedení otevřeného standardu OpenID, do kterého je možné se přihlásit s mojeID identitou. Samozřejmě ale i nadále se bude větší část našeho manuálu věnovat službě mojeID.
K OpenID jsme se nikdy nestavěli zády. Vždycky jsme tvrdili, a bude to platit i do budoucna, že je služba mojeID postavená na otevřeném protokolu OpenID.