Přejít k navigační liště

Zdroják » PHP » Implementace přihlašování pomocí Live ID

Implementace přihlašování pomocí Live ID

Články PHP, Různé

Do rodiny moderních internetových autentizačních metod patří i Live ID, vyvinutý a provozovaný Microsoftem. V porovnání s možnostmi OpenID působí Live ID co do možností trošku jako „chudý příbuzný“, přesto jistě nalezne své využití v nejrůznějších projektech. Povíme si něco o základních rysech Live ID a ukážeme si, jak lze snadno implementovat Live ID přihlašování v jazyce PHP.

Historie

Historie Live ID sahá až do 90. let minulého století, kdy se Microsoft začal víc věnovat internetu a hledal způsob jednotné identifikace zákazníků. Vznikl tak Microsoft Passport, o němž Microsoft tvrdil, že by se mohl stát jakýmsi „jednotným průkazem identity“ internetového uživatele. MS Passport neuspěl, a na jeho neúspěchu se podepsalo několik faktorů: technická nedokonalost (problémy s bezpečností), odpor internetové veřejnosti k odanonymizování, ke komerci a k Microsoftu vůbec (však si vzpomeňte, kdo se v 90. letech pohyboval na internetu především) a v neposlední řadě mizivá poptávka po službě tohoto typu.

Microsoft myšlenku MS Passportu několikrát resuscitoval, úspěch těchto reinkarnací byl však pochybný. Nejprve se Passport změnil na .NET Passport, to když Microsoft propagoval značku .NET. Po .NET Passportu přišel Microsoft Passport Network a po něm, s nástupem jednotného Live prostředí, přišel Live ID. Live ID je v současné době používán Microsoftem jako univerzální způsob přihlašování k čemukoli, od MSN (Live Messenger) až po download Windows 7.

Srovnání s OpenID

V první řadě je třeba si uvědomit, že Live ID není totéž co OpenID, ani to není nějaká varianta OpenID. Ačkoli je princip fungování velmi podobný, zejména z hlediska uživatele (taky je přesměrován na stránky poskytovatele, tam se přihlašuje, vydává svolení s autentizací apod.), tak tyto dvě metody nejsou zaměnitelné – alespoň zatím. Microsoft však ohlásil, že se Live ID stane zároveň poskytovatelem OpenID, spuštění je očekáváno někdy během letošního roku. Možná by se z této informace mohlo zdát, že je podpora pro Live ID zbytečná, že bude stačit pár měsíců počkat a uživatelé s Live ID se budou moci přihlašovat i na stránkách s OpenID přihlašováním, ale přesto stojí za to věnovat Live ID trochu pozornosti.

Live ID identifikátor má, na rozdíl od OpenID, tvar e-mailové adresy. V základní podobě je to tedy něco@hotmail.com nebo něco@windowsli­ve.com, ale lze si vytvořit i alias s vlastní e-mailovou adresou. Pokud chcete získat Live ID identifikátor, navštivte stránky Live služeb a zaregistrujte se.

Dalším zásadním rozdílem je to, že Live ID není distribuovaný jako OpenID. Identitu Live ID spravuje a uživatelská data udržuje vždy Microsoft. Jestli to je dobře nebo špatně, to už si musí rozhodnout každý sám. Někomu bude vyhovovat, že informace o jeho identitě udržuje velká společnost, jinému zase bude vadit, že to je Microsoft a dá přednost důvěryhodnému poskytovateli OpenID.

Z programátorského hlediska má Live ID další odlišnosti: Jednak je potřeba pro každou službu vygenerovat na stránkách Microsoftu identifikátor aplikace, takzvaný AppID. Na druhou stranu není Live ID omezeno pouze na webové aplikace; jeho pomocí se mohou uživatelé přihlašovat k desktopovým aplikacím. Microsoft dodává i .NET knihovny pro vývojáře desktopových aplikací, které implementují Live ID přihlašování i pro VB.NET či C#.

Implementujeme Live ID pro webovou službu

Implementace přihlašování Live ID není nijak složitá. Microsoft naštěstí nabízí Live ID SDK a můžete si z jeho stránek stáhnout potřebné knihovny pro C#, Javu, Perl, PHP, Python, Ruby a VB.

Druhým důležitým krokem je registrace aplikace a získání App ID.

Získání App ID

Během registrace je nutné zadat doménu, na níž bude aplikace provozována, a návratovou adresu, kam se má skript vrátit. Já jsem opět jako ukázku použil doménu misc.maly.cz, takže si můžete opět fungování celého příkladu ověřit live na adrese http://misc.ma­ly.cz/lid/sam­ple/. Jako testovací příklad je použit skript, přiložený ke knihovně.

Live ID informace

Jakmile máme zaregistrovanou aplikaci, je potřeba vyplnit její číslo a „bezpečnostní kód“ (secret) na patřičná místa do souboru Application-Key.xml. Pak už lze bez dalších kroků zkusit, zda přihlášení funguje – zadejte do prohlížeče adresu svého /sample skriptu. Pokud jste při registraci neudělali chybu, přivítá vás přihlašovací obrazovka:

Přihlašovací obrazovka

Všimněte si, že na rozdíl od OpenID nezadáváte žádný identifikátor, jméno, nic. Pouze kliknete na odkaz Login. Po přihlášení je běh vrácen na adresu, kterou jsme zadali při registraci aplikace – u demonstračního skriptu je to /sample/webauth-handler.php, který zařídí potřebné akce při přihlašování i odhlašování. Jak je vidět ze zdrojového kódu, o vše se stará knihovna WindowsLiveLogin.

Po přihlášení dostane aplikace unikátní řetězec, kterým je uživatel identifikován. Aplikace může požádat uživatele o další informace (např. uživ. jméno) a spárovat si je s daným identifikátorem, popřípadě může použít techniku Delegated Authentication, pomocí které lze k určitým uživatelským datům přistupovat (obdoba rozšíření Simple Registration, známého z OpenID).

Závěr – má Live ID smysl?

Při implementaci Live ID si většinou vystačíme s informacemi z ilustračního příkladu. Pokud ne, je k dispozici dokumentace a velmi slušný Getting Started.

Otázkou však zůstává, zda má smysl implementace Live ID přihlašování. Live ID je vázáno na jediného poskytovatele, Microsoft, a tím jsou dány jeho výhody i nevýhody. Nevýhod si je evidentně vědom i Microsoft sám, o čemž svědčí i přislíbená podpora OpenID. Uplatnění nalezne Live ID jistě např. ve službách, které jsou nějak provázané s jinými službami od Microsoftu, ale mimo planetu Microsoft je jeho přínos diskutabilní. Přesto své místo mezi webovými autentizačními metodami má.

Používáte Live ID?

Komentáře

Subscribe
Upozornit na
guest
7 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Boris

odporucam pozriet si licenciu. Postavit cokolvek na Live ID = buduce problemy
http://msdn.microsoft.com/en-us/library/bb226715.aspx

Michal Aichinger

Můžete pro nás ostatní napsat co se vám na licenci nelíbí?

STiCK

"Live ID je vázáno na jediného poskytovatele, Microsoft, a tím jsou dány jeho výhody i nevýhody".
No ak je to tak, mozno by bolo dobre spomenut tie vyhody v clanku, lebo mna momentalne ziadna nenapada.

radek

integrace s nejrozsirenejsimi OS?

yossarian

Nativni podpora v .NET?

Anonymní
21. 1. 2009 13:28 smazal Martin Hassman, důvod: Spam.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.