Autenticar usuários usando o Active Directory na aplicação cliente-servidor

votos
11

Fui convidada para fornecer suporte para autenticação de usuários contra um Active Directory em nossa aplicação cliente-servidor existente.

No momento em que um usuário fornece um nome de usuário e senha de uma máquina cliente, passou sobre o fio (criptografada) para o nosso processo de servidor e comparado com um nome de usuário / senha armazenada em um banco de dados.

Inicialmente, achei que isso seria um problema fácil de resolver, já que eu poderia simplesmente autenticar os usuários nome / senha contra Active Directory do nosso processo de servidor. No entanto verifica-se que os usuários não devem ter que digitar uma senha de nosso aplicativo cliente, em vez de tomar ele de credenciais do atual do Windows sessão de login.

Eu estou agora confrontados com um problema de como autenticar usando o Active Directory sem ter uma senha? Tenho certeza de que deve haver uma maneira de alguma forma passar algum tipo de token do cliente para o nosso processo de servidor que pode ser usado como um método de autenticação alternativa, mas minha pesquisa até agora tem desenhado um em branco.

O nosso servidor é escrito em C ++, por isso vamos estar usando a API Win32 . Pretendo também desenvolver e depurar isso usando uma máquina virtual com o Windows 2008 AD LDS - Eu estou esperando que isso será suficiente para o que eu estou tentando alcançar.

Qualquer ajuda ou aconselhamento é muito apreciada.

Publicado 26/08/2009 em 23:35
fonte usuário
Em outras línguas...                            


1 respostas

votos
9

Você faz um / Kerberos / Negociar NTLM SSPI circuito de câmbio . Há aa amostra completa no MSDN, tanto para o cliente eo servidor . Para ser claro: você não usar qualquer tipo de acesso LDAP explictily. É o LSA (autoridade de segurança local) que fala com LDAP e estabelece a identidade do cliente. Se você é bem sucedido em fazer todo o circuito de SSPI, a autenticação já conseguiu e a identidade do cliente é alread autenticado contra o LDAP. Se o seu servidor precisa saber a identidade do cliente (eg. Conhecer a rname uso) ele recupera-la do contexto de segurança resultou no circuito SSPI usando o QueryContextAttributes(..., SECPKG_ATTR_NAMES,...)e recupera o nome do usuário a partir da SecPkgContext_Namesestrutura.

Respondeu 26/08/2009 em 23:43
fonte usuário

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