CardSpace és ASP.NET AJAX 1: Bemelegítés

Aki körbekattintgatott már az új Vistáján vagy alaposan megnézi, mi kúszik a gépére a Windows Update-ről, annak biztosan feltűnt egy új ikon a Vezérlőpulton. A Windows CardSpace, vagy gyerekkori nevén InfoCard, bizony még a Workflow Foundationnél is mostohább része a .NET Framework 3.0-nak, róla ugyanis még összesen nem beszélt annyit senki, mint a három Foundation bármelyik apró részletéről.

Az egésznek az a célja, hogy egyszerűsítse a felhasználók számára az egyes webhelyeken használt identitások kezelését és persze lehetőleg biztonságosabbá is tegye azt, miközben nem megy bele platformfüggő és csúnya kapitalista, monopolista, erőfölénnyel visszaélő zsákutcákba, ami miatt aztán egy remek alapötlet kudarcba fulladna (ld. Passport). Fontos változás az eddigiekhez képest, hogy a rendszer nem azon alapul, hogy valamilyen központi szerveren tárolódnak az indentitásunkhoz kapcsolódó adataink, hanem a saját gépünkön és mi választhatjuk ki, hogy éppen akarjuk-e valamelyiket használni vagy sem és közben egyértelműen látjuk, hogy milyen adatokat osztunk meg az adott webhellyel.

Akinek sikerült felkelteni az érdeklődését, bőven olvashat még róla a közösségi oldalán, az MSDN-en, vagy akár a Wikipedián. Ennek a cikknek (és a folytatásainak) az a célja, hogy segítsen beépíteni a CardSpace alapú hitelesítést webalkalmazásainkba, ugyanis azt vettem észre, hogy a weben található példák sok sebből véreznek.

A teendők szépen sorban:

  1. Bemelegítés: ezt olvasod most, csak hogy lássuk, mibe is vágjuk a fejszénket.
  2. A környezet előkészítése: IIS, tanúsítványok, SSL, ACL-ek.
  3. Adatbekérés és elküldés megvalósítása weboldalon: itt lesz egy kis Microsoft AJAX, hogy kevesebb JavaScriptet kelljen írnunk, mert a ValidateRequesttel és a HTML encodinggal lesz egy adag szívás.
  4. AJAX ide vagy oda, külön részben küzdünk a böngészőfüggőséggel, ha esetleg valaki hiányolná.
  5. Adatok feldolgozása szerver oldalon: titkosított XML értelmezése szinte élményszámba megy, előre lehet örülni neki.
  6. Bejelentkezés megvalósítása: ez már szinte sétagalopp, még ha a Membership providert meg is kell kerülni.

A dolog lényege igen röviden:

Kell készítenünk egy olyan SSL-es weblapot, amelyen JavaScripttel felizgatunk egy OBJECT tag-et, hogy az jelenítse meg a kártya kiválasztó ablakot (ami nagyon hasonló a Vezérlőpultos applethez). Ez a kontroll XML-t fog nekünk visszaadni, amit "HTML enkódolva" el kell küldenünk a szerverre, hogy ott aztán a megfelelő XML tageket tanúsítványok segítségével értelmezzük. Ennek a nagy küzdelemnek az eredménye az lesz, hogy átmegy egy ID a kliensről a szerverre, ami egyedi a kártya-webhely párosra nézve, tehát mi szerver oldalon elhihetjük, hogy ez az ID a világon csak egyetlen felhasználónak áll a rendelkezésére. Ezt eltesszük egy adatbázisba, hogy amikor bejelentkezéskor felhasználó név és jelszó helyett ezt kapjuk meg, akkor megnézzük, hogy ott van-e és ha igen, akkor tudjuk, hogy melyik felhasználóhoz tartozik, ugyanis az kell ahhoz, hogy a Membership providerrel elhitessük, hogy a felhasználó már azonosította magát.

Vonzó, nem? smile_tongue

Folyt. köv.

 

Technorati tags: , ,

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s