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: , ,
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s