8 nov 2008

Digest Authentication

Apache2 provee autenticacion de usuarios como mecanismo de control de acceso. La configuracion se puede realizar con el archivo .htaccess, la cual puede ser aplicada de forma distinta a cada directorio que se quiera proteger.

La authenticacion de usuario puede ser Basic o Digest. La authenticacion de tipo Digest ofrece mayor seguridad, ya que la clave que se transfiere puede ser cifrada en algoritmo md5. En cambio la authenticacion de tipo Basic transfiere el usuario y la clave como texto, por lo tanto es menos seguro.

Los pasos que se exponen a continuacion se realizaron en Debian Etch (4.0).

1. Editar la configuracion de Apache2 para que habilite la configuracion de autenticacion de usuarios por .htaccess

user@host# vim /etc/apache2/sites-available/default

# Archivo Apache2.conf o httpd.conf, en este caso el archivo default en debian etch
# Estaba como AllowOverride None, puede ser All o AuthConfig

<Directory /var/www/>


AllowOverride AuthConfig

</Directory>

2. Habilitar el modulo de authenticacion Digest
user@host# cd /etc/apache2/mods-enabled/
user@host# ln -s ../mods-available/auth_digest.load auth_digest.load

3. Recargar la configuracion de Apache2 y verificar que el modulo de Digest esta cargado
user@host#  apache2 -k graceful
user@host#  apache2 -M
auth_digest_module (shared)

4. Crear el usuario

user@host#  auth_digest_module (shared)
user@host#  cd /var/www/
user@host#  htdigest -c .DigestUsers Classified test
user@host#  chown www-data:www-data .DigestUsers
user@host#  chmod 640 .DigestUsers
user@host#  ls -l .DigestUsers

5. Crear el .htaccess en el directorio que se desea proteger
user@host#   cd /var/www/apache2-default/

AuthName Classified
AuthType Digest
AuthUserFile /var/www/.DigestUsers
Require valid-user

Nota: el AuthName debe ser igual al realm especificado con htdigest, en este caso "Classified"