Autenticação de diretório protegido do
Apache 2 com
".htaccess" via AD 2008 64 bits.
Devido a necessidade de ter vários diretórios autenticados em meu
servidor, existia vários arquivos de autenticação, o que tornava a
administração pouco produtiva e sempre que fosse necessário
incluir, bloquear ou remover um usuário, era preciso acessar
vários arquivos e diretórios para tal.
Comecei a buscar na Internet sobre a autenticação de um diretório
do Apache via
htaccess e AD. Encontrei vários artigos
que indicavam como fazer tal configuração, mas não obtive
sucesso em nenhum deles e sempre ocorria o erro:
Password Mismatch
Por não encontrar respostas para este erro, comecei a
configuração por conta própria, tendo como base:
Cenário:
- Debian 6.0 64 bits
- Apache 2.2.22
Instalação dos módulos LDAP para o Apache 2:
# apt-get install libapache2-mod-ldap-userdir
Habilitando os módulos:
# a2enmod ldap
# a2enmod authnz_ldap
Reiniciar o Apache:
# /etc/init.d/apache2 restart
Criar o diretório que deseja bloquear com senha no diretório Web
ou via vhost. No meu caso, foi criado o diretório teste diretamente
no diretório root do Apache:
/var/www/teste
Criando o arquivo de autenticação:
.htaccess
Pode ser utilizado qualquer editor de texto, eu particularmente
prefiro o
Pico:
# pico .htaccess
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
Options All
AuthType Basic
AuthBasicProvider ldap
AuthLDAPURL
"ldap://xxx.xxx.xxx.xxx:389/OU=usuarios_a_se_autenticar,DC=exa
mple,DC=com?sAMAccountName?sub?
(objectClass=*)"
AuthLDAPBindDN "CN=apache,CN=Users,DC=example,DC=com"
AuthLDAPBindPassword "12345apache"
AuthName "Entre com usuário e senha do AD"
<Limit GET POST>
order deny,allow
deny from all
require valid-user
</Limit>
Satisfy Any
Explicações:
- AuthLDAPURL → Endereço completo do servidor, onde
xxx.xxx.xxx.xxx (192.168.0.1), porta. Ou, de onde se encontra os
usuários que irão autenticar no diretório, DC=Domínio do AD;
- AuthLDAPBindDN → Usuário do AD com permissão
para listar os usuários do domínio;
- AuthName → Senha do usuário.
Não vou entrar no mérito de explicar todos os campos do arquivo,
pois são basicamente os mesmos para qualquer arquivo
.htaccess.
No meu ambiente, esta autenticação está funcionando
perfeitamente.
Qualquer dúvida poste aqui que eu respondo.
Espero ter ajudado, assim como eu precisava deste tipo de
solução, mas os exemplos que achei na Internet não foram claros
o suficiente.
Boa tarde, eu realizei as seguintes configurações
Editei o .htaccess dentro do diretorio /var/www/wiki
vim /var/www/wiki.htaccess
<pre>
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
Options All
AuthType Basic
AuthBasicProvider ldap
AuthLDAPURL "ldap://172.16.0.52:389/OU=Users,DC=hgr,DC=local?sAMAccountName?sub? (objectClass=*)"
AuthLDAPBindDN "CN=apache,CN=Users,DC=hgr,DC=local"
AuthLDAPBindPassword "@pache2"
AuthName "Entre com usuário e senha do AD"
<Limit GET POST>
order deny,allowvim /etc/apache2/sites-enabled/000-default
deny from all
require valid-user
</Limit>
Satisfy Any
</pre>
Editei o arquivo
vim /etc/apache2/sites-enabled/000-default
<pre>
<Directory /var/www/wiki/>
Deny from all
AuthType Basic
AuthName "Digite usuário e senha"
AuthUserFile /var/www/wiki/.htpasswd
Require valid-user
Satisfy Any
</Directory>
</pre>
Reiniciei o Apache2
invoke-rc.d apache2 restart
Depois acessei, ele pediu para se autenticar, porem apos autenticar da erro interno
"500 Internal Server Error"
Poderia me ajudar com essa ocorrencia