Lenne egy összetettebb problémám és itt fogytak el az AD ismereteim.
Adott egy AD-vel rendelkező irodai hálózat (2008R2, W7/XP kliensek, utóbbiak fogyóban). Adott egy kliens-szerver alapú .NET-es alkalmazás. Továbbá jöhetnek kliensek opcionálisan VPN-en keresztül (amely OpenVPN és nem sok köze van az AD-hez).
Amit el szeretnék érni, hogy ha egy AD-s user indítja el egy olyan gépen, amelyre egy domaines user van belépve, akkor az egész authentikációs folyamatot intézze már SSO módon, ne kelljen jelszavak beírógátasával húzni az időt.
Tehát vegye át a Windowsból az usert és mutatkozzon be a szerver résznek úgy, hogy "Kovács Béla vagyok, xy DC-ről, jó?" Itt további kérdés, hogy szerver oldalon hogyan fogok tudni hozzáférni az user néhány alapvető adatához (pl. usernev, valami egyedi azonosító, stb. - Erre eddig úgy néztem a System.DirectoryServices lesz a nyerő. Viszont nem világos, hogy tudok-e ezzel SSO tokent ellenőrizni)
Viszont az érdekesebb kérdés, hogy mi van akkor, ha pl. VPN-en keresztül indítja valaki a szoftvert. Ilyenkor ugye nem tudunk AD-s security infókat előhalászni semmiképp, tehát marad a jelszóbekérés. Kérdés az, hogy erre van-e valami kulturált megoldás (tehát a Windowsba integrálva, hogy a végén én csak valami tokent kapjak az egész név-jelszó formmal, authentikcáióval, stb. ne kelljen foglalkozni), vagy marad a kézi maszatolás, szerverben AD-ből ellenőrzés?
Lényegében hasonlóan kellene működnie, mintha pl. egy sima fájlmegosztást használnánk: ha van érvényes security token, akkor "just works", ha nincs, akkor jön az username/pw ablak.
Ki hogy csinálná, mit ajánl rá?
Nézelődtem neten, de annyira nem éreztem magam kisegítve, jórészt csak webes rendszerekkel kapcsolatban találtam infót, nekem meg ugye desktop appom van és amit lehet, azt szeretnék a Windowsszal, AD-vel elintéztetni és nem kézimunkázni. Az sem világos nekem, hogy pontosan hogyan hívja a Microsoft azokat a dolgokat, amelyek nekem kellenek. Ha valaki azt meg tudja mondani, hogy merre nézelődjek pontosan, már azt is megköszönném :)
Lenne még egy apróság, bár ez inkább elvi kérdés: érdemes-e esetleg Group Policy-vel jogosultságot kezelni vagy inkább célszerűbb a programon belül megoldani?
--
Az egész SSO-s mókának igazából kettő célja lenne: egyik, hogy ne kelljen +1 rendszerben usereket kezelni (és mivel AD egy elég biztos pont itt, elég kézenfekvő, hogy ahhoz kössem), egyszerűbb adminisztrálni (nem marad el egy account, akár letiltás, akár engedélyezésről van szó). Továbbá nem elhanyagolható kényelmi plusz a felhasználóknak.