CardSpace és ASP.NET AJAX 2: A terep előkészítése

(Aki esetleg lemaradt volna a bevezetőről, ezen a címen találja meg.)

A webszerver előkészítése

A legelső feladatunk, hogy létre kell hoznunk egy SSL-es webhelyet. Ehhez IIS-re lesz szükségünk, tehát aki eddig hozzám hasonlóan a Visual Studio beépített fejlesztői webszerverét használta, most egy kicsit búcsúzzon el tőle és kapja elő az Add/Remove Programsot és lökje fel az IIS-t a gépére.

Ha az IIS telepítést megelőzte az ASP.NET telepítése, akkor következő lépésként érdemes beregisztrálni az ASP.NET-et az IIS-be, amire az aspnet_regiis /i az ideális eszköz (megtalálható a %FrameworkDir%v2.0.50727 mappában).

Az SSL-hez szükséges tanúsítvány létrehozását az IIS 6 Resource Kitben található SelfSSL eszközre bízzuk. Az egész csomag ingyenesen letölthető, aki nem akar sokmindent feltelepíteni, válassza ki csak ezt a telepítőből. A mindössze 48 KB-os parancssori alkalmazás elérhető a Start menüből, ami lényegében egy command prompt ablak a %ProgramFiles%IIS ResourcesSelfSSL mappára.

Ha paraméterezés nélkül indítjuk, akkor SSL-esíti a localhostunkat, ami nálunk most nem egészen jó. A végső alkalmazásunkat valószínűleg interneten keresztül szeretnénk publikálni, azaz teljes FQDN-nel http://www.akarmi.hu formában, amit a böngészők az Internet Zónába sorolnak. Ha azt szeretnénk, hogy a fejlesztői környezetünk is ebben legyen, akkor pontnak kell lennie a hostname-ben és természetesen a tanúsítványban. Tehát használjuk a /N paramétert, valahogy így (a /T rögtön a trusted root CA-k közé is beteszi a tanúsítványt, ami most fontos nekünk):

    selfssl.exe /N:CN=bambus.local /T

A programot mindenképpen rendszergazdai jogokkal indítsuk, sokféle hibaüzenettől kímélhetjük meg magunkat! Ha sikerült "Failed to build the subject name blob: 0x80092023" hibaüzenetet kapni, akkor kifelejtetted a CN=-t!

Névfeloldás konfigurálása

A bambus.local-t természetesen nem fogja megtalálni a böngésző, hacsak nem segítünk neki azzal, hogy felvesszük a hosts fájlba ezt a rekordot. Irány a Notepad és a %WinDir%System32Driversetchosts fájlba vegyük fel a következő rekordot:

    127.0.0.1	bambus.local

Ha ez így megvan, akkor teszteljük az SSL működését például azzal, hogy böngészőben megnyitjuk a https://bambus.local/print.gif útvonalat. Adig etessük a böngészővel a tanúsítványokat, amíg már nem jelez hibát!

Ezek után úgy tűnik érdemes újraindítani az egész gépet a Windows CardSpace szolgáltatást (net stop idsvc), különben később egy barátságos, ám semmitmondó "Windows CardSpace encountered an error when verifying the identity of the site and cannot continue. To close Windows CardSpace, click OK. To temporarily prevent Windows CardSpace from starting, click Disable." üzenet fog megjelenni a kártya kiválasztásakor.

Tanúsítványok előkészítése

Az előző lépésben használt SelfSSL létrehozott egy gyönyörű tanúsítványt, és azt be is konfigurálta az IIS-ben. Erre a tanúsítványra sajnos még nekünk is szükségünk lesz, amikor a kliens által elküldött kártya információkat próbáljuk kibogarászni szerver oldalon. Fájdalom, de alapértelmezés szerint a webalkalmazást futtató ASPNET (XP-n) vagy Network Service (Windows Server 2003-on) felhasználónak nincs joga hozzáférni ehhez a tanúsítványhoz.

A bátrabbak elindíthatják a Certificates MMC snap-int, megnyitva a Local Computer tanúsítványtárát látni fogjuk a szóban forgó tanúsítványt, csak éppen a hozzáférést nem tudjuk szabályozni rajta.

A tanúsítványokat a fájl rendszer ACL-jei védik, mégpedig a %AllUsersProfile%Application DataMicrosoftCryptoRSAMachineKeys mappában. Ha vadulni szeretnénk, akkor persze állítgathatjuk itt az ACL-eket, de ha sebészi beavatkozást szeretnénk végezni, akkor célszerszámra lesz szükségünk. A WseCertificate3.exe a WSE 3.0 része, és telepítés után a C:Program FilesMicrosoft WSEv3.0Tools mappában találjuk meg mind a 40 KB-ját.

Természetesen ezt az eszközt is rendszergazdai jogokkal indítsuk, különben "Keyset does not exist" hibaüzenetet kapunk. Ugyanezt a hibaüzenetet kapnánk később is, ha a szerver oldali kódunknak nincs joga elérni egy tanúsítványt.

Válasszuk a Local Computer locationt és a Personal store-t, majd kattintsunk az alsó View Private Key File Properties gombra, ahol a szokásos ablakban adjunk legalább Read & Execute jogot az ASPNET vagy a Network Service felhasználói fióknak.

Mind a SelfSSL.exe, mind pedig a WseCertificate3.exe fájlt érdemes eltenni magunknak, hiszen ezekre még akkor is szükségünk lesz, amikor az alkalmazásunkat a végleges szerverre telepítjük!

Folyt. köv.

 

Update: nem kell az egész gépet újraindítani, elég a Windows CardSpace szolgáltatást.

Technorati tags: , ,
Reklámok

One thought on “CardSpace és ASP.NET AJAX 2: A terep előkészítése

  1. EDIT

    ÉN A VEZÉRLŐ PULTBÓL VÉLETLEN KITŐRŐLTEM A WINDOWS LIVE-T ÉS E MIATT NEM TUDOK MSN-T LELEPÍTENI.HOGYAN LEHETNE EZT MEGOLDANI????LÉCCI VALAKI SEGÍTSEN.

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