Progetto

Generale

Profilo

Autenticazione LDAP per WebDAV

Le direttive di configurazione di Apache per usare l'autenticazione su LDAP sono cambiate nel passaggio ad Apache 2.2 (quindi nel passaggio da Debian Sarge a Debian Etch), che ha rivoluzionato i meccanismi di autenticazione.

Questo comporta la necessità di effettuare diversi cambiamenti ad eventuali precedenti configurazioni che altrimenti sarebbero rimaste perfettamente funzionanti.

Anzitutto si devono abilitare i moduli di Apache per LDAP che nel caso specifico si può fare con i comandi:

a2enmod ldap
a2enmod authnz_ldap

In particolare se si vuole consentire l'accesso autenticando gli utenti su un server LDAP remoto (da accedere in maniera sicura via SSL) si dovranno utilizzare:

  • la direttiva LDAPTrustedMode impostata a SSL per impostare l'accesso SSL.
  • la direttiva LDAPVerifyServerCert impostata a off per bloccare la verifica del certificato del server (e semplificare la connessione, altrimenti si dovrà utilizzare una appropriata CA).
  • la direttiva AuthBasicProvider per indicare (impostandola al valore ldap) di farsi dare i dati di autenticazione da LDAP.
  • la direttiva AuthLDAPURL per impostare la URL del server LDAP ed il relativo ramo di albero da cui ricever i dati di autenticazione.
  • la direttiva AuthzLDAPAuthoritative impostata ad off per bloccare l'uso esclusivo dei dati di LDAP e consentire così il funzionamento della ulteriore direttiva require valid-user.

Un esempio di configurazione di un Virtual Host di default, utilizzato per fornire accesso WebDAV alla cartella /data di un server sotto la URI webdav è riportato qui di seguito:

NameVirtualHost *
LDAPTrustedMode SSL
LDAPVerifyServerCert Off
<VirtualHost *>
        ServerAdmin webmaster@truelite.it
        DocumentRoot /data/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /data/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>
        ErrorLog /var/log/apache2/error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
        ServerSignature On
        # Note Alias goes to our DocumentRoot.
        Alias /webdav /data/
        # But we apply different settings
        <Location /webdav>
                DAV On
                AuthName "Truelite" 
                AuthType Basic
                AuthBasicProvider ldap
                AuthLDAPURL ldaps://ldap.fi.trl/ou=People,dc=truelite,dc=it?uid
                AuthzLDAPAuthoritative Off
                require valid-user
        </Location>
</VirtualHost>