Autenticação HTTP no Apache 2
Olá a todos!
Neste meu primeiro artigo de 2008, vou escrever sobre um assunto que pode ajudar a muitas pessoas: Como restringir o acesso a determinados diretórios de um site, ou até mesmo, do diretório público principal do mesmo, usando o arquivo .htaccess no apache 2.
Vocês poderão ver, a seguir, como é simples esta configuração, de muita valia, para determinadas situações, como por exemplo:
- Definir um diretório, ou uma área do site, onde somente pessoas que possuam um login e uma senha possam entrar.
Para tanto, façamos os seguintes passos:
- Crie, no diretório onde deseja restringir o acesso, o arquivo .htaccess, isto se ele já não existir, com o seguinte conteúdo:
AuthName "Acesso restrito. Digite o login e a senha." AuthType Basic AuthUserFile /etc/httpd/conf/.users require valid-user
- Para criarmos os usuários e as senhas, vamos utilizar o programa htpasswd (htpasswd2 em algumas distribuições linux), como segue o exemplo: htpasswd -c /etc/httpd/conf/.users tux.Onde o parâmetro -c é utilizado apenas na primeira vez que executamos o comando. Ele diz ao programa para criar o arquivo. Nos próximos usuários a serem criados, o parâmetro -c pode ser omitido./etc/httpd/conf/.users é o caminho para o arquivo das senhas. O caminho é apenas uma sugestão, você pode criar o arquivo, por exemplo, dentro do diretório do seu site.tux é o nome do usuário a ser criado.Ao executar o comando, o programa vai pedir que seja digitada a senha, e logo após uma confirmação da mesma. Ao terminar de digitar a confirmação da senha, o arquivo está criado.
Pronto, está tudo criado e tudo funcionando. Para testar, basta acessar o diretório onde o arquivo .htaccess foi criado, pelo navegador. Você perceberá que abrirá uma janela de autenticação com o texto digitado no AuthName, solicitando o usuário e a senha. Após digitar corretamente as informações, o acesso será liberado. Se você digitar incorretamente, receberá o erro 401, Authorization Required.
Bem, espero ter ajudado! Qualquer dúvida é só deixar um comentário que logo responderei!
Related posts:

Só não precisava escrever “muita”…
Ótima dica!
Alguém sabe se existe um meio do apache2 autenticar através de um SGBD como mysql, postgreSQL ou firebird?
Obrigado!