Hola la autenticación es la manera de controlar las personas que quieran entrar a ver las páginas web que has subido.
El proceso de autenticación es simple.
- El cliente envía su nombre y contraseña.
- A continuación, Apache comprueba su archivo de nombres y contraseñas cifradas para saber si el cliente tiene derecho a acceder o no.
Existen dos formas diferentes de autenticación:
- Globalmente.
- Usando los ficheros especiales .htaccess.
Nosotros vamos a ver la segunda.
En este tutorial vamos a ver la manera de autenticar en Apache.
Por ejemplo, para crear un directorio clase con acceso restringido al usuario alumno podríamos implementarlo así (yo lo he creado con un host virtual, si no sabes crear hosts virtuales mira el tutorial anterior):
1. Se crea el directorio:
sudo mkdir /var/sitio1.com
(en mi caso estaría creado)2. Se crea el directorio donde almacenar las contraseñas:
sudo mkdir /var/passwd
3. Se crea el archivo con el primer usuario (ojo, se crea el archivo en una carpeta en la que no se pueda acceder desde fuera):
sudo htpasswd -c /var/passwd/.htpasswd alumno
4. Se crea el fichero .htaccess en /var/www/sitio1.com:
sudo nano /var/www/sitio1.com/.htaccess
Y se escribe el siguiente contenido:
AuthType Basic
AuthName “Pagina restringida de alumno”
AuthUserFile /var/passwd/.htpasswd
AuthGroupFile /dev/null
require user alumno
5. Se modifica el archivo de configuración del sitio web:
"<"Directory “/var/www/sitio1.com”">"
AllowOverride AuthConfig
Order allow,deny
Allow from all
"<"/Directory">"
6. Ahora reiniciamos Apache:
sudo apache2ctl restart
7. Y por último comprobamos si a funcionado
Con esto lo que conseguimos es restringir a un usuario pero si queremos restringir a un grupo tendremos que crear algunos archivos:
1º Creamos un fichero dentro de /var/passwd con el nombre que nosotros deseemos yo le e dado el nombre de "grupo"donde pondremos una lista de los usuarios que le vamos a permitir el acceso.
sudo gedit /var/passwd/grupo
Y ahora modificaríamos la directiva AuthGroupFile en el fichero .htaccess dentro de /var/www/sitio1.com (yo lo he hecho con sitio1.com porque ya lo tenia creado de antes pero vosotros lo podéis crear como deseeis).
sudo gedit /var/www/sitio1.com/.htaccess
Por último solo tendríamos que reiniciar apache y comprobar si ha funcionado lo anterior.
sudo apache2ctl restart
0 comentarios:
Publicar un comentario