Apache User Authentication


Il più tradizionale e comune modo per autenticare gli utenti è l'autenticazione http base.

L'autenticazione http base fa uso di files contenenti user name e password (criptate).

Descriviamo in breve l'implementazione di questa tecnica

Creazione files utenti

In primo luogo deve essere creato un file che contenga una lista di utenti e password, tale file può essere creato attraverso l'utility htpasswd che risiede nella directory e:/apache/bin la sintassi d'uso è la seguente:

Usage:
        htpasswd [-cmdps] passwordfile username
        htpasswd -b[cmdps] passwordfile username password

 -c  Create a new file.
 -m  Force MD5 encryption of the password (default).
 -d  Force CRYPT encryption of the password.
 -p  Do not encrypt the password (plaintext).
 -s  Force SHA encryption of the password.
 -b  Use the password from the command line rather than prompting for it.
On Windows and TPF systems the '-m' flag is used by default.
On all other systems, the '-p' flag will probably not work.

Direttive al server

Le direttive al server relative all'utilizzo del file utenti possono venire fornite in due modalita

  • Attraverso un file htaccess
  • Attraverso direttive inserite nel file di configurazione del server (e.g. httpd.conf)

File htaccess

La modalità1 htaccess funziona in questo modo:

Attraverso la direttiva AccessFileName viene indicato il nome di un file di testo (e.g. htaccess).

Questo file contiene le direttive che specificano le modalità di accesso degli utenti alla directory in cui risiede.

Il server apache ogni qualvolta un utente tenta di accedere ad una directory controllerà la presenza del file htaccess.

Se il file esiste, il server apache legge da questo file le direttive da seguire per l'autenticazione.

Esempio di file htaccess

AuthType Basic
AuthName "LID"
AuthUserFile q:/svi/lid/cgi-bin/users
require valid-user

Nell'esempio riportato il file users contiene i nomi e la password degli utenti autorizzati

Httpd.conf

Questa modalità è preferita dai web administrator perchè il costringere il server apache al controllo della presenza del file htaccess in ogni directory può rallentare notevolmente le performance del server.

In questo caso le direttive da seguire per l'accesso alle directory vengono specificate all'interno di 'directory block' che identificano zone da proteggere attraverso autenticazione.

Esempio di directory block

<Directory /www/httpd/html/private>
Option Indexes
AllowOverride None
Order allow,deny
Allow from All
AuthType Basic
AuthName Financials
AuthUserFile /misc/httpd/administrators
Require valid-user
</Directory>

Come nel caso precedente le user name e le password degli utenti sono contenute in un file crittografato.


1 Per un corretto utilizzo di questa modalità è' necessario che sia presente nel file di configurazione la direttiva AllowOverride AuthConfig

ris.3t4lna7 • LastModified: 14-9-2007 • Mauro Sem