segunda-feira, 17 de agosto de 2009

http autenticado no apache2

Precisei requisitar autenticação em uma página e a situação fazia com que o mais lógico e conveniente fosse implementá-la no apache.
O SO desse caso é um debian etch(não posso atualizar, não é escolha minha) com apache2.

Primeiro criei o arquivo .htaccess dentro da pasta onde eu queria exigir autenticação:

vim /var/www/pastaquetuprecisadeautenticacao/.htaccess

O conteúdo dele deve ser o seguinte:

AuthType Basic
AuthName "Digite usuário e senha"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
Satisfy Any

Algumas explicações caem bem:

linha 1: Isso significa que vou usar o tipo Base64 de transferência (que não é criptografado e sim codificado e é facilmente decodificado, explicarei aspectos básicos relacionados a segurança logo mais neste tutorial)
linha 2: Lembram da mensagem de resposta HTTP?
WWW-Authenticate: Basic realm="Digite seu usuário e senha"
Esta linha adiciona o rótulo da mensagem do Realm
linha 3: Digo que ele buscará a senha do arquivo de senhas /etc/apache2/.htpasswd
linha 4: Requer que exista um usuário válido a ser autenticado
linha 5: Satisfy pode ter dois valores All ou Any,
o All diz que o usuário tem que passar na restrição de acesso (Required ou Allow, no nosso caso required) E entrar com um usuário e senha válidos para realizar a autenticação
o Any diz que o usuário tem que passar na restrição de acesso OU entrar com um usuário e senha válidos para realizar a autenticação.

Agora temos de criar o arquivo de senhas que foi definido anteriormente:

# htpasswd -c /etc/apache2/.htpasswd nomedousuario

Vai ser pedida a senha para o usuario, é só digitar e repetir.

Reinicia o apache com /etc/init.d/apache2 restart

Para testar vá ao navegador e acesse:

http://dominiodoservidor/pastaquetuprecisadeautenticacao

Se tudo deu certo vai ser exigido que tu informe o usuário e a senha que foram definidos.

Link da dica que me ajudou:
http://www.dicas-l.com.br/dicas-l/20090717.php

2 comentários:

  1. Fiz todos os passos mas continua passando direto. =/ Onde posso mexer mais??

    ResponderExcluir
  2. Cara, com isso ae funciona, pelo que eu lembro relatei passo-a-passo a maneira que funcionou.

    O link do final da postagem foi o que me ajudou, porém, tive que adequar ao meu contexto e tentar algumas vezes, e era eu que tava errando.

    Resumindo, a postagem é o básico para o desenvolvimento da atividade, tens que adequar ela ao teu contexto.

    Talvez se tu enviar mais detalhes do teu sistema e conjuntos de configurações fique mais fácil de te ajudar.

    Abração.

    ResponderExcluir