Não sei porque cargas d'água um dia parou de fazer autenticação do apache no AD do windows 2000. Juro que não mudei nada... Tinha 3 servidores configurados pra autenticar via LDAP no AD. Um dia pararam os 3. Sendo ambiente Microsoft até não me surpreendeu tanto... risos.
Conversei com o Adminstrador da rede windows e fui informado de que tudo continuava como no dia anterior quando ainda funcionava.
Sendo assim meu pensamento foi: "ixxx...".
Debugei o Apache e não me dava informações suficientes do porque do problema. Antes de continuar exponho aqui o arquivo .htaccess que usei e apresentou problemas:
<Directory /usr/local/nagios/sbin>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
AuthType Basic
AuthName "Acesso ao Nagios"
AuthLDAPUrl "ldap://ad.xyz.com.br/dc=xyz,DC=com,DC=br?sAMAccountname?sub?(objectClass=*)"
AuthLDAPBindDN user@xyz.com.br
AuthLDAPBindPassword ***
require group CN=TI,OU=Groups,OU=SEDE,DC=xyz,DC=com,DC=br
</Directory>
Encontrei um ser humano com o mesmo problema que eu
aqui. Acompanhem o desespero do mesmo. :-)
Encontrei informações no site
Microsoft TechNet de como fazer buscas em AD windows. Uma das seções do texto ensina como conectar ao AD para fazer buscas e deixa claro:
For standard LDAP searches, directory clients connect to TCP port 389. To search the Active Directory global catalog, directory clients must instead connect to TCP port 3268.
Ativando Lutieri's translator.......... OK loaded!Para buscas convencionais LDAP, clientes conectam a porta 389/TCP. Para buscar no catálogo global do Active Directory, clientes precisam conectar a porta 3268/TCP.
Agora eu me coloco a pensar e vejo que: "Sim, eu estava querendo buscar no AD inteiro, pois meu Base DN é dc=xyz,DC=com,DC=br, e conectando na porta 389 que é a padrão.
Para mais informações da opção "AuthLDAPUrl" e saber o que é Base DN consulte a documentação do apache
aqui.
Por isso o que me surpreende não foi ter parado de funcionar de um dia pro outro. E sim ter funcionado por algum tempo. Mas... C'est la fucking vie...
Enfim pra solucionar o problema e funcionar de uma vez apresento duas soluções. Ou muda o Base DN e coloca-se um grupo(OU) ou muda-se a porta para conectar. Bom.. qualquer que seja a escolha vai mudar apenas a diretiva "AuthLDAPUrl", portanto vou mostrar apenas o que muda no valor dela:
Solução 1ª:
AuthLDAPUrl "ldap://ad.xyz.com.br/
ou=user,dc=xyz,DC=com,DC=br?sAMAccountname?sub?(objectClass=*)"
Solução 2ª:
AuthLDAPUrl "ldap://ad.xyz.com.br
:3268/dc=xyz,DC=com,DC=br?sAMAccountname?sub?(objectClass=*)"
Marcadores: ad, apache, ldap