A autenticação para o LDAP do ActiveDirectory é bem-sucedida com a senha correta OU sem senha

2

Estou trabalhando no suporte à autenticação LDAP para nosso aplicativo da web. Durante o teste dessa funcionalidade, notei um comportamento muito estranho: o usuário pode autenticar usando a senha correta OU sem senha. Se uma senha errada for inserida, a autenticação falhará.

No começo, achei que poderia ter perdido algo no meu código, mas decidi testá-lo com algum cliente de desktop. Eu tentei 'Active Directory Explorer' do Windows Sysinternals e, surpreendentemente, resultou no mesmo comportamento.

Alguma idéia sobre isso? Como você adivinhou, estamos usando o Active Directory. Deixe-me saber se devo aprender mais detalhes sobre nossa configuração do Active Directory.

    
por Arturs Licis 07.08.2012 / 09:19

2 respostas

2

Um nome distinto não pode "autenticar" com uma senha de comprimento zero. A operação simples do LDAP BIND tem as seguintes possibilidades:

  • sem DN, sem senha ( anonymous , nenhuma autenticação ocorre)
  • DN, sem senha ( unauthenticated , nenhuma autenticação ocorre)
  • DN, senha (a autenticação é bem-sucedida se as credenciais corresponderem)
  • sem DN, senha (comportamento do servidor não definido nos padrões)
por 07.08.2012 / 15:07
2

Parece que encontrei uma explicação aqui: LDAP: autenticação simples . Afirma:

Note: If you supply an empty string, an empty byte/char array, or null to the Context.SECURITY_CREDENTIALS environment property, then the authentication mechanism will be "none". This is because the LDAP requires the password to be nonempty for simple authentication. The protocol automatically converts the authentication to "none" if a password is not supplied.

    
por 07.08.2012 / 09:30