Ověřování uživatelů pomocí služby Active Directory v klient-server aplikace

hlasů
11

Byl jsem požádán, aby poskytovat podporu pro autentizaci uživatelů proti Active Directory v naší stávající aplikace klient-server.

V okamžiku, kdy uživatel dodává uživatelského jména a hesla z počítače klienta, přešel přes drát (šifrovaná) na našem serveru procesu a uzavřeno proti uživatelské jméno / heslo uložené v databázi.

Zpočátku myslel jsem, že to bude snadné problém vyřešit, protože jsem mohl jednoduše ověřit jméno / heslo do uživatelského proti Active Directory z našeho serveru procesu. Nicméně se ukazuje, že uživatelé by neměli být nuceni zadat heslo z naší klientské aplikace, místo toho brát to je pověření ze současného systému Windows přihlašovací relace.

Já jsem teď potýkají s problémem , jak ověřit pomocí služby Active Directory, aniž by heslo? Jsem si jistý, že musí existovat způsob, jak nějak procházející nějakou „Token“ z klienta na našem serveru procesu, který by mohl být použit jako alternativní metodu ověřování, ale můj výzkum doposud přilákalo prázdné.

Náš server je napsán v jazyce C ++, takže budeme používat Win32 API . Mám také v úmyslu rozvíjet a ladit pomocí tohoto virtuálního počítače se systémem Windows 2008 AD LDS - doufám, že to bude stačit na to, co se snažím dosáhnout.

Jakákoli pomoc či radu je ceněn.

Položena 26/08/2009 v 23:35
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
9

Budete dělat NTLM / Kerberos / vyjednávání SSPI výměny smyčku . Tam je aa plný vzorek na MSDN jak pro klienta i serveru . Aby bylo jasno: vy ani používat žádný druh přístupu LDAP explictily. Je LSA (Local Security Authority), který mluví s LDAP a určuje totožnost klienta. Pokud jste úspěšný v tom celý SSPI smyčky, ověření se podařilo už i identita klienta je alread ověřen proti LDAP. Pokud váš server potřebuje znát identitu klienta (např. Znát použití rname) je to načte z kontextu zabezpečení za následek SSPI smyčky pomocí QueryContextAttributes(..., SECPKG_ATTR_NAMES,...)a načte uživatelské jméno ze SecPkgContext_Namesstruktury.

Odpovězeno 26/08/2009 v 23:43
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more