Hlavní navigace

ID4me: jednotná identifikace a domény na německý způsob

Jaromír Talíř

ID4me je aktuální název projektu, který pod názvem DomainID vznikl již loni. Za jeho vznikem stojí správce domény .DE spolu s významným německým registrátorem 1&1 a společností Open-Xchange.

Doba čtení: 4 minuty

V sídle německého doménového registru DENIC se 14. srpna sešlo přes 50 zástupců internetových společností, aby se zúčastnili prvního ročníku ID4me summitu. ID4me je aktuální název projektu, který pod názvem DomainID vznikl již loni, a zmínil jsem ho krátce v prezentaci na naší loňské konferenci IT 17.2 [PDF]. Za jeho vznikem stojí právě správce domény .DE spolu s významným německým registrátorem 1&1 a společností Open-Xchange, provozovatelem internetových kolaborativních nástrojů.

Společností, které se aktivně hlásí jako podporovatelé, je ale více a nechybí mezi nimi například britský doménový registr Nominet. Cíle, které si projekt stanovil, jsou nám poměrně známé – redukovat množství hesel a registrací při pohybu uživatelů po Internetu. Podobně jako CZ.NIC s projektem mojeID, došli autoři ID4me k závěru, že doménový svět je právě tím místem, kde je možné pokusit se těchto cílů dosáhnout.

Na rozdíl od mojeID, které je samo o sobě službou k okamžitému použití, snaží se ID4me spíše o vytvoření ekosystému spolupracujících organizací, které budou podporovat řešení popsané sadou standardů vznikajících postupně v rámci projektu. Do tohoto ekosystému se již podařilo poměrně rozsáhlou kampaní zapojit řadu zajímavých společností. Relativně nedávno došlo k založení společnosti ID4me AISBL (nadace) se sídlem v Bruselu, která bude členskou organizací a která by měla veškeré aktivity související s projektem zaštiťovat.

V tuto chvíli se rozvoj projektu soustředí kolem tří pracovních skupin a jim odpovídajících mailinglistů. V technické pracovní skupině se řeší protokoly a specifikace, na kterých projekt stojí. V organizační pracovní skupině se řeší, jak má ekosystém fungovat na úrovni různých (např. právních) vztahů mezi jeho členy. Poslední adopční pracovní skupina je zaměřená na marketing celého projektu.

Z technického pohledu staví ID4me na používaném standardu OpenID Connect, což mu zajišťuje poměrně dobrou výchozí pozici pro interoperabilitu s existujícími systémy. V mojeID podporujeme tento protokol od roku 2015. ID4me ale přidává tři koncepty, které nejsou příliš obvyklé a reflektují snahu propojit doménový svět se světem identitním.

První z těchto konceptů je rozdělení autentizační služby na dva subjekty. V terminologii ID4me se jedná o Autoritu a Agenta. Agent je subjekt, ke kterému přijde zákazník jako první, předá mu svoje údaje a požaduje zřízení služby. Jak už asi tušíte, v doménovém světě se tomu subjektu říká Registrátor. Autorita je naopak služba, která garantuje vlastnictví identifikátoru a přiděluje ho konkrétnímu uživateli. Opět, analogický subjekt pro doménový svět je Registr. Autorita je tedy zodpovědná za ověření přihlašovacích údajů uživatele a Agent je zodpovědný za uchovávání a předání jeho dalších údajů.

Způsob, jakým je tento koncept namapován na OpenID Connect protokol, je poměrně originální. V terminologii OpenID Connect je tento přístup označován jako „Distributed claims“. Uživatel se protokolem OpenID Connect standardně přihlásí u Autority, nicméně místo předání údajů přihlášeného uživatele Autorita poskytne adresu ze systému Agenta, na které je možné se k údajům dostat. Jeden konkrétní subjekt může ale plnit roli jak Autority, tak Agenta. Pro standardní službu, která umožňuje přihlášení přes OpenID Connect, by toto rozdělení nicméně neměl být problém.

Druhým konceptem je myšlenka ustanovit doménové jméno jako primární identifikátor. Uživatel si pořídí doménu a bude jí používat pro přihlášení do všech systémů podporujících ID4me. Pouze manipulací s DNS záznamem u této domény si uživatel může určit, kdo je Autorita a Agent pro toto doménové jméno. Toto je určeno speciálním TXT záznamem u poddomény  _openid.

Samozřejmostí je, že záznamy u této domény musí být zabezpečeny pomocí DNSSEC. Majitel doménového jména by měl tak mít teoreticky možnost jednoduchou změnou TXT záznamu přejít k jinému poskytovateli identitních služeb. Přestože je snaha tento způsob počáteční identifikace uživatele standardizovat, není aktuálně součástí standardu OpenID Connect a vyžaduje tak změny na straně poskytovatelů služeb.

Třetí koncept, který úzce souvisí s předchozím, ale který přesto vidím jako samostatný prvek, je snaha poskytnout službě, která použije ID4me, informaci, že přihlášený uživatel je opravdu držitelem zvolené domény. Tuto informaci se služba po přihlášení dozví se speciálního atributu id4me_identifier.

Určitou úroveň důvěry tomuto atributu dává proces ověření pomocí DNS varianty ACME protokolu, které by měla provést Autorita předtím, než uživateli vytvoří účet. Jedná se ale o jednorázové ověření při registraci a tudíž nic neříká o aktuálním stavu. Navíc pokud by toto ověření bylo povinné, limituje to zapojení existujících služeb. Dle mých informací se ale zatím neuvažuje o tom, že by tato povinnost byla vynucována.

Autoři ID4me nezůstávají v teoretické rovinně a připravili i sadu knihoven, která zmíněné koncepty implementuje. Existuje projekt na Gitlabu, kde je možné si stáhnout kód, nebo případně diskutovat nad požadovanými změnami. Existují již i některé pilotní projekty, které umožňují přihlášení přes ID4me. Abychom si otestovali kompatibilitu ID4me, zavedli jsme do DNS požadovaný záznam v následujícím formátu:

MIF18_Michálek

_openid.mojeid.cz. IN TXT "v=OID1;iau=mojeid.cz/oidc;iag=mojeid.cz/oidc"

Pokud se chcete přihlásit ke kolaborativnímu řešení Open-Xchange s využitím mojeID, stačí, když do formuláře napíšete mojeid.cz a kliknete na tlačítko „Sign with ID4me“. Pokud si navíc zaregistrujete doménu a přidáte si k ní tento stejný TXT záznam, budete se nově moci přihlašovat s použitím své domény. Obdobným způsobem je možné otestovat si přihlášení u technologického zpravodajského serveru AndroidPIT. Bude určitě zajímavé sledovat, kam se bude celý tento projekt dál rozvíjet.

Původně napsáno pro blog CZ.NIC.

Našli jste v článku chybu?