Caros,
Ultimamente tive que passar pelo seguinte dilema: autenticar a intranet do
Apache com os usuários do
Active Directory da Microsoft. Todos os usuários teriam que acessar a página, mas antes teriam que se autenticar. Pesquisei muito na net, mas os documentos são muito escassos. Tive que caçar em site em site pela net e montar esse tutorial.
Ok. Suponho que você tenha uma estrutura de AD montada e funcionando. O servidor que montei usava a distribuição
openSUSE 10, portanto nessa distribuição funcionou e a versão do Apache usada foi a 2 2.2.4.
Vamos colocar a mão na massa!
1 - Fazer o download do mod_ntlm para a versão do Apache2, eu fiz o download no seguinte endereço:
http://myheel.net/blog/wp-content/uploads/2007/04/ntlm.tar.gz
2 - Descompacte o arquivo:
# tar -xzvf ntlm.tar.gz
3 - Tentei executar os comandos ./configure e makes da vida, mas nesse não funcionou, então compilei manualmente mesmo:
sudo apxs2 -i -a -c mod_ntlm.c
4 - Depois execute o seguinte comando:
sudo make clean
5 - Vamos criar o arquivo que irá carregar o módulo
ntlm no Apache2. No meu Apache eu adicionei um include no httpd.conf para o diretório /etc/apache2/conf.d/ e dentro desse diretório eu crio os confs que serão carregados pelo Apache, então criei o arquivo com o seguinte conteúdo:
# vi ntlm.conf
LoadModule ntlm_module /usr/lib/apache2/mod_ntlm.so
E copiei para dentro do /etc/apache2/conf.d/. Salve e saia.
6 - Carregar o mod_ntlm para o Apache:
# a2enmod ntlm
7 - Depois executar o seguinte comando:
# /etc/init.d/apache2 force-reload
8 - Agora crie o diretório que será pedido a autenticação:
<Directory "/srv/www/htdocs/">
AuthType NTLM
AuthName "Autenticar Acesso"
NTLMAuth on
NTLMDomain DOMINIO
NTLMServer NomeDoServidor
NTLMBackup NomeDoServidor2 #Opcional se você tiver o BDC Controlador de domínio de backup
NTLMAuthoritative off
require valid-user
Satisfy all
</Directory>
9 - Pronto, depois é só digitar:
# apache2ctl restart
E tentar abrir o index, que no nosso caso se encontra no diretório /srv/www/htdocs.
Boa sorte a todos!