La autentificación se basa en el principio de que el cliente envia su nombre y su password al servidor, un modulo de Apache chequea si las credenciales son correctas, y si lo son devuelve la página solicitada. Si el usuario no tiene permitido el acceso o el password no es válido, el servidor Apache devuelve un código de estado 401 ( Acceso no autorizado ).
Para poder definir este tipo de autenticación, es necesario seguir dos pasos:
Crear un fichero que contenga los usuarios y los passwords.
Htpasswd -c -b /etc/httpd/conf/db_users fferrer MIS2000
Definir las zonas a restringir.
Lo cual se consigue definiendo un fichero llamado .htaccess en el directorio que queremos restringir.
Cuando el servidor tiene que acceder a una zona donde se encuentra un fichero .htaccess ( definido por AccessFileName ) comprobará las directivas definidas en el para otorgar o no el acceso.
El servidor además necesita conocer que directivas declaradas en este fichero pueden sobreescribir la información de acceso anterior declarada por la directiva AllowOverride.
AuthName:
Define un nombre para la zona protegida. Una vez que un usuario introduzca unas credenciales válidas para esta zona, cualquier otro recurso dentro de esta zona podrá ser accedido con las mismas credenciales.
AuthType:
Define el sistema de autentificación utilizado. Pede ser Basic o Digest. Este último método ofrece mayores características de segurudad al utilizar firmas MD5.
AuthUserFile:
Define la localización del fichero creado con el comando httpasswd.
Require:
Define que nombres de usuario del fichero definido por la directiva anterior tienen derechos de acceso. Valid-user sería un caso especial refiriendose a cualquier usuario del fichero.
.htacces
AuthName Protegido
AuthType Basic
AuthUserFile /etc/httpd/conf/db_usersrequire
valid-user