Pular para o conteúdo

Autenticação Apache 2 - htaccess via AD

Dica publicada em Linux / Introdução
Gustavo Henrique gusfreire
Hits: 14.972 Categoria: Linux Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar

Autenticação Apache 2 - htaccess via AD

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.

Nenhuma dica encontrada.

IPPL - IP Protocols Logger

Hospede seus endereços .com.br na sua máquina com LAMP de forma gratuita, ocultando IP e porta (DNS Grátis)

openSUSE Leap 42.1 - 6 dicas de pós-instalação

Scanner de segurança OpenVAS

Desvendado o aMSN para Ubuntu Linux rodando em MAC

#1 Comentário enviado por jtriacca em 27/03/2013 - 20:07h
Olá Amigo, estou batendo a cabeça nisso,

na config /etc/apache2/sites-available/default não vai nenhum paramentro?

grato
#2 Comentário enviado por gusfreire em 28/03/2013 - 18:05h
Jtriacca,

Você pode tentar encontrar este parãmentro em default:

<Directory />
Options FollowSymLinks
AllowOverride none
</Directory>

Alterar o AllowOverride para All

Ficando assim:

<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>

Depois disso reinicia o apache, olha se dessa maneira dará certo.
#3 Comentário enviado por vagnersantos em 28/11/2013 - 16:30h
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

Contribuir com comentário

Entre na sua conta para comentar.