Autenticazione, Autorizzazione e Controllo degli Accessi in Apache HTTP Server


Per controllare l’accesso ad una cartella del nostro HTTP server e ai documenti in essa contenuti possiamo usare un metodo di autenticazione messo a disposizione da Apache.

In nostro aiuto vengono due moduli: mod_auth e mod_auth_digest.

Il primo è supportato dalla maggior parte dei browser, ma ha lo svantaggio di trasmettere la password di autenticazione in chiaro nella rete ed è per questo sconsigliato per proteggere documenti contenti dati sensibili.

Il secondo metodo è più sicuro, ma viene supportato da un numero inferiore di clients rispetto a mod_auth.

Ecco come predisporre una cartella condivisa nel web al controllo degli accessi:

  1. creare un file contenente le informazioni per l’autenticazione (nome utente e password) degli utenti autorizzati alla visualizzazione dei documenti nella cartella protetta con l’utility di Apache htpasswd
    htpasswd -c /home/john/passwords john

    Questo comando crea il file passwords nella cartella /home/john contenente la password per l’utente john.
    Nota: è consigliato tenere il file contenente le passwords in una cartella non accessibile via web
    All’esecuzione del comando ci viene richiesto di immettere una password e di confermarla:

    New password: mypassword
    Re-type new password: mypassword
    Adding password for user john
  2. aggiungiamo le direttive
    AuthType Basic
    AuthName "Restricted Files"
    AuthUserFile /home/john/passwords
    Require user john

    nel file di configurazione dell’host all’interno di un blocco <Directory /var/www/secret> o in un file .htaccess nella cartella da proteggere (ad esempio /var/www/secret/.htaccess)
    Nota: per poter utilizzare il file .htaccess le impostazioni globali devono permettere l’overriding dell’opzione AuthConfig attraverso la direttiva

    AllowOverride AuthConfig
  3. ricarichiamo la configurazione del server HTTP per rendere attive le nuove impostazioni con il comando
    /etc/init.d/apache2 reload

    Nota: questo comando funziona per distribuzioni Linux basate su Debian con Apache HTTP Server versione 2

Ci sono molte altre cose da dire sull’autenticazione e sull’autorizzazione, ma questo articolo può bastare come introduzione.

Se avete bisogno di maggiori informazioni potrete consultare Authentication, Authorization and Access Control – Apache 2 HTTP Server o fare commenti chiedendomi i chiarimenti necessari.

Articoli correlati

This entry was posted in Programmazione and tagged , , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">