mod_authn_dbd es una directiva para poder usar como backend de autenticación una base de datos de manera masomenos simple pero directamente desde el WebServer en este caso apache2.
Acá les dejo un ejemplo sacado de la doc oficial y resolviendo algunas cosas que en esa misma doc no se aclaran sobre como hacerlo en debian-based OS.
Instalamos los siguientes paquetes ya que es un servidor limpio recien instalado.
# Instalamos Apache y MySQL hasta acá nada raro es lo minimo
apt-get install apache2 mysql-server
# Esta es la libreria que hacer la magia
apt-get install libaprutil1-dbd-mysql
No hace falta obviamente tener el servidor mysql en el mismo que el apache yo lo hago así para simplificar la configuración
# Se debe habilitar ese modulo
a2enmod authn_dbd
/etc/init.d/apache2 restart
luego en el conf correspondiente limitamos el Directory con la configuración como continua.
DBDriver mysql
DBDParams "host=localhost, dbname=midb,user=user_db,pass=pass_db,port=3306"
DBDMin 4
DBD Keep 8
DBDMax 20
DBDExptime 300
<Directory /var/www/privado>
AuthType Basic
AuthName "Mi Servidor"
AuthBasicProvider dbd
Require valid-user
AuthDBDUserPWQuery \
"SELECT password from auth_table where user = %s"
</Directory>
A mi no me resulto tan obvio pero la password del usuario tiene que ser encriptada en la DB con la función ENCRYPT de mysql.
Otra directiva interesante permite hacer login y logout pero esa los voy a dejar que se peleen ustedes con los problemas que pueda causa esa configuración.
Espero que les haya parecido cuando menos raro esto de autenticar desde el WebServer contra la DB directamente creo que yo ya le tengo una utilidad.
http://httpd.apache.org/docs/2.2/mod/mod_authn_dbd.html
http://httpd.apache.org/docs/current/mod/mod_authz_dbd.html
No hay comentarios.:
Publicar un comentario