back to top

Autenticazione in Apache

Le direttive del Web server Apache possono tornarci utili per stabilire metodi di autorizzazione per l’accesso alla DocumentRoot utilizzando la classica procedura basata su un nome utente (user name) e su una parola chiave (password).

Sarà possibile cifrare i dati di accesso inserendoli in un apposito file chiamato htpasswd con l’unica condizione che il nome utente e la parola chiave siano differenti da quelli già indicati per l’accesso al sistema in cui Apache è stato installato.

Oltre ai dati di accesso, è possibile stabilire dei gruppi, ognuno facente capo ad un unico nome; la metodologia "per gruppi" permetterà di stabilire regole d’accesso valide per tutti gli utenti appartenenti ad essi. Otterremo questo risultato semplicemente agendo sulla direttiva AuthName a cui passeremo come parametro il nome necessario all’autorizzazione.

Tramite AuthName, è possibile descrivere all’utente il tipo di autorizzazione richiesta in modo che egli sia sempre in grado di utilizzare la procedura corretta a seconda dei casi.

Un’altra direttiva fondamentale è AuthType, riferita alla tipologia di autenticazione; in ogni caso per Apache quest’ultima dovrà essere settata come Basic o come Digest. Nel caso di Basic, l’autenticazione consisterà in un semplice invio dei dati inseriti dall’utente, con Digest, invece, nome utente e password verranno criptati utilizzando il sistema di codifica MD5; quest’ultimo metodo, in linea teorica preferibile, è purtroppo al momento non ben supportato.

Ad AuthType segue AuthUserFile, una direttiva a cui dovremo far passare come parametro il percorso in cui si trova il file che contiene i dati necessari per l’autenticazione.

Abbiamo poi AuthGroupFile, una direttiva che può essere inserita a discrezione dell’amministratore del Web Server nel caso in cui egli desideri fornire ad Apache una lista di utenti appartenenti ad uno stesso gruppo per i quali valgono le medesime regole di autenticazione. Se intendiamo impostare AuthGroupFile, sarà sufficiente passare come parametro a questa direttiva il percorso completo che porta al file contenente l’elenco degli appartenenti al gruppo.

Possiamo poi specificare tre ulteriori direttive: require user, require group e require valid-user. Nel caso di require user è necessario indicare quali utenti sono autorizzati all’accesso; nel caso di require group è necessario indicare quali gruppi di utenti sono autorizzati all’accesso; infine, nel caso di require valid-user tutti vengono autorizzati all’accesso.

Alla luce di ciò che abbiamo appena detto, possiamo fare un esempio completo di container per le direttive di autorizzazione:

<Directory /PATH/area_riservata></p>
AllowOverride None 
Options Indexes 
AuthName Area Riservata 
AuthType Basic 
AuthUserFile /PATH/httpd/conf/.htpasswd 
AuthGroupFile /PATH/httpd/conf/.htgroup 
require user Amministratore 
</Directory>
Pubblicità
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.