User Authentication
-~~~~~~~~~~~~~~~~~~~~~~~~~~
+---------------------
A volte conviene negoziare gli accessi ad un area di un sito tramite autenticazione basata sull'accopiata *nome utente / password*. Questo puo' venire utile per creare una area download *intranet*, alla quale possano accedere solo gli utenti previsti a prescindere dagli indirizzi IP dei loro client. Per quanto esistano soluzioni piu' granulari e sofisticate per ottenere questo, *mod-auth* puo'essere sufficente. E mod auth non richiede l'installazione di software aggiuntivi.
link: http://www.apacheweek.com/features/userauth
Definire la cartella
------------------------
+~~~~~~~~~~~~~~~~~~~~~~
Decidere quale sara' il *path* della cartella da sottoporre ad autentizazione:(e creiamo la cartella):
- mkdir /var/www/177.piffa.net/privata
+ ``mkdir /var/www/177.piffa.net/privata``
Creazione del database delle passwords
----------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Un modo semplice per gestire una database di *user-id / passwords* e' appoggiarsi all'utility ``htpasswd`` di Apache. Questa crea un file in cui un *crypt* delle password viene associato agli utenti.
+Un modo semplice per gestire una database di *user-id / passwords* e' utilizzare l'utility ``htpasswd`` di Apache. Questa crea un file in cui un *crypt* delle password viene associato agli utenti.
-Si dovra' decidere dove tenere questo file, la cosa importante e' che non sia disopnibile nel sito web, non deve essere scaricabile dai visitatori. Deve essere cioe' all'esterno della *DocumentRoot*: un buon posto potrebbe essere la /home dell'utente::
+Si dovra' decidere dove tenere questo file, la cosa importante e' che non sia visibile nel sito web: non deve essere scaricabile dai visitatori. Deve essere cioe' all'esterno della *DocumentRoot*: un buon posto potrebbe essere la /home dell'utente.
+Creiamo (con il *flag* ``-c``) il file ``/home/utente/passwords`` con l'utente ``luca``::
+
htpasswd -c /home/utente/passwords luca
-Creiamo (con il *flag* ``-c``) il file ``/home/utente/passwords`` con l'utente ``luca``.
+``htpasswd`` ci chedera' la password da associare all'utente ``luca``. Per sucessive modifiche della password o aggiunta di nuovi utenti non sara' necessario usare il flag ``-c``.
Configurazione di Apache
--------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Ora possiamo passare alla configurazione vera e propria di Apache, ma con una novita': andremo a inserire la voce in un ``.htaccess`` invece che modificare il file di impostazione del virtual-host.
+
+Questo per motivi pratici: solo l'utente *root* puo' modificare l'impostazione del virtual host nel file ``/etc/apache2/sites-enabled/177.piffa.net``, ma spesso il motivo per cui creiamo i virtual hosts e' ospitare i siti di altri utenti, che possono solo pubblicare (generalmente tramite *FTP*) i loro documenti nella loro *DocumentRoot*, senza poter quindi modificare in alcun modo la configurazione del virtual host.
+
+Dando agli utenti la possibilita' di modificare (*AllowOverride*) autonomamente alcuni parametri (in questo caso solo l'*AuthConfig*) relativi al funzionamenteo del loro spazio web ci togliera' l'incombenza di dover intervenire suii vari virtual host.
+
+Abilitiamo l'AllowOverride nel file di configurazione del virtual host per la sola directory ``privata``::
+
+ <VirtualHost *:80 >
+ ServerName 177.piffa.net
+ DocumentRoot /var/www/177.piffa.net/
+ ServerAdmin webmaster@177.piffa.net
+ <Directory "/var/www/177.piffa.net/privata">
+ AllowOverride AuthConfig
+ </Directory>
+ </VirtualHost>
+
+Per rendere il cambiamento effettivo sara' necessario fare un restart / reload di Apache.
-Ora possiamo passare alla ocnfigurazione vera e propria di Apache, ma con una novita': andremo a inserire la voce in un .htaccess.
+Ora sara' possibile, anche per l'utente di sistema, creare un fie ``.htaccess`` che sara' onorato da Apache.
/var/www/177.piffa.net/privata/.htaccess ::