Active Directory federált hitelesítés a felhőben lépésről-lépésre

A nagyközönségnek szánt webalkalmazásokban nagyon jó hitelesítési megoldás az ASP.NET Membership. Céges környezetben viszont sokkal profibb a már meglévő architektúrát használni. Ha az alkalmazásunk a céges AD-val szemben hitelesít, akkor a felhasználók jogait csak egy helyen kell menedzselni, és bejelentkezéshez sem kell még egy név-jelszó párost megjegyezni. Leírásomban egy erre képes Windows Azure felhő-alkalmazás megírásán megyünk végig.

Az Active Directory kifejezés hallatára valószínűleg erőforrás-igényes, fejlesztői környezetben ritkán megtalálható Windows Serverek rémlenek fel. Ettől nem kell tartani: a lentieket úgy írtam meg, hogy egyetlen fizikai gép igénybevételével mindent ki lehessen próbálni. Paradox módon emiatt kicsit még bonyolultabb is lett a folyamat, úgyhogy aki ezt a leírást végigviszi, annak az éles telepítés sem fog nagy meglepetéseket okozni.

Mi a federált hitelesítés?

Példánkban az alkalmazás és a hitelesítést végző szerver két logikailag teljesen különálló helyen lesz (szemben azzal, amikor az autentikációt maga az alkalmazás végzi). Ezt a hitelesítési módot federált hitelesítésnek hívják. Működésére remek analógia a sörözés: ha belépünk egy kocsmába, és viszonylag fiatalos arcunk van, akkor hitelesítésre van szükségünk (igazolnunk kell nagykorúságunkat). Viszont a hitelesítést nem a kocsma saját “motorja” végzi (azaz nincs náluk egy óriási adatbázis az összes 18 évesnél idősebb magyar állampolgár adataival), hanem federálják azt a magyar államnak: elkérik a személyi igazolványunkat. Ezt a állam állította ki, és igazolja életkorunkat. A kocsma pedig megbízik a Magyar Államban, tehát elfogadja az általa kiállított igazolást, és vehetünk sört.

image

Ugyanez szakkifejezésekkel leírva: alkalmazásunk szeretne azonosítani egy felhasználót. Ehhez nem a saját adatbázisából dolgozik, hanem elküldi a felhasználót egy hitelesítési szerverhez (esetünkben az Active Directory-hoz); ott megtörténik a bejelentkezés (konkrétan a felhasználó gépén felugrik a “név-jelszó” ablak), majd az Active Directory egy digitálisan aláírt tokent küld vissza alkalmazásunknak a felhasználó adataival. Mivel mi megbízunk a kérdéses Active Directory-ban, elfogadjuk majd a tokenen szereplő állításokat, és a felhasználót bejelentkezettnek tekintjük anélkül, hogy valaha is találkoztunk volna a hitelesítési adataival.

olvasásának folytatása

Reklámok

MIX ‘11 élmények – közelről

Azzal a szándékkal érkeztem a MIX ‘11 konferenciára, hogy ha lehetőségem nyílik rá, aminden Windows Azure előadást megnézek. Az első napig ezt az elképzelést még sikerült is megvalósítanom, de a második napon a keynote után már “elcsábultam”, és sok webes technológiákkal és eszközökkel foglalkozó előadásra mentem be – egyszerűen az előadó vagy a téma kapcsán. Azt kell mondanom, hogy nem bántam meg ezt a fajta “bűnbeesést”, de természetesen, majd off-line pótolom mindazt, amiről lemaradtam.

Mindenkinek ajánlom, hogy ha jut rá ideje, nézze meg a konferencia keynote-jait, amelyek itt érhetők el!

Windows Azure témában az alábbi előadásokat javaslom:

Felhívás egy keringőre – a felhőben

Az elmúlt hetekben több ügyféllel és partnerrel is beszéltem, akik a Windows Azure felhasználásán gondolkodnak, olyan módon, hogy részben vagy egészben alkalmazásokat tegyenek ki a felhőbe. Sokan új fejlesztéseken törik afejüket, ahol a felhő ugyan cél, de nem azonnal, vagy nem teljes egészében. Sokan olyan webes (SOA jellegű) alkalmazást szeretnének fejleszteni, ahol ASP.NET, ASP.NET MVC és Silverlight technológiákat használnak, és ha majd az idő megérett rá, a felhőbe helyezik ki.

Sokan úgy szeretnék az alkalmazást kifejleszteni, hogy amit most kezdenek el kifejleszteni a jelenlegi technológiákkal, azt forráskód váltotatása nélkül – egyszerű konfigurációváltoztatással – fel tudják a későbbiekben tölteni a Windows Azure előfizetésükre.

A megoldás az lehet, hogy az Azure-ban megvalósított szolgáltatásokat, amelyeket az elkészítendő alkalmazásokban is használni szeretnének (pl. blob-ok, queue-k, caching, access control, stb.) egy absztrakciós réteggel elfedjük. E fölé a réteg fölé elkészítjük az ASP.NET/ASP.NET MVC/Silverlight technológiákat és az Azure szolgáltatásokat egyaránt megvalósító konkrét komponenseket. Amikor egy “hagyományos” alkalmazást a felhőbe helyezünk, egyszerűen a konfigurációs állományban lecseréljük az absztrakciós rétegre ültetett konkrét komponenseket, hogy azok már Azure szolgáltatásokat használjanak.

Te részt vennél-e egy olyan nyílt forráskódú fejlesztésben, amely ezt célozza meg? Milyen ötleteid, elképzeléseid vannak? Mi lenne az a három legfontosabb dolog, amit először elkészítenél?

Kommentezd ezt a bejegyzést!