Não é possível autenticar usando Apache e authnz_mod_ldap no Active Directory

6

Eu tenho um problema com a Apache2 authentication usando authnz_ldap_module para autenticar usuários de Active Directory . Minha versão do Apache é 2.2.16-6+squeeze10 .

Aqui está a configuração que estou tentando usar sem sorte (uma das muitas combinações, para ser preciso):

AuthzLDAPAuthoritative off
AuthBasicProvider ldap
AuthType Basic
AuthName "Active Directory"
AuthLDAPURL "ldap://server1.my.company.tld:3268 server2.my.company.tld:3268/dc=my,dc=company,dc=tld?sAMAccountName?sub"
AuthLDAPBindDN "uid=my_user,dc=my,dc=company,dc=tld"
AuthLDAPBindPassword "mypassword"
Require valid-user

E recebo as seguintes entradas no error.log do Apache:

[debug] mod_authnz_ldap.c(379): [client some_ip_here] [12391] auth_ldap authenticate: using URL ldap://server1.my.company.tld:3268 server2.my.company.tld:3268/dc=my,dc=company,dc=tld?sAMAccountName?sub
[info] [client some_ip_here] [12391] auth_ldap authenticate: user my_user authentication failed; URI / [LDAP: ldap_simple_bind_s() failed][Invalid credentials]
[error] [client some_ip_here] user my_user: authentication failure for "/": Password Mismatch

É claro que eu entro a senha correta toda vez, eu seria bloqueado no AD cerca de cem vezes, não aconteceu uma única vez até agora.

Não consigo verificar se posso me conectar ao meu controlador de AD porque, quando tento:

ldapsearch -h server1.my.company.tld -p 3268 -D "dc=my,dc=company,dc=tld"

Recebo o seguinte erro:

text: 000004DC: LdapErr: DSID-0C0906E8, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1db1

Eu não tenho absolutamente nenhuma ideia de como ligar com ldapsearch e o manual não me ajudou até agora.

O que estou fazendo de errado com a configuração Apache2 e como posso ligar com ldapsearch ?

Eu fornecerei informações adicionais, se forem necessárias.

    
por tymik 19.02.2013 / 12:02

2 respostas

7

O caso mais problemático foi AuthLDAPBindDN, que tinha que estar na sintaxe de "[email protected]" e não de sintaxe "domain \ user" nem simplesmente "user" nem "uid = my_user, dc = my, dc = company, dc = tld ". Abaixo está a configuração correta que funcionou para mim, que eu forneci aqui como solução para o caso.

            AuthzLDAPAuthoritative off
            AuthBasicProvider ldap
            AuthType Basic
            AuthName "Active Directory"
            AuthLDAPURL "ldap://server1.my.company.tld:3268 server2.my.company.tld:3268/DC=ad,DC=upos,DC=pl?sAMAccountName?sub?(objectClass=*)"
            AuthLDAPBindDN "[email protected]"
            AuthLDAPBindPassword "some_random_password"
            Require valid-user

Demorei muito tempo para fornecer a resposta, pelo que sinto muito.

    
por 21.07.2013 / 16:56
3

Você tem que dizer ao ldapsearch quem você está ligando como para que, por ldapsearch --help, use o switch -U e dê a ele um nome de usuário ... ou seja,

ldapsearch -h server1.my.company.tld -p 3268 -D "dc=my,dc=company,dc=tld" -U <username>
    
por 19.02.2013 / 19:09