sábado, abril 12, 2008

Autentificación en Apache

Bueno, para lograr que a cierto directorio en tu sitio web solo tengan acceso ciertos usuarios, una solución muy práctica es la autentificación que nos provee los módulos del servidor web Apache, me refiero a mod_auth y mod_access, las directivas de estos dos son las que hacen todo el trabajo.

Como primer paso debes tener una archivo .htaccess, del cual hablaremos después de unos pasos previos, para lo cual en el archivo de configuración del Apache el httpd.conf, tendrás que habilitar esta directiva:

AllowOverride AuthConfig

Luego hay que proteger con contraseña el directorio de tu servidor con un archivo de contraseñas ubicado comúnmente en /usr/local/apache/passwd. Para crear este archivo se utiliza la utilidad htpasswd que viene con el Apache

htpasswd -c /usr/local/apache/passwd/passwords prueba


Te pedirá un password para el usuario que ingresaste

# htpasswd -c /usr/local/apache/passwd/passwords prueba
New password: mypassword
Re-type new password: mypassword
Adding password for user prueba


A continuación hay que decirle al servidor que interprete este archivo, esto lo hace el .htaccess el cual debe estar dentro del directorio que queremos proteger y q solo tengan acceso ciertos usuarios

/usr/local/apache/htdocs/secret/.htaccess


"secret" es el directorio que vamos a proteger, entonces el .htaccess quedaría así

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
Require
valid-user

Ahora para que ingresen a tu directorio deberán loguearse con el usuario que esté en el archivo de contraseñas y eso es todo.

Existe algunas formas de hacer la autentificación con el mismo Apache, incluso mas robustas, pero eso será materia pendiente para otro día.

Si desean indagar mas sobre el tema aqui les dejo el enlace de la documentación del Apache..

http://httpd.apache.org/docs/2.0/es/howto/auth.html




No hay comentarios: