Apache: autenticazione digest e utilizzo di file Dbm

4 maggio 2010

Nel precedente articolo, dedicato all’autenticazione di base HTTP, avevamo visto come fosse possibile creare in maniera molto semplice e rapida un’area riservata memorizzando le credenziali dei nostri utenti in file di testo.

Avevamo però sottolineato alcuni limiti della soluzione proposta, in particolare la trasmissione di username e password in chiaro e l’inefficienza del sistema di gestione degli utenti e dei gruppi. In queste pagine vedremo come ovviare a tali inconvenienti introducendo prima l’autenticazione HTTP Digest e poi metodi alternativi per la conservazione delle credenziali.

Mod_auth_digest e l’autenticazione MD5 digest

Questo modulo di Apache si propone come sostituto più sicuro di mod_auth_basic in quanto evita il passaggio di credenziali in chiaro, senza peraltro complicare le direttive di configurazione. La Digest Authentication è sostanzialmente un’applicazione dell’algoritmo di hash MD5, unita ad alcuni accorgimenti volti a prevenire l’utilizzo della crittoanalisi per forzare le credenziali. A scanso di equivoci è bene chiarire che il suo scopo è rimpiazzare la deficitaria autenticazione di base HTTP, ma non risulta assolutamente paragonabile ai protocolli di autenticazione “forte”.

Per confrontare l’utilizzo di mod_auth_digest con l’utilizzo di mod_auth_basic vediamo un esempio del tutto analogo a quello mostrato nel precedente articolo. Vogliamo consentire solo ad alcuni utenti l'accesso alla directory amministrazione del nostro sito. Ricordo che le direttive mostrate possono riferirsi ad un contenitore <Directory> o ad un file .htaccess posizionato nella directory che vogliamo proteggere.

AuthName Amministratori
AuthType Digest
AuthDigestDomain /amministrazione/
AuthDigestProvider file
AuthUserFile /percorso_del_file/password
Require valid-user

AuthName: nel precedente articolo ci eravamo riferiti a questa direttiva per impostare la dicitura della finestra di dialogo che il browser presenta al momento del login. Il significato è in realtà più ampio ovvero consente di specificare il realm (traducibile all’incirca come reame) ovvero l’ambito d’azione della protezione. Risulta importante, come vedremo, nella definizione degli utenti autorizzati all’accesso.

AuthType: indica il tipo di autenticazione in questo caso anziché Basic, specifichiamo Digest.

AuthDigestDomain: la documentazione ufficiale consiglia caldamente l’utilizzo di questa direttiva, anche se non strettamente necessaria, per ragioni legate alle prestazioni del web server. Consente di specificare una o più URI che sono protette mediante i medesimi username e password, in altri termini che fanno parte del medesimo realm. Si parla in generale di URI perchè possiamo specificare una risorsa sia come relativa, vedasi esempio, sia come assoluta indicando protocollo, host, etc. come in http://www.miosito.it/segreta/. Ricordo che risulteranno automaticamente protette anche le sottodirectory dell’URI specificata.

AuthDigestProvider: svolge il medesimo compito di AuthBasicProvider comunicando ad Apache che utilizzeremo dei file di testo per memorizzare le credenziali.

AuthUserFile: specifica il percorso ed il nome del file di testo utilizzato per raccogliere i nomi degli utenti e le relative password. È sempre meglio che il file si trovi all’esterno della DocumentRoot per non essere in alcun modo accessibile dal web. In tal caso lo dobbiamo individuare con il suo percorso assoluto.

Require: come già detto prevede le opzioni valid-user, user e group. Nel nostro caso con valid-user richiediamo che l’utente sia definito nel file delle credenziali. Rimando al precedente articolo per le altre opzioni previste dalla direttiva.

È immediato verificare che le modifiche rispetto alla configurazione utilizzata con mod_auth_basic sono minime. A questo punto non ci resta che definire gli utenti a cui vogliamo concedere l’accesso.

Se vuoi aggiornamenti su Apache: autenticazione digest e utilizzo di file Dbm inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Apache: autenticazione digest e utilizzo di file Dbm

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy